From da21171cc9b248ad9c7f062e41f039eceb910c23 Mon Sep 17 00:00:00 2001
From: YANGDL <114714267@qq.com>
Date: 星期六, 09 一月 2021 14:08:19 +0800
Subject: [PATCH] 优化天地图矢量瓦片切换

---
 src/components/LayerController/modules/LcServiceLayerFilter.vue |   34 ++++++++++++++++++++++++++++++++--
 1 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/src/components/LayerController/modules/LcServiceLayerFilter.vue b/src/components/LayerController/modules/LcServiceLayerFilter.vue
index 75231cd..4fe2af2 100644
--- a/src/components/LayerController/modules/LcServiceLayerFilter.vue
+++ b/src/components/LayerController/modules/LcServiceLayerFilter.vue
@@ -2,7 +2,7 @@
   <div class="inner-panel">
       <div class="filter-group">
           <div v-for="item in filterConfig" :key="item.code" class="filter-item">
-              <div class="title"><input type="checkbox" :value="item.code" :checked="item.checked">{{item.name}}</div>
+              <div class="title"><input type="checkbox" :value="item.code" :checked="item.checked" @change="swAllSubFilter(item)">{{item.name}}</div>
               <div class="content">
                   <div v-for="filter in item.filters" :key="filter.code">
                     <input type="checkbox" :value="filter.code" :checked="filter.checked"><label :title="filter.name">{{filter.sname}}</label>
@@ -15,6 +15,8 @@
 
 <script>
 import { mapState, mapMutations } from "vuex";
+import WmsHelper from "../../helpers/WmsHelper";
+
 export default {
   name: "LcServiceLayerFilter",
   components: {},
@@ -31,15 +33,43 @@
       selectedServiceLayer: (state) => {
         return state.selectedServiceLayer
       },
+      serviceLayerFilters: (state) => {
+        return state.serviceLayerFilters
+      },
+      mapConfig: (state) => {
+        return state.mapConfig
+      }
     }),
   },
   mounted() {
-    
+
   },
   methods: {
     ...mapMutations([]),
     getFilterConfig(){
         return this.filterConfig
+    },
+    swAllSubFilter(item){
+        item.checked = !item.checked
+        for(let i = 0, len = item.filters.length; i < len; ++i){
+            item.filters[i].checked = item.checked
+        }
+
+        console.log('------')
+        var mapConfig = this.mapConfig
+        var wmsHelper = new WmsHelper()
+        wmsHelper.initMapConfig(mapConfig)
+        var wmsLayersMap = wmsHelper.getWmsLayersMap()
+        //var filterURL = wmsHelper.getFilterURL()
+        console.log(wmsLayersMap)
+        for (var k in wmsLayersMap) {
+            var layers = wmsLayersMap[k]
+            var tileLayer = this.serviceLayerHelper.getTileLayer(k)
+            if (tileLayer) {
+                tileLayer.setParams({layers: layers.join(',')}, true)
+                tileLayer.setUrl(tileLayer.config.url,false)
+            }
+        }
     }
   },
   watch: {

--
Gitblit v1.8.0