From ec3342e1b34dd02f33dae9bed2db16a14ae8096d Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期三, 21 十二月 2022 17:06:11 +0800 Subject: [PATCH] 1 --- src/views/Tools/LayerTree.vue | 92 +++++++++++++++++++++++++++++----------------- 1 files changed, 58 insertions(+), 34 deletions(-) diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue index 0c2d1a8..66c1c7c 100644 --- a/src/views/Tools/LayerTree.vue +++ b/src/views/Tools/LayerTree.vue @@ -94,6 +94,8 @@ </template> <script> +import ImageWMS from 'ol/source/ImageWMS'; +import Image from 'ol/layer/Image'; export default { name: 'tree', data() { @@ -158,14 +160,12 @@ }, methods: { NodeBlur(Node, data) { - console.log(Node, data); if (data.label.length === 0) { this.$message.error('鑿滃崟鍚嶄笉鍙负绌猴紒'); return false; } else { if (data.isEdit) { this.$set(data, 'isEdit', false); - console.log(data.isEdit); } this.$nextTick(() => { this.$refs['slotTreeInput' + data.id].$refs.input.focus(); @@ -297,36 +297,48 @@ handleCheckChange(data, checked, indeterminate) { if (data.children != null) return; var std = []; - if (checked == true) { - for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) { - var val_id = - window.Viewer.imageryLayers._layers[i].imageryProvider.name; - if (val_id == data.label) { - std.push(data.label); - } - } - if (std.length == 0) { - let layerWMS = new Cesium.WebMapServiceImageryProvider({ - url: geoServerURl, - layers: data.resource, - parameters: { - transparent: true, - format: 'image/png', - }, - }); - layerWMS.name = data.label; - window.Viewer.imageryLayers.addImageryProvider(layerWMS); - } - } else { - for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) { - var val_id = - window.Viewer.imageryLayers._layers[i].imageryProvider.name; - if (val_id == data.label) { - const img_layer = window.Viewer.imageryLayers._layers[i]; - window.Viewer.imageryLayers.remove(img_layer); - } + var layers_ol = window.map.getAllLayers(); + for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) { + var val_id = + window.Viewer.imageryLayers._layers[i].imageryProvider.name; + if (val_id == data.label) { + const img_layer = window.Viewer.imageryLayers._layers[i]; + img_layer.show = checked; } } + for (var i in layers_ol) { + var layerOl = layers_ol[i]; + if (layerOl.values_.name == data.label) { + layerOl.setVisible(checked); //鏄剧ず鍥惧眰 + } + } + }, + setAddLayers(res) { + let layerWMS = new Cesium.WebMapServiceImageryProvider({ + url: geoServerURl, + layers: res.resource, + parameters: { + transparent: true, + format: 'image/png', + }, + }); + layerWMS.name = res.label; + window.Viewer.imageryLayers.addImageryProvider(layerWMS); + + var layer2 = new Image({ + name: res.label, + source: new ImageWMS({ + crossOrigin: 'anonymous', + url: geoServerURl, + + params: { + FORMAT: 'image/png', + VERSION: '1.1.1', + LAYERS: res.resource, + }, + }), + }); + window.map.addLayer(layer2); }, }, watch: { @@ -337,14 +349,26 @@ mounted() { var std = []; var val = this.treeData[0].children; - for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) { - var val_id = window.Viewer.imageryLayers._layers[i].imageryProvider.name; + if (this.$store.state.showAllLayers == true) { for (var j = 0; j < val.length; j++) { - if (val_id == val[j].label) { - std.push(val[j].id); + std.push(val[j].id); + this.setAddLayers(val[j]); + } + + this.$store.state.showAllLayers = false; + } else { + for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) { + var val_id = window.Viewer.imageryLayers._layers[i]; + if (val_id.show == true) { + for (var j = 0; j < val.length; j++) { + if (val_id.imageryProvider.name == val[j].label) { + std.push(val[j].id); + } + } } } } + this.$refs.tree.setCheckedKeys(std); }, }; -- Gitblit v1.9.3