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