瀏覽代碼

动态渲染数据

Hwf 8 月之前
父節點
當前提交
75a6a957d5

+ 16 - 2
src/components/Map/index.vue

@@ -34,6 +34,7 @@ import {
   getSchoolDetails,
   getWaterloggedRoadsDetails
 } from '@/api/globalMap/spatialAnalysis';
+import { pointDetailTemplate } from '@/views/globalMap/data/mapData';
 
 interface Props {
   activeMap: string;
@@ -134,6 +135,8 @@ const { getAMap, getMap, switchMap, addMarker, addSearchMarker, clearMarker, get
         table.innerHTML = '<div>主题</div><div>名称</div>';
         content.appendChild(table);
         data2.forEach((item) => {
+          item.longitude = data.longitude;
+          item.latitude = data.latitude;
           const div = document.createElement('div');
           div.className = 'point-item';
           div.innerHTML = '<div>' + getDictLabel(point_type.value, item.dataType.toString()) + '</div><div>' + item.name + '</div>';
@@ -159,8 +162,19 @@ const handlePointDetails = (data) => {
   let method = methodList[data.dataType];
   if (!method) return;
   method(data.id).then((res) => {
-    const data = res.rows[0];
-    showInfo(content, [data.longitude, data.latitude]);
+    if(!!pointDetailTemplate[data.dataType]) {
+      let content = document.createElement('div');
+      content.className = 'point-info';
+      for(let key in res.rows[0]) {
+        let keyLabel = !!pointDetailTemplate[data.dataType][key] ? pointDetailTemplate[data.dataType][key] : key
+        const div = document.createElement('div');
+        div.className = 'point-item';
+        div.innerHTML = '<div>' + keyLabel + '</div><div>' + res.rows[0][key] + '</div>';
+        content.appendChild(div);
+      }
+      showInfo(content, [data.longitude, data.latitude]);
+    }
+
   });
 };
 // 监听地图类型变化

+ 1 - 0
src/types/components.d.ts

@@ -99,6 +99,7 @@ declare module 'vue' {
     UserSelect: typeof import('./../components/UserSelect/index.vue')['default']
     VideoContainer: typeof import('./../components/HKVideo/video-container.vue')['default']
     YMap: typeof import('./../components/Map/YMap.vue')['default']
+    YMapold: typeof import('./../components/Map/YMapold.vue')['default']
     YztMap: typeof import('./../components/Map/YztMap/index.vue')['default']
   }
   export interface ComponentCustomProperties {

+ 0 - 13
src/views/globalMap/RightMenu/pointDetailTemplate.ts

@@ -1,13 +0,0 @@
-export const pointDetailTemplate = {
-  '1': {
-    name: '姓名',
-    area: '所属区域',
-    company: '单位',
-    official: '职位',
-    phone: '联系电话',
-    type: '专家类型'
-  },
-  '2': {
-
-  }
-};

+ 20 - 0
src/views/globalMap/data/mapData.ts

@@ -4126,3 +4126,23 @@ export const iconList = {
     size: [19, 31]
   }
 };
+
+export const pointDetailTemplate = {
+  '1': {
+    name: '姓名',
+    area: '所属区域',
+    company: '单位',
+    official: '职位',
+    phone: '联系电话',
+    type: '专家类型'
+  },
+  '2': {
+
+  }
+};
+
+export const creatDetailTemplate = (data, type) => {
+
+};
+
+