From c55220698eef71fabc462dcf84858f95cf830a9d Mon Sep 17 00:00:00 2001
From: WX <1377869194@qq.com>
Date: 星期四, 20 七月 2023 15:16:55 +0800
Subject: [PATCH] 1

---
 src/views/layer/layerManage.vue |  109 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 104 insertions(+), 5 deletions(-)

diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue
index 9bef0eb..b33a066 100644
--- a/src/views/layer/layerManage.vue
+++ b/src/views/layer/layerManage.vue
@@ -90,6 +90,7 @@
 import layerDetail from "./layerDetail";
 import { useStore } from "vuex"; // 寮曞叆useStore 鏂规硶
 import { layer_selectAll } from "@/api/api";
+import server from "@/assets/js/Map/server";
 const store = useStore(); // 璇ユ柟娉曠敤浜庤繑鍥瀞tore 瀹炰緥
 const stretchValue = ref("");
 
@@ -187,10 +188,105 @@
 };
 //閫夋嫨鍥惧眰
 const handleCheckChange = (data, checked) => {
+  let isCheck = checked.checkedKeys.indexOf(data.id) > -1;
+  // this.setVisiable(data, isCheck);
+
   let son = estreeRef.value.getCheckedNodes();
 
   store.commit("SET_CHECKLAYER", son);
+  setVisiable(data, isCheck);
+  let layerArr = [];
+  son.forEach((e) => {
+    if (e.type == 2) {
+      layerArr.push(e);
+    }
+  });
+  // server.addLayer(layerArr, isCheck);
 };
+const setVisiable = (treeNode, checked) => {
+  if (checked !== undefined) {
+    treeNode.checked = checked;
+  } else {
+    treeNode.checked = !treeNode.checked;
+  }
+
+  if (treeNode.children) {
+    treeNode.children.forEach((item) => {
+      setVisiable(item, treeNode.checked);
+    });
+    return;
+  } else if (treeNode._children) {
+    if (treeNode.thisView === "ewzj") {
+      treeNode._children[0].checked = treeNode.checked;
+      if (treeNode._children[0].children) {
+        treeNode._children[0].children.forEach((item) => {
+          item.checked = treeNode.checked;
+          server.addTreeData(item);
+        });
+      } else {
+        server.addTreeData(treeNode._children[0]);
+      }
+    } else if (treeNode.thisView === "swzj") {
+      for (let i = 1; i < treeNode._children.length; i++) {
+        treeNode._children[i].checked = treeNode.checked;
+      }
+      treeNode._children.forEach((item, index) => {
+        index !== 0 && server.addTreeData(item);
+      });
+    } else if (!treeNode.thisView) {
+      treeNode._children.forEach((item, index) => {
+        item.checked = treeNode.checked;
+        if (item.children) {
+          item.children.forEach((_item) => {
+            _item.checked = item.checked;
+            server.addTreeData(_item);
+          });
+        } else {
+          server.addTreeData(item);
+        }
+      });
+    }
+    return;
+  }
+
+  if (!treeNode.isAdd) {
+    server.addTreeData(treeNode);
+    return;
+  }
+
+  // let data = _getTreeData(treeNode.id);
+  // if (data) {
+  //   data.item &&
+  //     data.item.setVisibility &&
+  //     data.item.setVisibility(treeNode.checked);
+  //   data.item && data.item.setVisible && data.item.setVisible(treeNode.checked);
+  //   data.item &&
+  //     data.item.show !== undefined &&
+  //     (data.item.show = treeNode.checked);
+  //   if (data.datatype === "particle") {
+  //     data.item.forEach((item) => {
+  //       item.show = treeNode.checked;
+  //     });
+  //   }
+  // } else {
+  //   if (treeNode.id && treeNode.id.indexOf && treeNode.id.indexOf("---") > -1) {
+  //     var ids = id.split("---");
+  //     ids.forEach((item) => {
+  //       sgworld.ProjectTree.setVisibility(item, treeNode.checked);
+  //     });
+  //   } else {
+  //     sgworld.ProjectTree.setVisibility(treeNode.id, treeNode.checked);
+
+  //     var dd = Viewer.dataSources._dataSources.filter((item) => {
+  //       return item.name == treeNode.id;
+  //     });
+  //     if (dd && dd.length > 0) {
+  //       dd[0].show = treeNode.checked;
+  //     }
+  //   }
+  // }
+};
+
 const clickdropdown = (res, e) => {
   layerAttributeIsshow.value = false;
   layerDetailIsshow.value = false;
@@ -210,7 +306,7 @@
 //缂栬緫鍥惧眰鏍�
 const addlayer = (res) => {
   menuOption.push(res);
-  treeData.value = handleTree(menuOption, "id", "pid", "children");
+  // treeData.value = handleTree(menuOption, "id", "pid", "children");
 };
 //鍒犻櫎鍥惧眰鏍�
 const delLayer = (res) => {
@@ -224,10 +320,13 @@
 
 const getLayer = async () => {
   const dt = await layer_selectAll();
-  treeData.value = setTreeData(dt.result);
-  treeData.value = JSON.parse(JSON.stringify(treeData.value));
+  if (dt.code == 200) {
+    treeData.value = setTreeData(dt.result);
+  }
 
-  console.log(treeData.value);
+  // treeData.value = JSON.parse(JSON.stringify(treeData.value));
+
+  // console.log(treeData.value);
 };
 
 //鏋勯�犳爲
@@ -294,7 +393,7 @@
     }
   }
   .layerContent {
-    height: 635px;
+    height: 625px;
     padding: 0 8px;
     overflow: auto;
     overflow-y: auto;

--
Gitblit v1.9.3