diff --git a/components/AiDvMap.vue b/components/AiDvMap.vue
index 9ea18775..476c0471 100644
--- a/components/AiDvMap.vue
+++ b/components/AiDvMap.vue
@@ -1,6 +1,13 @@
 
   
 
 
@@ -11,12 +18,15 @@ import {mapState} from "vuex";
 export default {
   name: 'AiDvMap',
   props: {
-    geoJson: String
+    geoJson: String,
+    data: Array
   },
   data() {
     return {
-      timer: null,
-      chart: null
+      dialog: false,
+      chart: null,
+      detail: {},
+      dialogPos: {}
     }
   },
   directives: {
@@ -50,6 +60,14 @@ export default {
   mounted() {
     this.$load(this.$refs.dvMap).then(() => this.initChart())
   },
+  watch: {
+    dialog(v) {
+      if (!v) {
+        this.detail = []
+        this.dialogPos = {}
+      }
+    }
+  },
   methods: {
     onDomResize() {
       this.$nextTick(() => {
@@ -63,95 +81,130 @@ export default {
         if (res?.data) {
           echarts.registerMap('customMap', res.data)
           const option = {
-            // geo: [
-            //   {
-            //     map: "customMap",
-            //     aspectScale: 1,
-            //     zoom: 0.65,
-            //     layoutCenter: ["50%", "50%"],
-            //     layoutSize: "180%",
+            geo: [
+              {
+                map: "customMap",
+                aspectScale: 1,
+                zoom: 0.65,
+                layoutCenter: ["50%", "50%"],
+                layoutSize: "180%",
+                show: true,
+                roam: false,
+                selectedMode: 'single',
+                emphasis: {
+                  show: true,
+                  label: {
+                    textStyle: {
+                      color: "#FFFFFF"
+                    },
+                  },
+                  itemStyle: {
+                    areaColor: '#02C6DC'
+                  }
+                },
+                select: {
+                  label: {
+                    color: "#fff"
+                  },
+                  itemStyle: {
+                    areaColor: '#02bcff29'
+                  }
+                },
+                label: {
+                  show: true,
+                  color: '#fff',
+                  fontSize: 22
+                },
+                itemStyle: {
+                  borderColor: "rgba(2, 198, 220, 1)",
+                  borderWidth: 2,
+                  areaColor: "#02bcff29",
+                  shadowBlur: 120,
+                }
+              },
+              // 重影
+              ...Array(3).fill(1).map((e, i) => {
+                return {
+                  type: "map",
+                  map: "customMap",
+                  zlevel: -1,
+                  aspectScale: 1,
+                  zoom: 0.65,
+                  layoutCenter: ["50%", `${51 + i}%`],
+                  layoutSize: "180%",
+                  roam: false,
+                  silent: true,
+                  itemStyle: {
+                    normal: {
+                      borderWidth: 1,
+                      // borderColor:"rgba(17, 149, 216,0.6)",
+                      borderColor: `rgba(2, 198, 220, ${0.6 - i * 0.2})`,
+                      shadowColor: `rgba(2, 198, 220, ${0.6 - i * 0.2})`,
+                      shadowOffsetY: 5,
+                      shadowBlur: 15,
+                      areaColor: "transparent",
+                    },
+                  },
+                }
+              })
+            ],
+            // geo3D: {
+            //   map: "customMap",
+            //   shading: 'color',
+            //   regionHeight: 8,
+            //   show: true,
+            //   emphasis: {
             //     show: true,
-            //     roam: false,
-            //     emphasis: {
-            //       show: true,
-            //       label: {
-            //         textStyle: {
-            //           color: "#FFFFFF"
-            //         },
-            //       },
-            //       itemStyle: {
-            //         areaColor: '#02C6DC'
-            //       }
-            //     },
-            //     label: {
-            //       show: true,
-            //       color: '#fff',
-            //       fontSize: 22
-            //     },
-            //     itemStyle: {
-            //       borderColor: "rgba(2, 198, 220, 1)",
-            //       borderWidth: 2,
-            //       areaColor: "#02bcff29",
-            //     }
             //   },
-            //   // 重影
-            //   // {
-            //   //   type: "map",
-            //   //   map: "customMap",
-            //   //   zlevel: -1,
-            //   //   aspectScale: 1,
-            //   //   zoom: 0.65,
-            //   //   layoutCenter: ["50%", "51%"],
-            //   //   layoutSize: "180%",
-            //   //   roam: false,
-            //   //   silent: true,
-            //   //   itemStyle: {
-            //   //     normal: {
-            //   //       borderWidth: 1,
-            //   //       // borderColor:"rgba(17, 149, 216,0.6)",
-            //   //       borderColor: "rgba(2, 198, 220, 0.6)",
-            //   //       shadowColor: "rgba(2, 198, 220, 0.6)",
-            //   //       shadowOffsetY: 5,
-            //   //       shadowBlur: 15,
-            //   //       areaColor: "rgba(5,21,35,0.1)",
-            //   //     },
-            //   //   },
-            //   // },
-            // ],
-            geo3D: {
-              map: "customMap",
-              shading: 'color',
-              regionHeight: 8,
-              show: true,
-              emphasis: {
-                show: true,
-              },
-              label: {
-                show: true,
-                color: '#fff',
-                fontSize: 22
-              },
-              itemStyle: {
-                color: '#02bcff29',
-                borderColor: "rgba(2, 198, 220, 1)",
-                borderWidth: 2
-              },
-              viewControl: {
-                rotateSensitivity: 0,
-                zoomSensitivity: 0,
-                panMouseButton: 0,
-                distance: 250,
-                alpha:50,
-                center:[0,-60,0]
-              }
-            },
+            //   label: {
+            //     show: true,
+            //     color: '#fff',
+            //     fontSize: 22
+            //   },
+            //   itemStyle: {
+            //     color: '#02bcff29',
+            //     borderColor: "rgba(2, 198, 220, 1)",
+            //     borderWidth: 2
+            //   },
+            //   viewControl: {
+            //     rotateSensitivity: 0,
+            //     zoomSensitivity: 0,
+            //     panMouseButton: 0,
+            //     distance: 250,
+            //     alpha:50,
+            //     center:[0,-60,0]
+            //   }
+            // },
           }
           this.chart.setOption(option)
+          this.chart.on('click', evt => {
+            const {name, event: {offsetX, offsetY}} = evt
+            this.dialog = true
+            this.detail = []
+            const item = this.data.find(e => e.name.includes(name))
+            for (const k in item) {
+              if ('name' != k) {
+                this.detail.push({
+                  label: k, value: item[k], color: {
+                    高风险纠纷: "#FF6868",
+                    中风险纠纷: "#FFAB68",
+                    低风险纠纷: "#7FE89E",
+                  }[k]
+                })
+              }
+            }
+            this.dialogPos = {left: offsetX + 'px', top: offsetY + 'px'}
+          })
         }
       })
     },
     getData(url = `https://geo.datav.aliyun.com/areas_v3/bound/geojson?code=${this.user.info.areaId?.substring(0, 6)}`) {
       return http.post(`/app/appdvcpconfig/apiForward?url=${encodeURIComponent(url)}`)
+    },
+    dotStyle(color) {
+      return {
+        background: color,
+      }
     }
   }
 }
@@ -166,10 +219,49 @@ export default {
   height: 100%;
   padding: 16px;
   box-sizing: border-box;
+  position: relative;
 
   .chart-map {
     width: 100%;
     height: 100%;
   }
+
+  .dialog {
+    position: absolute;
+    transform: translate(-50%, -120%);
+    z-index: 20240327926;
+    padding: 16px 16px 24px;
+    background-color: rgba(9, 48, 69, 0.8);
+    backdrop-filter: blur(5px);
+    color: #fff;
+    font-size: 14px;
+    min-width: 200px;
+    border: 1px solid #02C6DC;
+
+    &:after {
+      position: absolute;
+      bottom: 0;
+      left: 50%;
+      transform: translate(-50%, 50%) rotate(-135deg);
+      content: " ";
+      width: 10px;
+      height: 10px;
+      background: inherit;
+      border: inherit;
+      clip-path: polygon(0 0, 100% 0, 0 100%);
+    }
+
+    .dot {
+      width: 14px;
+      height: 14px;
+      border-radius: 50%;
+      margin-right: 8px;
+      border: 3px solid rgba(9, 48, 69, .4);
+    }
+
+    .label {
+      color: #9BB7D4;
+    }
+  }
 }
 
diff --git a/components/AiDvRender.vue b/components/AiDvRender.vue
index f87842a8..ea5b3140 100644
--- a/components/AiDvRender.vue
+++ b/components/AiDvRender.vue
@@ -43,7 +43,7 @@
           :subType="data.subType"
           :data="values">
       
-      
+      
       
           
         
-        
+