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/utils/request.js            |   11 +--
 /dev/null                       |    0 
 src/assets/js/Map/index.js      |    3 -
 src/assets/js/Map/server.js     |   47 ++++++++++++++-
 package.json                    |    2 
 src/views/layer/layerManage.vue |  109 ++++++++++++++++++++++++++++++++++-
 src/assets/js/Map/config.js     |    2 
 7 files changed, 154 insertions(+), 20 deletions(-)

diff --git a/MoonWeb.zip b/MoonWeb.zip
deleted file mode 100644
index f4ea574..0000000
--- a/MoonWeb.zip
+++ /dev/null
Binary files differ
diff --git a/package.json b/package.json
index 80a0639..58425f3 100644
--- a/package.json
+++ b/package.json
@@ -15,7 +15,7 @@
     "amfe-flexible": "^2.2.1",
     "axios": "^1.3.4",
     "default-passive-events": "^2.0.0",
-    "element-plus": "^2.3.8",
+    "element-plus": "^2.3.0",
     "js-base64": "^3.7.5",
     "jsencrypt": "^3.3.2",
     "mitt": "^3.0.1",
diff --git a/src/assets/js/Map/config.js b/src/assets/js/Map/config.js
index 4ca87e5..023b9fd 100644
--- a/src/assets/js/Map/config.js
+++ b/src/assets/js/Map/config.js
@@ -1,5 +1,5 @@
 //鏄惁涓虹敓浜х幆澧�
-const isWeb = true;
+const isWeb = false;
 //鏄惁涓虹敓浜х幆澧�
 const webUrl = isWeb ? "/web" : "";
 //閰嶇疆鏂囦欢鍦板潃
diff --git a/src/assets/js/Map/index.js b/src/assets/js/Map/index.js
index fb4f4a2..64563eb 100644
--- a/src/assets/js/Map/index.js
+++ b/src/assets/js/Map/index.js
@@ -48,7 +48,6 @@
       tilingScheme: new Cesium.GeographicTilingScheme({
         ellipsoid: Cesium.Ellipsoid.MOON,
       }),
-
     });
     window.Viewer.terrainProvider = terrain;
 
@@ -75,8 +74,6 @@
     // //娣诲姞榧犳爣宸﹀嚮浜嬩欢
     // this.addMouseLeftClickEvents();
     // this.addMouseMouseMoveEvents();
-
-
   },
   //榧犳爣宸﹂敭鐐瑰嚮浜嬩欢娣诲姞
   addMouseLeftClickEvents() {
diff --git a/src/assets/js/Map/server.js b/src/assets/js/Map/server.js
index b8dbf3d..42c13fd 100644
--- a/src/assets/js/Map/server.js
+++ b/src/assets/js/Map/server.js
@@ -1,4 +1,37 @@
 const server = {
+  addTreeData(treeNode, checked) {
+    console.log(treeNode, checked);
+    let _data = sgworld.ProjectTree.getObject(treeNode.id);
+    let pID = 0;
+    console.log(_data);
+    if (_data) {
+      sgworld.ProjectTree.setVisibility(treeNode.id, treeNode.checked);
+      return;
+    } else {
+      // _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;
+      //     });
+      //   }
+      //   return;
+      // }
+    }
+    switch (treeNode.sourceType) {
+      case "tms":
+        break;
+    }
+  },
   //娣诲姞geoserver鏈嶅姟wms鏈嶅姟
   AddGeoWmsLayer(url) {
     window.layerWMS = new SmartEarth.Cesium.WebMapServiceImageryProvider({
@@ -23,10 +56,16 @@
     //   url: url + "/{z}/{x}/{y}.png"
     // });
     // Viewer.imageryLayers.addImageryProvider(urlTemplateImageryProvider);
-    sgworld.Creator.createUrlTemplateImageryProvider('tms鏈嶅姟', {
-      url: Cesium.buildModuleUrl(url + "/{z}/{x}/{reverseY}.png"),
-    }, '0', undefined, true, "");
-
+    sgworld.Creator.createUrlTemplateImageryProvider(
+      "tms鏈嶅姟",
+      {
+        url: Cesium.buildModuleUrl(url + "/{z}/{x}/{reverseY}.png"),
+      },
+      "0",
+      undefined,
+      true,
+      ""
+    );
   },
   AddWmtesLayer(url) {
     var urlTemplateImageryProvider = earthCtrl.factory.createImageryLayer({
diff --git a/src/utils/request.js b/src/utils/request.js
index e121a36..ec62a60 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -7,10 +7,10 @@
  */
 import axios from "axios";
 import { ElMessage, ElLoading } from "element-plus";
-import { useRouter } from "vue-router";
+import router from "@/router/index";
 
 import { getToken } from "@/utils/auth";
-const router = useRouter();
+
 // create an axios instance
 const service = axios.create({
   baseURL: BASE_URL, // api鐨刡ase_url
@@ -47,10 +47,9 @@
     // 鎶ラ敊鎻愮ず
     if (response.data.code !== 200) {
       ElMessage.error(response.data.msg);
-    } else if (
-      response.data.code !== 200 &&
-      response.data.result == "鐢ㄦ埛鏈櫥褰�"
-    ) {
+    }
+    if (response.data.code !== 200 && response.data.result == "鐢ㄦ埛鏈櫥褰�") {
+      ElMessage.error("鐧诲綍杩囨湡锛岃閲嶆柊鐧诲綍");
       router.push({ path: "/login" });
     }
     return response.data;
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