From 9c803f20cc05395bac2d3386accfe230210c07dc Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期一, 19 十二月 2022 20:58:31 +0800 Subject: [PATCH] 1 --- src/views/Tools/LayerTree.vue | 114 ++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 92 insertions(+), 22 deletions(-) diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue index 4aeadb2..0c2d1a8 100644 --- a/src/views/Tools/LayerTree.vue +++ b/src/views/Tools/LayerTree.vue @@ -20,6 +20,8 @@ @node-drop="handleDrop" @node-contextmenu="rightClick" :filter-node-method="filterNode" + @check-change="handleCheckChange" + :default-checked-keys="handleTreeCheck" draggable :allow-drop="allowDrop" :allow-drag="allowDrag" @@ -106,32 +108,46 @@ appendNodetitle: '', maxexpandId: 4, rightClickMenuStyle: {}, + handleTreeCheck: [], dialogVisible: false, addFormServer: {}, + layerId: [ + 'm_pipeline', + 'th_strategic_channel', + 'bs_project', + 'm_sitepoint', + ], treeData: [ { id: 1, - label: '褰卞儚', + label: 'LF', isEdit: false, - children: [], - }, - { - id: 2, - label: '鍦板舰', - isEdit: false, - children: [], - }, - { - id: 3, - label: '妯″瀷', - isEdit: false, - children: [], - }, - { - id: 4, - label: '鐭㈤噺', - isEdit: false, - children: [], + children: [ + { + id: 11, + label: '绠¢亾涓績绾�', + resource: 'LF:m_pipeline', + isEdit: false, + }, + { + id: 12, + label: '鎴樼暐閫氶亾', + resource: 'LF:th_strategic_channel', + isEdit: false, + }, + { + id: 13, + label: '椤圭洰', + resource: 'LF:bs_project', + isEdit: false, + }, + { + id: 14, + label: '绔欏満', + resource: 'LF:m_sitepoint', + isEdit: false, + }, + ], }, ], defaultProps: { @@ -190,6 +206,15 @@ // 榧犳爣宸﹀嚮浜嬩欢 handleLeftclick(data, node) { this.foo(); + if (node.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) { + const img_layer = window.Viewer.imageryLayers._layers[i]; + } + } + } }, // 鍙栨秷榧犳爣鐩戝惉浜嬩欢 鑿滃崟鏍� foo() { @@ -223,7 +248,6 @@ this.addFormServer = {}; }, setAddServer() { - debugger; var data = this.addFormServer; data.id = Math.ceil(Math.random() * 100); this.$refs.tree.append(data, this.currentNode); @@ -270,13 +294,59 @@ handleDrop(draggingNode, dropNode, dropType, ev) { console.log('tree drop: ', dropNode.label, dropType); }, + 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); + } + } + } + }, }, watch: { filterText(val) { this.$refs.tree.filter(val); }, }, - mounted() {}, + 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; + for (var j = 0; j < val.length; j++) { + if (val_id == val[j].label) { + std.push(val[j].id); + } + } + } + this.$refs.tree.setCheckedKeys(std); + }, }; </script> <style scoped lang="less"> -- Gitblit v1.9.3