From dfa2e66389df106ef38a4fd621f2e3e0cf91ace8 Mon Sep 17 00:00:00 2001
From: ZhangXianQiang <1135831638@qq.com>
Date: 星期五, 08 三月 2024 15:28:48 +0800
Subject: [PATCH] feat:地图信息框点击

---
 src/assets/img/test_img/show_img4.jpeg               |    0 
 src/views/daoAnOffice/center/dialog/dialog-type5.vue |  153 ++++++
 src/views/daoAnOffice/center/dialog/dialog-type3.vue |  121 +++++
 src/views/daoAnOffice/center/dialog/dialog-type2.vue |   93 ++++
 src/views/daoAnOffice/center/map.vue                 |   84 +++
 src/views/daoAnOffice/center/dialog/dialog-type7.vue |  146 ++++++
 src/assets/img/test_img/show_img2.jpg                |    0 
 src/views/daoAnOffice/center-map.vue                 |   11 
 src/views/daoAnOffice/center/dialog/dialog-type9.vue |  145 ++++++
 src/assets/img/test_img/show_img1.jpg                |    0 
 src/views/daoAnOffice/center/dialog/dialog-type1.vue |   92 ++++
 src/views/daoAnOffice/center/dialog/dialog-type6.vue |  142 ++++++
 src/views/daoAnOffice/center/dialog/dialog-type4.vue |  139 ++++++
 src/assets/img/test_img/show_img3.jpg                |    0 
 src/views/daoAnOffice/center/dialog/dialog-type8.vue |  150 ++++++
 15 files changed, 1,269 insertions(+), 7 deletions(-)

diff --git a/src/assets/img/test_img/show_img1.jpg b/src/assets/img/test_img/show_img1.jpg
new file mode 100644
index 0000000..a5dd2e9
--- /dev/null
+++ b/src/assets/img/test_img/show_img1.jpg
Binary files differ
diff --git a/src/assets/img/test_img/show_img2.jpg b/src/assets/img/test_img/show_img2.jpg
new file mode 100644
index 0000000..7b676ef
--- /dev/null
+++ b/src/assets/img/test_img/show_img2.jpg
Binary files differ
diff --git a/src/assets/img/test_img/show_img3.jpg b/src/assets/img/test_img/show_img3.jpg
new file mode 100644
index 0000000..31843ea
--- /dev/null
+++ b/src/assets/img/test_img/show_img3.jpg
Binary files differ
diff --git a/src/assets/img/test_img/show_img4.jpeg b/src/assets/img/test_img/show_img4.jpeg
new file mode 100644
index 0000000..3ecc379
--- /dev/null
+++ b/src/assets/img/test_img/show_img4.jpeg
Binary files differ
diff --git a/src/views/daoAnOffice/center-map.vue b/src/views/daoAnOffice/center-map.vue
index fa8412e..d32e142 100644
--- a/src/views/daoAnOffice/center-map.vue
+++ b/src/views/daoAnOffice/center-map.vue
@@ -5,6 +5,16 @@
     </div>
     <div class="mapwrap">
       <CityMap @mapItemClick="mapItemClick" @cancleClick="cancleClick"></CityMap>
+
+      <!-- <DialogType1></DialogType1>
+      <DialogType2></DialogType2>
+      <DialogType3></DialogType3>
+      <DialogType4></DialogType4>
+      <DialogType5></DialogType5>
+      <DialogType6></DialogType6>
+      <DialogType7></DialogType7>
+      <DialogType8></DialogType8>
+      <DialogType9></DialogType9> -->
     </div>
 
     <div class="map-info-container">
@@ -64,6 +74,7 @@
 
 <script setup>
 import CityMap from './center/city-map.vue';
+
 import { ref,onMounted } from "vue";
 const mapData = ref([
   {
diff --git a/src/views/daoAnOffice/center/dialog/dialog-type1.vue b/src/views/daoAnOffice/center/dialog/dialog-type1.vue
new file mode 100644
index 0000000..b6e8675
--- /dev/null
+++ b/src/views/daoAnOffice/center/dialog/dialog-type1.vue
@@ -0,0 +1,92 @@
+<template>
+  <!-- 淇℃伅寮圭獥涓�  浜嬫晠璺-->
+  <div class="dialog-container" ref="dialog">
+    <div class="dialog-content">
+      <el-scrollbar max-height="200px">
+        <div class="scroll-content">
+          <div class="dialog-title">鏂伴┈璺竴娈�</div>
+          <div class="dialog-text">
+            杩�3骞村彂鐢熶氦閫氫簨鏁厁x璧凤紝 鍏朵腑閫犳垚浜哄憳浼や骸xx璧�
+          </div>
+        </div>
+      </el-scrollbar>
+    </div>
+  </div>
+</template>
+
+<script setup>
+
+</script>
+
+<style lang="scss" scoped>
+$bg-color: #572438;
+$border-color: #B24C57;
+$title-color: #FE3146;
+$text-color: #D991AA;
+
+.dialog-container {
+  width: 205px;
+  position: relative;
+  background-color: $bg-color;
+  border: 1px solid $border-color;
+  border-radius: 5px;
+
+  .dialog-content {
+    width: 100%;
+  }
+  .scroll-content {
+    width: 100%;
+    padding: 14px 18px;
+  }
+
+  &:before {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 8px solid transparent;
+    border-color: $bg-color transparent transparent transparent;
+    content: '';
+    z-index: 12;
+    border-left-width: 6px;
+    border-right-width: 6px;
+  }
+
+  &:after {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 10px solid transparent;
+    border-color: $border-color transparent transparent transparent;
+    content: '';
+    z-index: 10;
+    border-left-width: 8px;
+    border-right-width: 8px;
+  }
+}
+
+.dialog-title {
+  font-family: PingFang SC;
+  font-weight: 500;
+  font-size: 14px;
+  color: $title-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+}
+
+.dialog-text {
+  font-family: PingFang SC;
+  font-weight: 400;
+  font-size: 14px;
+  color: $text-color;
+  line-height: 20px;
+}
+
+</style>
\ No newline at end of file
diff --git a/src/views/daoAnOffice/center/dialog/dialog-type2.vue b/src/views/daoAnOffice/center/dialog/dialog-type2.vue
new file mode 100644
index 0000000..d8b2fab
--- /dev/null
+++ b/src/views/daoAnOffice/center/dialog/dialog-type2.vue
@@ -0,0 +1,93 @@
+<template>
+  <!-- 淇℃伅寮圭獥浜�  鏃呮父閫氶亾-->
+  <div class="dialog-container" ref="dialog">
+    <div class="dialog-content">
+      <el-scrollbar max-height="200px">
+        <div class="scroll-content">
+          <div class="dialog-title">閮芥睙鍫板杩愪腑蹇�</div>
+          <div class="dialog-text">
+            鏃ョ疮绉汉娴侀噺杈惧埌3000+
+          </div>
+        </div>
+      </el-scrollbar>
+    </div>
+  </div>
+</template>
+
+<script setup>
+
+</script>
+
+<style lang="scss" scoped>
+$bg-color: #275767;
+$border-color: #58B1B3;
+$title-color: #17CDD2;
+$text-color: #7ACDCF;
+
+.dialog-container {
+  width: 205px;
+  position: relative;
+  background-color: $bg-color;
+  border: 1px solid $border-color;
+  border-radius: 5px;
+
+  .dialog-content {
+    width: 100%;
+  }
+
+  .scroll-content {
+    width: 100%;
+    padding: 14px 18px;
+  }
+
+  &:before {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 8px solid transparent;
+    border-color: $bg-color transparent transparent transparent;
+    content: '';
+    z-index: 12;
+    border-left-width: 6px;
+    border-right-width: 6px;
+  }
+
+  &:after {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 10px solid transparent;
+    border-color: $border-color transparent transparent transparent;
+    content: '';
+    z-index: 10;
+    border-left-width: 8px;
+    border-right-width: 8px;
+  }
+}
+
+.dialog-title {
+  font-family: PingFang SC;
+  font-weight: 500;
+  font-size: 14px;
+  color: $title-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+}
+
+.dialog-text {
+  font-family: PingFang SC;
+  font-weight: 400;
+  font-size: 14px;
+  color: $text-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/daoAnOffice/center/dialog/dialog-type3.vue b/src/views/daoAnOffice/center/dialog/dialog-type3.vue
new file mode 100644
index 0000000..9827292
--- /dev/null
+++ b/src/views/daoAnOffice/center/dialog/dialog-type3.vue
@@ -0,0 +1,121 @@
+<template>
+  <!-- 淇℃伅寮圭獥涓�  鏅尯-->
+  <div class="dialog-container" ref="dialog">
+    <div class="dialog-content">
+      <el-scrollbar max-height="277px">
+        <div class="scroll-content">
+          <div class="dialog-title">閮芥睙鍫伴潚鍩庡北鏅尯</div>
+          <div class="dialog-text">
+            闈掑煄灞憋紙Mount Qingcheng锛夛紝涓栫晫鏂囧寲閬椾骇闈掑煄灞�-閮芥睙鍫扮殑涓讳綋鏅尯銆佸叏鍥介噸鐐规枃
+            鐗╀繚鎶ゅ崟浣嶃�佸浗瀹堕噸鐐归鏅悕鑳滃尯銆佸浗瀹禔AAAA绾ф梾娓告櫙鍖恒�佸叏鐪熼緳闂ㄦ淳鍦e湴锛屽崄澶�
+            娲炲ぉ涔嬩竴锛屼腑鍥藉洓澶ч亾鏁欏悕灞变箣涓�锛屼簲澶т粰灞变箣涓�锛屾垚閮藉崄鏅箣涓�銆�
+          </div>
+          <div class="dialog-img">
+            <div class="img-item">
+              <img src="@/assets/img/test_img/show_img1.jpg">
+            </div>
+            <div class="img-item">
+              <img src="@/assets/img/test_img/show_img2.jpg">
+            </div>
+          </div>
+        </div>
+      </el-scrollbar>
+    </div>
+  </div>
+</template>
+
+<script setup>
+
+</script>
+
+<style lang="scss" scoped>
+$bg-color: #244E45;
+$border-color: #65B68D;
+$title-color: #2BB06D;
+$text-color: #94E8BE;
+
+.dialog-container {
+  position: relative;
+  background-color: $bg-color;
+  border: 1px solid $border-color;
+  border-radius: 5px;
+  max-width: 565px;
+
+  .dialog-content {
+    width: 100%;
+  }
+
+  .scroll-content {
+    width: 100%;
+    padding: 14px 18px;
+  }
+
+  &:before {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 8px solid transparent;
+    border-color: $bg-color transparent transparent transparent;
+    content: '';
+    z-index: 12;
+    border-left-width: 6px;
+    border-right-width: 6px;
+  }
+
+  &:after {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 10px solid transparent;
+    border-color: $border-color transparent transparent transparent;
+    content: '';
+    z-index: 10;
+    border-left-width: 8px;
+    border-right-width: 8px;
+  }
+}
+
+.dialog-title {
+  font-family: PingFang SC;
+  font-weight: 500;
+  font-size: 14px;
+  color: $title-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+}
+
+.dialog-text {
+  font-family: PingFang SC;
+  font-weight: 400;
+  font-size: 14px;
+  color: $text-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+}
+
+.dialog-img {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+
+  .img-item {
+    width: 247px;
+    height: 125px;
+    margin-bottom: 13px;
+
+    img {
+      width: 100%;
+      height: 100%;
+      object-fit: cover;
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/daoAnOffice/center/dialog/dialog-type4.vue b/src/views/daoAnOffice/center/dialog/dialog-type4.vue
new file mode 100644
index 0000000..2df5b0c
--- /dev/null
+++ b/src/views/daoAnOffice/center/dialog/dialog-type4.vue
@@ -0,0 +1,139 @@
+<template>
+  <!-- 淇℃伅寮圭獥鍥�  璀﹀姏-->
+  <div class="dialog-container" ref="dialog">
+    <div class="dialog-content">
+      <el-scrollbar max-height="277px">
+        <div class="scroll-content">
+          <div class="dialog-title">鎴愰兘鐧捐揣澶фゼ浜ゅ弶璺彛</div>
+          <div class="info-container">
+            <div class="info-item">
+              <span class="lable">鍦ㄥ矖璀﹀姏</span>
+              <span class="num">5</span>
+            </div>
+            <div class="info-item">
+              <span class="lable">鍦ㄥ矖璀﹁溅</span>
+              <span class="num">2</span>
+            </div>
+            <div class="info-item">
+              <span class="lable">澶囧嫟璀﹀姏</span>
+              <span class="num">3</span>
+            </div>
+          </div>
+        </div>
+      </el-scrollbar>
+    </div>
+  </div>
+</template>
+
+<script setup>
+
+</script>
+
+<style lang="scss" scoped>
+$bg-color: #182A54;
+$border-color: #5695F5;
+$title-color: #005DBA;
+$text-color: #94E8BE;
+
+.dialog-container {
+  position: relative;
+  background-color: $bg-color;
+  border: 1px solid $border-color;
+  border-radius: 5px;
+  max-width: 210px;
+
+  .dialog-content {
+    width: 100%;
+  }
+
+  .scroll-content {
+    width: 100%;
+    padding: 14px 18px;
+  }
+
+  &:before {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 8px solid transparent;
+    border-color: $bg-color transparent transparent transparent;
+    content: '';
+    z-index: 12;
+    border-left-width: 6px;
+    border-right-width: 6px;
+  }
+
+  &:after {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 10px solid transparent;
+    border-color: $border-color transparent transparent transparent;
+    content: '';
+    z-index: 10;
+    border-left-width: 8px;
+    border-right-width: 8px;
+  }
+}
+
+.dialog-title {
+  font-family: PingFang SC;
+  font-weight: 500;
+  font-size: 14px;
+  color: $title-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+}
+
+.dialog-text {
+  font-family: PingFang SC;
+  font-weight: 400;
+  font-size: 14px;
+  color: $text-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+}
+
+.dialog-img {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+
+  .img-item {
+    width: 247px;
+    height: 125px;
+    margin-bottom: 13px;
+
+    img {
+      width: 100%;
+      height: 100%;
+      object-fit: cover;
+    }
+  }
+}
+
+.info-container {
+  width: 100%;
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+  margin-bottom: 10px;
+  font-size: 14px;
+
+  .info-item {
+    color: #9DB8DF;
+
+    .num {
+      color: #E5BF33;
+    }
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/daoAnOffice/center/dialog/dialog-type5.vue b/src/views/daoAnOffice/center/dialog/dialog-type5.vue
new file mode 100644
index 0000000..38a5307
--- /dev/null
+++ b/src/views/daoAnOffice/center/dialog/dialog-type5.vue
@@ -0,0 +1,153 @@
+<template>
+  <!-- 淇℃伅寮圭獥浜�  鏂藉伐-->
+  <div class="dialog-container" ref="dialog">
+    <div class="dialog-content">
+      <el-scrollbar max-height="277px">
+        <div class="scroll-content">
+          <div class="dialog-title">閮芥睙鍫伴潚鍩庡北鏅尯</div>
+          <div class="info-container">
+            <div class="info-item">
+              <span class="lable">鏂藉伐鍗曚綅:</span>
+              <span class="num">XXXX鍏徃</span>
+            </div>
+            <div class="info-item">
+              <span class="lable">鏂藉伐鍛ㄦ湡:</span>
+              <span class="num">1骞�</span>
+            </div>
+            <div class="info-item">
+              <span class="lable">寮�濮嬫椂闂�:</span>
+              <span class="num">2024骞�1鏈�</span>
+            </div>
+          </div>
+          <div class="infor-desc">
+            鏈鏂藉伐鍖呮嫭xxxxxxxxxxxxxxxxxxxxxxxxxx
+            xxxxxxxxxxxxxx銆�
+          </div>
+        </div>
+      </el-scrollbar>
+    </div>
+  </div>
+</template>
+
+<script setup>
+
+</script>
+
+<style lang="scss" scoped>
+$bg-color: #1D3D61;
+$border-color: #629BB9;
+$title-color: #0F80BC;
+$text-color: #79B7D7;
+
+.dialog-container {
+  position: relative;
+  background-color: $bg-color;
+  border: 1px solid $border-color;
+  border-radius: 5px;
+  max-width: 305px;
+
+  .dialog-content {
+    width: 100%;
+  }
+
+  .scroll-content {
+    width: 100%;
+    padding: 14px 18px;
+  }
+
+  &:before {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 8px solid transparent;
+    border-color: $bg-color transparent transparent transparent;
+    content: '';
+    z-index: 12;
+    border-left-width: 6px;
+    border-right-width: 6px;
+  }
+
+  &:after {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 10px solid transparent;
+    border-color: $border-color transparent transparent transparent;
+    content: '';
+    z-index: 10;
+    border-left-width: 8px;
+    border-right-width: 8px;
+  }
+}
+
+.dialog-title {
+  font-family: PingFang SC;
+  font-weight: 500;
+  font-size: 14px;
+  color: $title-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+}
+
+.dialog-text {
+  font-family: PingFang SC;
+  font-weight: 400;
+  font-size: 14px;
+  color: $text-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+}
+
+.dialog-img {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+
+  .img-item {
+    width: 247px;
+    height: 125px;
+    margin-bottom: 13px;
+
+    img {
+      width: 100%;
+      height: 100%;
+      object-fit: cover;
+    }
+  }
+}
+
+.info-container {
+  width: 100%;
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+  font-size: 14px;
+
+  span {
+    margin-left: 0;
+  }
+
+  .info-item {
+    color: $text-color;
+
+    .num {
+      color: $text-color;
+    }
+  }
+}
+
+.infor-desc {
+  font-size: 14px;
+  word-break: break-all;
+  color: $text-color;
+  margin-bottom: 10px;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/daoAnOffice/center/dialog/dialog-type6.vue b/src/views/daoAnOffice/center/dialog/dialog-type6.vue
new file mode 100644
index 0000000..9fd9db3
--- /dev/null
+++ b/src/views/daoAnOffice/center/dialog/dialog-type6.vue
@@ -0,0 +1,142 @@
+<template>
+  <!-- 淇℃伅寮圭獥鍏�  浜嬫晠鍙戠敓鐐�-->
+  <div class="dialog-container" ref="dialog">
+    <div class="dialog-content">
+      <el-scrollbar max-height="277px">
+        <div class="scroll-content">
+          <div class="dialog-title">xx璺笌xx璺氦鍙夎矾鍙�</div>
+          <div class="dialog-text">
+            杩�3骞村彂鐢熶氦閫氫簨鏁厁x璧凤紝鍏朵腑閫犳垚浜哄憳浼や骸 xx璧凤紝xxxxxxxxxxxxxxxxxx銆�
+          </div>
+
+        </div>
+      </el-scrollbar>
+    </div>
+  </div>
+</template>
+
+<script setup>
+
+</script>
+
+<style lang="scss" scoped>
+$bg-color: #522933;
+$border-color: #F2908C;
+$title-color: #FE433C;
+$text-color: #F2908C;
+
+.dialog-container {
+  position: relative;
+  background-color: $bg-color;
+  border: 1px solid $border-color;
+  border-radius: 5px;
+  max-width: 305px;
+
+  .dialog-content {
+    width: 100%;
+  }
+
+  .scroll-content {
+    width: 100%;
+    padding: 14px 18px;
+  }
+
+  &:before {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 8px solid transparent;
+    border-color: $bg-color transparent transparent transparent;
+    content: '';
+    z-index: 12;
+    border-left-width: 6px;
+    border-right-width: 6px;
+  }
+
+  &:after {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 10px solid transparent;
+    border-color: $border-color transparent transparent transparent;
+    content: '';
+    z-index: 10;
+    border-left-width: 8px;
+    border-right-width: 8px;
+  }
+}
+
+.dialog-title {
+  font-family: PingFang SC;
+  font-weight: 500;
+  font-size: 14px;
+  color: $title-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+}
+
+.dialog-text {
+  font-family: PingFang SC;
+  font-weight: 400;
+  font-size: 14px;
+  color: $text-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+  word-break: break-all;
+
+}
+
+.dialog-img {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+
+  .img-item {
+    width: 247px;
+    height: 125px;
+    margin-bottom: 13px;
+
+    img {
+      width: 100%;
+      height: 100%;
+      object-fit: cover;
+    }
+  }
+}
+
+.info-container {
+  width: 100%;
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+  font-size: 14px;
+
+  span {
+    margin-left: 0;
+  }
+
+  .info-item {
+    color: $text-color;
+
+    .num {
+      color: $text-color;
+    }
+  }
+}
+
+.infor-desc {
+  font-size: 14px;
+  word-break: break-all;
+  color: $text-color;
+  margin-bottom: 10px;
+
+}
+</style>
\ No newline at end of file
diff --git a/src/views/daoAnOffice/center/dialog/dialog-type7.vue b/src/views/daoAnOffice/center/dialog/dialog-type7.vue
new file mode 100644
index 0000000..1a1c731
--- /dev/null
+++ b/src/views/daoAnOffice/center/dialog/dialog-type7.vue
@@ -0,0 +1,146 @@
+<template>
+  <!-- 淇℃伅寮圭獥涓�  浼佷笟-->
+  <div class="dialog-container" ref="dialog">
+    <div class="dialog-content">
+      <el-scrollbar max-height="277px">
+        <div class="scroll-content">
+          <div class="dialog-title">鍗庡厜鍓ч櫌</div>
+          <div class="dialog-text">
+            涓昏浠庝簨xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxx
+          </div>
+          <div class="dialog-img">
+            <div class="img-item">
+              <img src="@/assets/img/test_img/show_img3.jpg">
+            </div>
+          </div>
+        </div>
+      </el-scrollbar>
+    </div>
+  </div>
+</template>
+
+<script setup>
+
+</script>
+
+<style lang="scss" scoped>
+$bg-color: #583228;
+$border-color: #AF6F6B;
+$title-color: #FF591F;
+$text-color: #ECABAC;
+
+.dialog-container {
+  position: relative;
+  background-color: $bg-color;
+  border: 1px solid $border-color;
+  border-radius: 5px;
+  max-width: 305px;
+
+  .dialog-content {
+    width: 100%;
+  }
+
+  .scroll-content {
+    width: 100%;
+    padding: 14px 18px;
+  }
+
+  &:before {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 8px solid transparent;
+    border-color: $bg-color transparent transparent transparent;
+    content: '';
+    z-index: 12;
+    border-left-width: 6px;
+    border-right-width: 6px;
+  }
+
+  &:after {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 10px solid transparent;
+    border-color: $border-color transparent transparent transparent;
+    content: '';
+    z-index: 10;
+    border-left-width: 8px;
+    border-right-width: 8px;
+  }
+}
+
+.dialog-title {
+  font-family: PingFang SC;
+  font-weight: 500;
+  font-size: 14px;
+  color: $title-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+}
+
+.dialog-text {
+  font-family: PingFang SC;
+  font-weight: 400;
+  font-size: 14px;
+  color: $text-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+  word-break: break-all;
+
+}
+
+.dialog-img {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+
+  .img-item {
+    width: 100%;
+    height: 125px;
+    margin-bottom: 13px;
+
+    img {
+      width: 100%;
+      height: 100%;
+      object-fit: cover;
+    }
+  }
+}
+
+.info-container {
+  width: 100%;
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+  font-size: 14px;
+
+  span {
+    margin-left: 0;
+  }
+
+  .info-item {
+    color: $text-color;
+
+    .num {
+      color: $text-color;
+    }
+  }
+}
+
+.infor-desc {
+  font-size: 14px;
+  word-break: break-all;
+  color: $text-color;
+  margin-bottom: 10px;
+
+}
+</style>
\ No newline at end of file
diff --git a/src/views/daoAnOffice/center/dialog/dialog-type8.vue b/src/views/daoAnOffice/center/dialog/dialog-type8.vue
new file mode 100644
index 0000000..0dec44a
--- /dev/null
+++ b/src/views/daoAnOffice/center/dialog/dialog-type8.vue
@@ -0,0 +1,150 @@
+<template>
+  <!-- 淇℃伅寮圭獥涓�  浼佷笟-->
+  <div class="dialog-container" ref="dialog">
+    <div class="dialog-content">
+      <el-scrollbar max-height="277px">
+        <div class="scroll-content">
+          <div class="dialog-title">106璺�</div>
+          <div class="info-container">
+            <div class="info-item">
+              <span class="lable">棣栫彮:</span>
+              <span class="num">08:00</span>
+            </div>
+            <div class="info-item">
+              <span class="lable">鏈彮:</span>
+              <span class="num">23:00</span>
+            </div>
+          </div>
+          <div class="infor-desc">
+            閫旂粡绔欑偣锛歺xx銆亁xx銆亁xx銆亁xx銆亁xx銆亁xx銆� xxx銆亁xx銆�
+          </div>
+        </div>
+      </el-scrollbar>
+    </div>
+  </div>
+</template>
+
+<script setup>
+
+</script>
+
+<style lang="scss" scoped>
+$bg-color: #1D3D61;
+$border-color: #629BB9;
+$title-color: #006EE4;
+$text-color: #79B7D7;
+
+.dialog-container {
+  position: relative;
+  background-color: $bg-color;
+  border: 1px solid $border-color;
+  border-radius: 5px;
+  max-width: 305px;
+
+  .dialog-content {
+    width: 100%;
+  }
+
+  .scroll-content {
+    width: 100%;
+    padding: 14px 18px;
+  }
+
+  &:before {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 8px solid transparent;
+    border-color: $bg-color transparent transparent transparent;
+    content: '';
+    z-index: 12;
+    border-left-width: 6px;
+    border-right-width: 6px;
+  }
+
+  &:after {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 10px solid transparent;
+    border-color: $border-color transparent transparent transparent;
+    content: '';
+    z-index: 10;
+    border-left-width: 8px;
+    border-right-width: 8px;
+  }
+}
+
+.dialog-title {
+  font-family: PingFang SC;
+  font-weight: 500;
+  font-size: 14px;
+  color: $title-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+}
+
+.dialog-text {
+  font-family: PingFang SC;
+  font-weight: 400;
+  font-size: 14px;
+  color: $text-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+  word-break: break-all;
+
+}
+
+.dialog-img {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+
+  .img-item {
+    width: 100%;
+    height: 125px;
+    margin-bottom: 13px;
+
+    img {
+      width: 100%;
+      height: 100%;
+      object-fit: cover;
+    }
+  }
+}
+
+.info-container {
+  width: 100%;
+  display: flex;
+  flex-wrap: wrap;
+  font-size: 14px;
+
+  span {
+    margin-left: 0;
+  }
+
+  .info-item {
+    color: $text-color;
+    margin-right: 25px;
+
+    .num {
+      color: #E5BF33;
+    }
+  }
+}
+
+.infor-desc {
+  font-size: 14px;
+  word-break: break-all;
+  color: $text-color;
+  margin-bottom: 10px;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/daoAnOffice/center/dialog/dialog-type9.vue b/src/views/daoAnOffice/center/dialog/dialog-type9.vue
new file mode 100644
index 0000000..41f5bfe
--- /dev/null
+++ b/src/views/daoAnOffice/center/dialog/dialog-type9.vue
@@ -0,0 +1,145 @@
+<template>
+  <!-- 淇℃伅寮圭獥涓�  浼佷笟-->
+  <div class="dialog-container" ref="dialog">
+    <div class="dialog-content">
+      <el-scrollbar max-height="277px">
+        <div class="scroll-content">
+          <div class="dialog-title">xxx灏忓尯娑堥槻瀹夊叏闅愭偅</div>
+          <div class="dialog-text">
+            xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxx
+          </div>
+          <div class="dialog-img">
+            <div class="img-item">
+              <img src="@/assets/img/test_img/show_img4.jpeg">
+            </div>
+          </div>
+        </div>
+      </el-scrollbar>
+    </div>
+  </div>
+</template>
+
+<script setup>
+
+</script>
+
+<style lang="scss" scoped>
+$bg-color: #50122B;
+$border-color: #DC707F;
+$title-color: #E90020;
+$text-color: #E86E7F;
+
+.dialog-container {
+  position: relative;
+  background-color: $bg-color;
+  border: 1px solid $border-color;
+  border-radius: 5px;
+  max-width: 305px;
+
+  .dialog-content {
+    width: 100%;
+  }
+
+  .scroll-content {
+    width: 100%;
+    padding: 14px 18px;
+  }
+
+  &:before {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 8px solid transparent;
+    border-color: $bg-color transparent transparent transparent;
+    content: '';
+    z-index: 12;
+    border-left-width: 6px;
+    border-right-width: 6px;
+  }
+
+  &:after {
+    width: 0px;
+    height: 0px;
+    position: absolute;
+    top: 100%;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 0;
+    border: 10px solid transparent;
+    border-color: $border-color transparent transparent transparent;
+    content: '';
+    z-index: 10;
+    border-left-width: 8px;
+    border-right-width: 8px;
+  }
+}
+
+.dialog-title {
+  font-family: PingFang SC;
+  font-weight: 500;
+  font-size: 14px;
+  color: $title-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+}
+
+.dialog-text {
+  font-family: PingFang SC;
+  font-weight: 400;
+  font-size: 14px;
+  color: $text-color;
+  line-height: 20px;
+  margin-bottom: 13px;
+  word-break: break-all;
+
+}
+
+.dialog-img {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+
+  .img-item {
+    width: 100%;
+    height: 125px;
+    margin-bottom: 13px;
+
+    img {
+      width: 100%;
+      height: 100%;
+      object-fit: cover;
+    }
+  }
+}
+
+.info-container {
+  width: 100%;
+  display: flex;
+  flex-wrap: wrap;
+  font-size: 14px;
+
+  span {
+    margin-left: 0;
+  }
+
+  .info-item {
+    color: $text-color;
+    margin-right: 25px;
+
+    .num {
+      color: #E5BF33;
+    }
+  }
+}
+
+.infor-desc {
+  font-size: 14px;
+  word-break: break-all;
+  color: $text-color;
+  margin-bottom: 10px;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/daoAnOffice/center/map.vue b/src/views/daoAnOffice/center/map.vue
index dc1c3ad..3600a7d 100644
--- a/src/views/daoAnOffice/center/map.vue
+++ b/src/views/daoAnOffice/center/map.vue
@@ -24,16 +24,36 @@
         <img src="@/assets/img/sslk.png" alt="" class="item-tb-img">
         <p class="item-tb-p">瀹炴椂璺喌</p>
       </div>
+    </div>
 
+    <!-- 瀵煎叆鑷畾涔夊脊绐� -->
+    <div class="dialog-container dialog">
+      <DialogType1 ref="dtype1"></DialogType1>
+      <DialogType2 ref="dtype2"></DialogType2>
+      <DialogType3 ref="dtype3"></DialogType3>
+      <DialogType4 ref="dtype4"></DialogType4>
+      <DialogType5 ref="dtype5"></DialogType5>
+      <DialogType6 ref="dtype6"></DialogType6>
+      <DialogType7 ref="dtype7"></DialogType7>
+      <DialogType8 ref="dtype8"></DialogType8>
+      <DialogType9 ref="dtype9"></DialogType9>
     </div>
   </div>
 </template>
 
 <script setup>
-import { onMounted, ref } from 'vue';
+import { onMounted, ref,getCurrentInstance } from 'vue';
 import AMapLoader from '@amap/amap-jsapi-loader';
 
-import { require } from '@/utils/require.js';
+import DialogType1 from './dialog/dialog-type1.vue';
+import DialogType2 from './dialog/dialog-type2.vue';
+import DialogType3 from './dialog/dialog-type3.vue';
+import DialogType4 from './dialog/dialog-type4.vue';
+import DialogType5 from './dialog/dialog-type5.vue';
+import DialogType6 from './dialog/dialog-type6.vue';
+import DialogType7 from './dialog/dialog-type7.vue';
+import DialogType8 from './dialog/dialog-type8.vue';
+import DialogType9 from './dialog/dialog-type9.vue';
 
 import icon1 from '@/assets/img/icon/icon1.png';
 import icon2 from '@/assets/img/icon/icon2.png';
@@ -45,8 +65,23 @@
 import icon8 from '@/assets/img/icon/icon8.png';
 import icon9 from '@/assets/img/icon/icon9.png';
 
+const dtype1 = ref(null);
+const dtype2 = ref(null);
+const dtype3 = ref(null);
+const dtype4 = ref(null);
+const dtype5 = ref(null);
+const dtype6 = ref(null);
+const dtype7 = ref(null);
+const dtype8 = ref(null);
+const dtype9 = ref(null);
 
 const map = ref(null);
+
+// dialog闆嗗悎
+const dialogList = ref({});
+// 鑾峰彇褰撳墠瀹炰緥
+const {ctx} = getCurrentInstance();
+
 let mapInstance = null;
 let trafficLayer = null;;
 
@@ -55,6 +90,9 @@
 
 // 鍦板浘鐨勫浘鏍囨暟缁�
 const markers = [];
+
+// 淇℃伅寮圭獥
+let infoWindow = null;
 
 // 鍥惧垪
 const legendList = ref([
@@ -164,14 +202,29 @@
 // 杩囨护鍥惧垪
 const filterLegend = (item) => {
   const { icon, positions, type } = item;
+  const dialog = dialogList.value[type].$refs.dialog;
   const tempList = [];
   positions.map(position => {
     const markerIcon = createIcon(icon);
-    const marker = ceateMarker(markerIcon, position);
+    const marker = ceateMarker(type, markerIcon, position);
     tempList.push(marker);
+    marker.on('click', (markerEvent) => {
+      infoWindow.setContent(dialog);
+      infoWindow.open(mapInstance, markerEvent.target.getPosition());
+      // console.log(dialogList.value[type]);
+    });
   });
   markers.push({ type: type, markerList: tempList })
   mapInstance.add(tempList);
+}
+
+// 鍒涘缓寮圭獥
+const createInfoWindow = () => {
+  infoWindow = new AMap.InfoWindow({
+    isCustom: true,
+    closeWhenClickMap: true,
+    offset: new AMap.Pixel(20, -20),
+  });
 }
 
 // 鍒涘缓鍥炬爣
@@ -185,11 +238,12 @@
 
 
 // 鍒涘缓marker
-const ceateMarker = (icon, position) => {
+const ceateMarker = (type, icon, position) => {
   return new AMap.Marker({
     icon: icon,
     position: new AMap.LngLat(position[0], position[1]),
     zooms: [2, 20],
+    extData: type
   });
 }
 
@@ -222,6 +276,14 @@
 }
 
 
+// 寮圭獥涓庣粍浠舵槧灏�
+const mapComponentInstance = () => {
+  legendList.value.map((item) => {
+    dialogList.value[item.id] = ctx.$refs[`dtype${item.id}`];
+  })
+}
+
+
 onMounted(() => {
   AMapLoader.load({
     key: "2898109c22191c3969957500934169dc", //鐢宠濂界殑 Web 绔紑鍙戣�� Key锛岄娆¤皟鐢� load 鏃跺繀濉�
@@ -243,14 +305,13 @@
 
       trafficLayer.setMap(mapInstance);
 
-
+      // 闄愬埗涓�涓尯鍩熻疆寤�
       const options = {
         subdistrict: 0,
         extensions: "all",
         level: "district",
       };
 
-      // 闄愬埗涓�涓尯鍩熻疆寤�
       AMap.plugin("AMap.DistrictSearch", function () {
         //鍦ㄥ洖璋冨嚱鏁颁腑瀹炰緥鍖栨彃浠讹紝骞朵娇鐢ㄦ彃浠跺姛鑳�
         const district = new AMap.DistrictSearch(options);
@@ -290,7 +351,10 @@
           mapInstance.add(polygon);
         });
       });
-
+      // 鍒涘缓infowindow
+      createInfoWindow();
+      // 鏄犲皠缁勪欢
+      mapComponentInstance();
     })
     .catch((e) => {
       console.log(e);
@@ -400,4 +464,10 @@
 :deep(.amap-copyright) {
   visibility: hidden !important;
 }
+
+.dialog {
+  opacity: 0;
+  position: absolute;
+  left: -500px;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.8.0