From 9cd476f875b661eca3eb5c4908ce0e744f48cbfe Mon Sep 17 00:00:00 2001
From: wangrui <zephyrs0894@163.com>
Date: 星期四, 24 十二月 2020 17:36:01 +0800
Subject: [PATCH] 配置过滤条件

---
 src/components/LayerController/modules/LcServiceLayer.vue |   36 +++++++++++++++++++++++++++---------
 1 files changed, 27 insertions(+), 9 deletions(-)

diff --git a/src/components/LayerController/modules/LcServiceLayer.vue b/src/components/LayerController/modules/LcServiceLayer.vue
index d855b87..9f7892f 100644
--- a/src/components/LayerController/modules/LcServiceLayer.vue
+++ b/src/components/LayerController/modules/LcServiceLayer.vue
@@ -8,9 +8,9 @@
       </div>
       <div class="wms-panel">
         <div v-for="item in serviceWmsLayerList" :key="item.code" class="layerbox">
-            <div><input type="checkbox" name="wmsLayer" :value="item.code" @change="swAllLayers"/>{{item.name}}</div>
+            <div><input type="checkbox" :name="'wmsLayer_'+item.code" :checked="item.inLegend" :value="item.code" @change="swAllLayers(item)"/>{{item.name}} <span @click="swFilter(item)" class="btn-filter">杩囨护</span></div>
             <div class="layerbox-item">
-                <div class="basemap-layer-item" v-for="itm in item.layers" :key="itm.code"><input type="checkbox" name="wmsSublayers" :value="item.code" @change="swAllLayers"/>{{itm.sname}}</div>
+                <div class="basemap-layer-item" v-for="itm in item.layers" :key="itm.code"><input type="checkbox" :name="'wmsSublayers_'+item.code+'_'+itm.code" :checked="itm.checked" :value="itm.code" @change="swWmsLayer(itm)"/>{{itm.sname}}</div>
             </div>
         </div>
       </div>
@@ -35,16 +35,21 @@
     ...mapState({
       serviceLayerHelper: (state) => {
         return state.serviceLayerHelper;
-      },
+      }
     }),
   },
   mounted() {
     // console.log('03姝ラ锛�', this.helper)
   },
   methods: {
-    ...mapMutations([]),
-    swAllLayers(){
-
+    ...mapMutations(['setSelectedServiceLayer','toggleServiceLayerFilter']),
+    swAllLayers(item){
+        // eslint-disable-next-line no-debugger
+        item.inLegend = !item.inLegend
+        for(let i = 0, len = item.layers.length; i < len; ++i){
+            item.layers[i].checked = item.inLegend
+        }
+        this.updateWms()
     },
     swTileLayer(){
         console.log('璇ILE鏂规硶鏈疄鐜帮紒')
@@ -52,8 +57,13 @@
     swWmtsLayer(){
         console.log('璇MTS鏂规硶鏈疄鐜帮紒')
     },
-    swWmsLayer(){
-        
+    swWmsLayer(itm){
+        itm.checked = !itm.checked
+        this.updateWms()
+    },
+    swFilter(item){
+        this.$store.commit('setSelectedServiceLayer', item.code)
+        this.$store.commit('toggleServiceLayerFilter')
     },
     updateServiceLayerList(){
         // eslint-disable-next-line no-debugger
@@ -79,6 +89,9 @@
                 this.serviceWmsLayerList.push(wmsCfg[i].config)
             }
         }
+    },
+    updateWms(){
+
     }
   },
   watch: {
@@ -97,6 +110,9 @@
   justify-content: center;
   align-items: center;
 
+    .btn-filter{
+        cursor: pointer;
+    }
     .wms-panel{
         display:flex;
         flex-flow: column;
@@ -107,7 +123,9 @@
 
             .layerbox-item{
                 display:flex;
-                flex-flow: row;
+                flex-flow: row wrap;
+                margin-left: 15px;
+                margin-top: 5px;
                 .basemap-layer-item{
                     width: 50%;
                 }

--
Gitblit v1.8.0