From 724b2a91b595b3f6ac07866986d6645d343b4b1d Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期三, 31 五月 2023 16:07:16 +0800 Subject: [PATCH] 修改图层管理逻辑(选中项目后去除其它项目图层,去除项目时恢复原始图层信息) --- src/views/Tools/LayerTree.vue | 32 ++++++++++++++++++++++++++++++++ 1 files changed, 32 insertions(+), 0 deletions(-) diff --git a/src/views/Tools/LayerTree.vue b/src/views/Tools/LayerTree.vue index 1c74736..0cfa6b4 100644 --- a/src/views/Tools/LayerTree.vue +++ b/src/views/Tools/LayerTree.vue @@ -122,6 +122,7 @@ "m_sitepoint", ], treeData: [], // 鏍戞暟鎹� + sourceData: [], // 婧愭暟鎹� defaultProps: { // 榛樿灞炴�у�� children: "children", label: "cnName", @@ -172,6 +173,7 @@ }); // 瀛樺偍閫変腑鍥惧眰 this.treeData = this.setTreeData(layers); + this.sourceData = JSON.parse(JSON.stringify(this.treeData)); this.$refs.tree.setCheckedKeys(checkKey); sessionStorage.setItem("checkedLayers", JSON.stringify(checkedLayers)); }, @@ -677,6 +679,8 @@ checkedKeys.push(checkedLayers[i].id); } + this.treeData = this.getNewTreeData(code); + this.$store.state.treeData = this.treeData; this.$refs.tree.setCheckedKeys(checkedKeys); sessionStorage.setItem("checkedLayers", JSON.stringify(checkedLayers)); this.isBusy = false; @@ -717,6 +721,34 @@ layers.push(data); } }, + // 鑾峰彇鏂版爲鏁版嵁 + getNewTreeData (code) { + if (!code) return this.sourceData; + + let data = JSON.parse(JSON.stringify(this.sourceData)); + this.setSubTreeData(data, code); + + return data; + }, + // 璁剧疆鏍戞暟鎹瓙鑺傜偣 + setSubTreeData (data, code) { + let j = 0; + while (j < data.length) { + let d = data[j]; + if (d.type == 1 && d.isProject && d.enName != code) { + data.splice(j, 1); + continue; + } + + j++; + } + + for (let i = 0, c = data.length; i < c; i++) { + if (data[i].children && data[i].children.length) { + this.setSubTreeData(data[i].children, code); + } + } + }, // 娣诲姞WFS鍥惧眰 * addWFSLayers (res) { let url = -- Gitblit v1.9.3