From ecf3ad202a851caa39660ddfaa16e1bf16565b2e Mon Sep 17 00:00:00 2001
From: surprise <15810472099@163.com>
Date: 星期一, 30 十月 2023 13:51:38 +0800
Subject: [PATCH] 图层管理修改

---
 src/views/layer/layerManage.vue |   94 ++++++++++++++++++++++++----------------------
 1 files changed, 49 insertions(+), 45 deletions(-)

diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue
index e8cef03..651d215 100644
--- a/src/views/layer/layerManage.vue
+++ b/src/views/layer/layerManage.vue
@@ -190,37 +190,29 @@
     // for (var i in keys) {
     //   checkedKeys.push(keys[i]);
     // }
-
+    var keys = estreeRef.value.getCheckedKeys();
     var val = treeData.value[0].children;
     for (var i = 0; i < val.length; i++) {
       if (val[i].id == data.id) {
         val.splice(i, 1);
       }
     }
-    var keys = estreeRef.value.getCheckedKeys();
-    if (val.length <= 0 && keys.indexOf(data.id) > -1) {
-      keys.splice(keys.indexOf(data.id), 1);
-      estreeRef.value.setCheckedKeys(keys, true);
+
+    var std = [];
+    for (var i in keys) {
+      var layer_res = estreeRef.value.getNode(checkedKeys[i]).data;
+      if(layer_res.shpType && layer_res.shpType == 'temporaryLayer'){
+        std.push(checkedKeys[i]);
+      }else if(layer_res.isLayer == 1){
+        std.push(checkedKeys[i]);
+      }
     }
-
-    // nextTick(() => {
-    // var str = JSON.parse(std)
-
-    // var layerIds = [];
-    // if (str.indexOf(data.id) > -1) {
-    //   str.splice(str.indexOf(data.id), 1);
-    // }
-    // if (str.indexOf(str.value) > -1) {
-    //   str.splice(str.indexOf(str.value), 1);
-    // }
-    // for (var i in str) {
-    //   var val = estreeRef.value.getNode(str[i]).data;
-    //   if (val.isLayer == 1) {
-    //     layerIds.push(str[i]);
-    //   }
-    // }
-    // estreeRef.value.setCheckedKeys(layerIds, true);
-    // });
+    estreeRef.value.setCheckedKeys([], true);
+    console.log(data.id);
+    nextTick(() => {
+      console.log(std);
+      estreeRef.value.setCheckedKeys(std, true);
+    });
   } else if (res == 3) {
     let son = estreeRef.value.getCheckedKeys();
     if (son.indexOf(data.id) < 0) {
@@ -234,8 +226,11 @@
   layerAttributeIsshow.value = false;
   layerDetailIsshow.value = false;
   // let isCheck = checked.checkedKeys.indexOf(data.id) > -1;
+
   let son = estreeRef.value.getCheckedNodes();
   store.commit("SET_CHECKLAYER", son);
+  temporaryTool.removeTemporaryLayerAll();
+  server.delLayerAll();
   var alphaGroup = [];
   var idGroup = [];
   for (var i in server.layerList) {
@@ -246,34 +241,35 @@
     }
   }
   server.delLayerAll();
-  temporaryTool.removeAll();
+
   var setGeoWms = [];
   var geoUrl = null;
   var layerTreeDate = estreeRef.value.getCheckedNodes().reverse();
   for (var i in layerTreeDate) {
     var layerArr = layerTreeDate[i];
-
     if (layerArr.shpType && layerArr.shpType == "temporaryLayer") {
       temporaryTool.addTemporaryTool(layerArr);
     } else {
-      if (layerArr.category == 2 && layerArr.type == 3) {
-        if (layerArr.tab != "moon:geo_mappable_unit") {
-          var id = layerArr.id;
-          if (idGroup.indexOf(id) > -1) {
-            var alpha = alphaGroup[idGroup.indexOf(id)];
-            if (alpha == 1) {
+      if (layerArr.isLayer == 1) {
+        if (layerArr.category == 2 && layerArr.type == 3) {
+          if (layerArr.tab != "moon:geo_mappable_unit") {
+            var id = layerArr.id;
+            if (idGroup.indexOf(id) > -1) {
+              var alpha = alphaGroup[idGroup.indexOf(id)];
+              if (alpha == 1) {
+                setGeoWms.push(layerArr.tab);
+                geoUrl = layerArr.url;
+              } else {
+                server.setAddGeoWmsLayer(layerArr, alpha);
+              }
+            } else {
               setGeoWms.push(layerArr.tab);
               geoUrl = layerArr.url;
-            } else {
-              server.setAddGeoWmsLayer(layerArr, alpha);
             }
-          } else {
-            setGeoWms.push(layerArr.tab);
-            geoUrl = layerArr.url;
           }
+        } else {
+          server.addTreeData(layerArr);
         }
-      } else {
-        server.addTreeData(layerArr);
       }
     }
   }
@@ -441,10 +437,12 @@
 
 const setRestLayerData = () => {
   let son = estreeRef.value.getCheckedNodes().reverse();
+
   var setGeoWms = [];
   var geoUrl = null;
   for (var i in son) {
     var layerArr = son[i];
+    console.log(layerArr.isLayer);
     layerArr.checked = true;
     if (layerArr.category == 2 && layerArr.type == 3) {
       if (layerArr.tab != "moon:geo_mappable_unit") {
@@ -554,20 +552,26 @@
     name: res.cnName,
     wkt: JSON.stringify(res),
   };
+  var checkedKeys = estreeRef.value.getCheckedKeys();
   const data = await mark_insert(obj);
   if (data.code != 200 || !data.result) return;
   store.state.temporaryLayer = null;
   res.sid = data.result;
   treeData.value[0].children.push(res);
-  var id = res.id;
+ 
 
   nextTick(() => {
-    var checkedKeys = estreeRef.value.getCheckedKeys();
-    if (checkedKeys.indexOf(temporary.value) > -1) {
-      checkedKeys.splice(checkedKeys.indexOf(temporary.value), 1);
+    var std = [res.id];
+    for (var i in checkedKeys) {
+      var layer_res = estreeRef.value.getNode(checkedKeys[i]).data;
+      if(layer_res.shpType && layer_res.shpType == 'temporaryLayer'){
+        std.push(checkedKeys[i]);
+      }else if(layer_res.isLayer == 1){
+        std.push(checkedKeys[i]);
+      }
     }
-    checkedKeys.push(id);
-    estreeRef.value.setCheckedKeys(checkedKeys, true);
+    estreeRef.value.setCheckedKeys([], true);
+    estreeRef.value.setCheckedKeys(std, true);
     temporaryTool.addTemporaryTool(res);
   });
 };

--
Gitblit v1.9.3