From cf5ab6da9ff676fab8a10d4299bd5a04a07bf50f Mon Sep 17 00:00:00 2001
From: 徐旺旺 <11530253@qq.com>
Date: 星期一, 17 五月 2021 10:05:53 +0800
Subject: [PATCH] 修复默认选中图层时出现的BUG

---
 src/components/LayerController/service/WmsLayerService.js |   55 +++++++++++++++++++++++++++++--------------------------
 1 files changed, 29 insertions(+), 26 deletions(-)

diff --git a/src/components/LayerController/service/WmsLayerService.js b/src/components/LayerController/service/WmsLayerService.js
index 0094a71..3b25bc6 100644
--- a/src/components/LayerController/service/WmsLayerService.js
+++ b/src/components/LayerController/service/WmsLayerService.js
@@ -1,5 +1,5 @@
 import AjaxUtils from '../../../utils/AjaxUtils'
-import { PIPELINE_WMS } from '../../../conf/Constants'
+import { WMS_URL } from '../../../conf/Constants'
 import Popup from '@views/popup/Popup'
 import WmsLayerList from '../dataset/WmsLayerList'
 
@@ -29,9 +29,11 @@
     this.featureGroup = this.L.featureGroup({}).addTo(this.map)
 
     this.wmsLayerList = new WmsLayerList()
-    for (var i = 0; i < layersConfig.length; i++) {
-      const config = layersConfig[i]
-      this.wmsLayerList.addConfig(config)
+    if (layersConfig) {
+      for (var i = 0; i < layersConfig.length; i++) {
+        const config = layersConfig[i]
+        this.wmsLayerList.addConfig(config)
+      }
     }
     this.load()
   }
@@ -41,28 +43,24 @@
   }
 
   add (config) {
+    console.log(config)
     this.wmsLayerList.addConfig(config)
-    const layers = this.wmsLayerList.getLayers()
-    const filter = this.wmsLayerList.getFilters()
+    const layers = this.wmsLayerList.getLayers() || ''
+    const filter = this.wmsLayerList.getFilters() || ''
     const params = {}
-    if (filter) {
-      params.cql_filter = filter
-    }
-    if (layers) {
-      params.layers = layers
-    }
+    params.cql_filter = filter
+    params.layers = layers
+    console.log(this.wmsLayerList)
     this.wmsLayer.setParams(params)
   }
 
   remove (config) {
     console.log(config)
     this.wmsLayerList.remove(config.typeName, config.filter)
-    const layers = this.wmsLayerList.getLayers()
-    const filter = this.wmsLayerList.getFilters()
+    const layers = this.wmsLayerList.getLayers() || ''
+    const filter = this.wmsLayerList.getFilters() || ''
     const params = { layers: layers }
-    if (filter) {
-      params.cql_filter = filter
-    }
+    params.cql_filter = filter
     this.wmsLayer.setParams(params)
   }
 
@@ -80,17 +78,19 @@
     if (filter.length > 0) {
       params.cql_filter = filter
     }
-    this.wmsLayer = this.L.tileLayer.wms(PIPELINE_WMS, params).addTo(this.map)
+    this.wmsLayer = this.L.tileLayer.wms(WMS_URL, params).addTo(this.map)
   }
 
   clickListener () {
     window.map.on('click', (e) => {
       // console.log(e)
+      window.layerFactory.clearHighlight()
       this.featureGroup.clearLayers()
       var point = this.map.latLngToContainerPoint(e.latlng, this.map.getZoom())
       var size = this.map.getSize()
       // const bbox = this.L.latLngBounds(this.L.latLng(e.latlng.lng, e.latlng.lat)).toBBoxString()
       const layers = this.wmsLayerList.getLayers()
+      const filter = this.wmsLayerList.getFilters()
       if (layers.length > 0) {
         const params = Object.assign({
           LAYERS: layers,
@@ -101,16 +101,19 @@
           Y: Math.round(point.y),
           BBOX: this.map.getBounds().toBBoxString()
         }, this.params)
-        AjaxUtils.get4JsonDataByUrl(PIPELINE_WMS, params, (res) => {
+        if (filter.length > 0) {
+          params.cql_filter = filter
+        }
+        AjaxUtils.get4JsonDataByUrl(WMS_URL, params, (res) => {
           const features = res.data.features
           /**
-           * {
-           *     title: 'New Tab',
-           *     name: newTabName,
-           *     content: 'New Tab content'
-           * }
-           * @type {*[]}
-           */
+                     * {
+                     *     title: 'New Tab',
+                     *     name: newTabName,
+                     *     content: 'New Tab content'
+                     * }
+                     * @type {*[]}
+                     */
           const popupDatas = []
           if (features) {
             for (var i = 0; i < features.length; i++) {

--
Gitblit v1.8.0