From 9885498796b8ba0a7b45bc04fb7bb7bf68206583 Mon Sep 17 00:00:00 2001
From: 徐旺旺 <11530253@qq.com>
Date: 星期五, 09 四月 2021 09:42:35 +0800
Subject: [PATCH] 图层全选
---
src/components/LayerController/modules/LcServiceLayerFilter.vue | 24 +++++++++---
src/components/LayerController/modules/LcServiceLayer.vue | 53 ++++++++------------------
2 files changed, 34 insertions(+), 43 deletions(-)
diff --git a/src/components/LayerController/modules/LcServiceLayer.vue b/src/components/LayerController/modules/LcServiceLayer.vue
index b404bc8..f6af058 100644
--- a/src/components/LayerController/modules/LcServiceLayer.vue
+++ b/src/components/LayerController/modules/LcServiceLayer.vue
@@ -16,7 +16,7 @@
:name="'wmsSublayers_'+item.code+'_'+itm.code"
:checked="itm.checked"
:value="itm.code"
- @change="swWmsLayer(itm)"/>{{ itm.name }}
+ @change="swAllLayers(itm)"/>{{ itm.name }}
<!-- 涓夌骇鍥惧眰閬嶅巻 -->
<div class="layerbox-item-3">
<div class="basemap-layer-item" v-for="layer in itm.layers" :key="layer.code">
@@ -24,7 +24,7 @@
:name="'wmsSublayers_'+item.code+'_'+layer.code"
:checked="layer.checked"
:value="layer.code"
- @change="swWmsLayer(layer)"/>
+ @change="swAllLayers(layer)"/>
<span :style="'color:'+layer.color">{{ layer.name }}</span>
</div>
</div>
@@ -38,9 +38,7 @@
</template>
<script>
-import WfsHelper from '../../helpers/WfsHelper'
import LcServiceLayerFilter from '@components/LayerController/modules/LcServiceLayerFilter'
-import AjaxUtils from '../../../utils/AjaxUtils'
export default {
name: 'LcServiceLayer',
@@ -51,52 +49,33 @@
}
},
mounted () {
- // console.log('03姝ラ锛�', this.helper)
- this.updateServiceLayerList()
},
methods: {
swAllLayers (item) {
// eslint-disable-next-line no-debugger
item.checked = !item.checked
- for (let i = 0, len = item.layers.length; i < len; ++i) {
- item.layers[i].checked = item.checked
+ this.toggleLayer(item)
+ this.swLayers(item.layers, item.checked)
+ },
+ swLayers (layers, checked) {
+ if (layers) {
+ for (let i = 0, len = layers.length; i < len; ++i) {
+ var layer = layers[i]
+ layer.checked = checked
+ this.toggleLayer(layer)
+ if (layer.layers) {
+ this.swLayers(layer.layers, checked)
+ }
+ }
}
- this.updateWms()
},
- loadWfs () {
- var wfsHelper = new WfsHelper()
- wfsHelper.addTypeName('绠$嚎鐐�')
- wfsHelper.addEquals('pipename', '鐮旂┒闄�01璺痀S000001')
-
- AjaxUtils.GetDataAsynByUrl(wfsHelper.getUrl(), {}, (res) => {
- console.log(res)
- })
- },
- swWmsLayer (itm) {
- itm.checked = !itm.checked
+ toggleLayer (itm) {
if (itm.checked) {
window.layerFactory.show(itm)
} else {
window.layerFactory.hide(itm)
}
// this.updateWms()
- },
- updateServiceLayerList () {
-
- },
- updateWms () {
- var mapConfig = this.mapConfig
- var wmsHelper = new WfsHelper()
- wmsHelper.initMapConfig(mapConfig)
- var wmsLayersMap = wmsHelper.getWmsLayersMap()
- for (var k in wmsLayersMap) {
- var layers = wmsLayersMap[k]
- var tileLayer = window.serviceLayerHelper.getTileLayer(k)
- if (tileLayer) {
- tileLayer.setParams({ layers: layers.join(',') }, false)
- tileLayer.setUrl(tileLayer.config.url, false)
- }
- }
}
}
}
diff --git a/src/components/LayerController/modules/LcServiceLayerFilter.vue b/src/components/LayerController/modules/LcServiceLayerFilter.vue
index 2e4d80d..9f36a5e 100644
--- a/src/components/LayerController/modules/LcServiceLayerFilter.vue
+++ b/src/components/LayerController/modules/LcServiceLayerFilter.vue
@@ -9,7 +9,7 @@
<div class="content">
<div v-for="filter in item.layers" :key="filter.code">
<input type="checkbox" :value="filter.code" :checked="filter.checked"
- @change="swSubFilter(item.url,filter)"><label
+ @change="swAllSubFilter(filter)"><label
:title="filter.name">{{filter.name}}</label>
</div>
</div>
@@ -20,7 +20,6 @@
</template>
<script>
-import { mapMutations } from 'vuex'
import { LayerSewersPoint } from '@src/conf/layers/LayerSewers'
export default {
@@ -43,12 +42,26 @@
}
},
methods: {
- ...mapMutations([]),
swAllSubFilter (item) {
+ // eslint-disable-next-line no-debugger
item.checked = !item.checked
- // window.serviceLayerHelper.loadLayers()
+ this.toggleLayer(item)
+ this.swLayers(item.layers, item.checked)
+ },
+ swLayers (layers, checked) {
+ if (layers) {
+ for (let i = 0, len = layers.length; i < len; ++i) {
+ var layer = layers[i]
+ layer.checked = checked
+ this.toggleLayer(layer)
+ if (layer.layers) {
+ this.swLayers(layer.layers, checked)
+ }
+ }
+ }
},
// todo 杩橀渶瑕佷紭鍖栵紝鍦ㄦ湁澶氫釜闇�瑕佸瓙鍥惧眰鐙珛寮圭獥鎯呭喌涓嬫棤鏁�
+ // 鐩戝惉涓婄骇鍥惧眰瀛樺湪鐙珛寮圭獥鐨勯�変腑鎯呭喌
toggle (serviceLayers) {
if (serviceLayers) {
for (var i = 0; i < serviceLayers.length; i++) {
@@ -76,8 +89,7 @@
}
}
},
- swSubFilter (url, item) {
- item.checked = !item.checked
+ toggleLayer (item) {
if (item.checked) {
window.layerFactory.show(item)
} else {
--
Gitblit v1.8.0