From 9f5456f88b8397ffbab1ad80331aaa834c15d882 Mon Sep 17 00:00:00 2001
From: 陈泽平 <chenzeping>
Date: 星期一, 17 五月 2021 17:19:52 +0800
Subject: [PATCH] Merge branch 'develop' of http://xearth.cn:6600/r/wuyushui/SewerAndRainNetwork into develop

---
 src/components/helpers/LocateHelper.js |   61 ++++++++++++++++++++++--------
 1 files changed, 45 insertions(+), 16 deletions(-)

diff --git a/src/components/helpers/LocateHelper.js b/src/components/helpers/LocateHelper.js
index 876e74e..4160b89 100644
--- a/src/components/helpers/LocateHelper.js
+++ b/src/components/helpers/LocateHelper.js
@@ -1,5 +1,6 @@
 import { pulseEffect, reversePolyLine } from '../../utils/utils'
-
+import Popup from '@views/popup/Popup'
+import { LAYERPROPS, LAYERS } from '../../conf/Constants'
 /**
  * 鏍规嵁浼犵殑 feature瀵硅薄瀹氫綅锛�
  * @param code
@@ -25,6 +26,7 @@
 export const highlight = function (feature, config) {
   const L = window.L
   const type = feature.geometry.type
+  window.mapManager.clearHighlight()
   const highlightLayer = window.mapManager.hightlightLayer
   if (type === 'MultiLineString') {
     L.geoJSON(feature, {
@@ -50,29 +52,56 @@
       }).addTo(highlightLayer)
     }
     pulseEffect(point)
+    const features = window.mapManager.loadWfsDatas(point)
+    openPopup(point, features)
   } else if (type === 'LineString') {
     L.polyline(reversePolyLine(feature), { color: 'red' }).addTo(highlightLayer)
   }
 }
 
-export const openPopup = function (layerId, id) {
-  const layer = this.layers[layerId]
-
-  if (layer) {
-    layer.eachLayer(function (layer) {
-      const layers = layer.getLayers()
-      for (var i = 0; i < layers.length; i++) {
-        const lay = layers[i]
-        const feature = lay.feature
-        lay.closePopup()
-        if (feature.id === id) {
-          lay.openPopup()
-          break
+export const openPopup = function (xy, features) {
+  const lt = window.map.latLngToContainerPoint(xy)
+  const datas = popupDatas(features)
+  if (datas.length > 0) {
+    window.$layer.open({
+      content: {
+        comp: Popup, // 缁勪欢
+        data: { // 浼犻�掔殑鍙傛暟
+          datas: datas
         }
-      }
+      },
+      title: '', // 鏍囬
+      left: lt.x,
+      top: lt.y
     })
   }
-  return null
+}
+
+const popupDatas = function (features) {
+  const datas = []
+  if (features) {
+    for (var i = 0; i < features.length; i++) {
+      const feature = features[i]
+      const id = feature.id
+      const properties = feature.properties
+      const ids = id.split('.')
+
+      const propValues = LAYERPROPS[ids[0]]
+      const contents = {}
+      for (const k in properties) {
+        if (propValues[k]) {
+          contents[propValues[k]] = properties[k]
+        }
+      }
+      datas.push({
+        title: LAYERS[ids[0]],
+        name: feature.id,
+        content: contents
+      })
+      console.log(properties)
+    }
+  }
+  return datas
 }
 
 export const getLayer = function (layerId, id) {

--
Gitblit v1.8.0