From 4867ac0db2e48fac8e595ad78836cb2e92e3ca79 Mon Sep 17 00:00:00 2001
From: surprise <15810472099@163.com>
Date: 星期三, 18 十月 2023 15:22:13 +0800
Subject: [PATCH] 临时图层管理,在线制图

---
 src/views/layer/layerManage.vue |  143 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 116 insertions(+), 27 deletions(-)

diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue
index b5be958..7d5b0c9 100644
--- a/src/views/layer/layerManage.vue
+++ b/src/views/layer/layerManage.vue
@@ -74,10 +74,11 @@
 import attributeList from "./attributeList";
 import layerDetail from "./layerDetail";
 import { useStore } from "vuex"; // 寮曞叆useStore 鏂规硶
-import { perms_selectLayers } from "@/api/api";
+import { perms_selectLayers, mark_selectByPageAndCount, mark_insert, mark_deletes, mark_update } from "@/api/api";
 import server from "@/assets/js/Map/server";
 import { ElMessage } from "element-plus";
 import temporaryTool from "@/assets/js/Map/temporaryTools";
+import json from "@/assets/js/colorValue";
 const store = useStore(); // 璇ユ柟娉曠敤浜庤繑鍥瀞tore 瀹炰緥
 const stretchValue = ref("");
 const emits = defineEmits(["setCloseLayer"]);
@@ -114,7 +115,7 @@
   emits("setCloseLayer", false);
 };
 const temporary = ref(new Date().getTime());
-const clickdTemporary = (res, data) => {
+const clickdTemporary = async (res, data) => {
   if (res == 1) {
     if (store.state.editTemporaryId) {
       var id = store.state.editTemporaryId;
@@ -128,6 +129,10 @@
     sgworld.Creator.SimpleGraphic.SimpleGraphicObj.push(data.id);
     sgworld.Creator.SimpleGraphic.edit(true, { editProp: false });
   } else if (res == 2) {
+    var layerId = []
+    layerId.push(data.sid)
+    const data1 = await mark_deletes({ ids: layerId.toString() })
+    if (data1.code != 200) return
     temporaryTool.removeTemporaryLayer(data);
     var keys = estreeRef.value.getCheckedKeys();
     const checkedKeys = [];
@@ -153,32 +158,84 @@
 const handleCheckChange = (data, checked) => {
   layerAttributeIsshow.value = false;
   layerDetailIsshow.value = false;
-
   let isCheck = checked.checkedKeys.indexOf(data.id) > -1;
   if (isCheck) {
     let son = estreeRef.value.getCheckedNodes().reverse();
-    var setGeoWms = [];
-    var url = null;
     for (var i in son) {
       var layerArr = son[i];
       layerArr.checked = true;
-      if (layerArr.category == 2 && layerArr.type == 3) {
-
-        if (layerArr.tab != "moon:geo_mappable_unit") {
-
-          server.addTreeData(layerArr)
-        }
+      if (layerArr.shpType && layerArr.shpType == 'temporaryLayer') {//涓存椂鍥惧眰娣诲姞
+        temporaryTool.addTemporaryTool(layerArr);
       } else {
         server.addTreeData(layerArr);
       }
     }
-
-    store.commit("SET_CHECKLAYER", son);
   } else {
 
-    server.delLayer(data.id)
+    if (data.isLayer == 0) {
+      var layers = data.children;
+      for (var i in layers) {
+        if (layers[i].shpType && layers[i].shpType == 'temporaryLayer') {//涓存椂鍥惧眰娣诲姞
+          temporaryTool.removeTemporaryLayer(layers[i]);
+        } else {
+          server.delLayer(layers[i].id)
+        }
+      }
+    } else {
+      if (data.shpType && data.shpType == 'temporaryLayer') {//涓存椂鍥惧眰娣诲姞
+        temporaryTool.removeTemporaryLayer(data);
+      } else {
+        server.delLayer(data.id)
+      }
+    }
+
   }
 
+
+
+
+  //鍒ゆ柇鏄惁涓虹埗绾�
+  // if (data.isLayer == 0) {//涓虹埗绾�
+
+  //   let son = estreeRef.value.getCheckedNodes().reverse();
+  //   for(var i in )
+
+
+
+
+  // } else {//涓哄瓙绾�
+
+  // }
+
+
+  //
+  // if (data.shpType && data.shpType == 'temporaryLayer') {
+  //   if (isCheck) {
+  //     temporaryTool.addTemporaryTool(data);
+  //   } else if(!isCheck) {
+  //     temporaryTool.removeTemporaryLayer(data); 
+  //   }
+  // } else {
+  //   if (isCheck) {
+  //     let son = estreeRef.value.getCheckedNodes().reverse();
+  //     for (var i in son) {
+  //       var layerArr = son[i];
+  //       layerArr.checked = true;
+  //       if (layerArr.category == 2 && layerArr.type == 3) {
+
+  //         if (layerArr.tab != "moon:geo_mappable_unit") {
+
+  //           server.addTreeData(layerArr)
+  //         }
+  //       } else {
+  //         server.addTreeData(layerArr);
+  //       }
+  //     }
+  //     store.commit("SET_CHECKLAYER", son);
+  //   } else {
+  //     
+  //   }
+  // }
 };
 const setVisiable = (treeNode, checked) => {
   if (checked !== undefined) {
@@ -224,10 +281,6 @@
       if (layerId.length <= 0) {
         return ElMessage.error("璇峰厛鍕鹃�夊浘灞�");
       }
-
-      // layerDetailIsshow.value = true;
-      // store.state.tab = e;
-
     } else {
       var val = estreeRef.value!.getCheckedKeys(false);
       if (val.indexOf(e.id) > -1) {
@@ -305,10 +358,6 @@
 };
 const setRestLayerData = () => {
   let son = estreeRef.value.getCheckedNodes().reverse();
-  // server.delLayerAll();
-
-  var setGeoWms = [];
-  var url = null;
   for (var i in son) {
     var layerArr = son[i];
     layerArr.checked = true;
@@ -335,7 +384,19 @@
     treeData.value = setTreeData(dt.result).sort(function (a, b) {
       return a.orderNum - b.orderNum;
     });
-
+    const comperLayer = await mark_selectByPageAndCount({
+      pageIndex: 1,
+      pageSize: 100000,
+      name: null,
+    })
+    var children = [];
+    if (comperLayer.code == 200 && comperLayer.result) {
+      for (var i in comperLayer.result) {
+        var slayer = JSON.parse(comperLayer.result[i].wkt);
+        slayer.sid = comperLayer.result[i].id;
+        children.push(slayer)
+      }
+    }
     treeData.value.unshift({
       cnName: "涓存椂鍥惧眰",
       level: 1,
@@ -344,7 +405,7 @@
       type: 6,
       id: temporary.value,
       isTemporaryLayer: true,
-      children: [],
+      children: children,
     });
 
     var std = [];
@@ -414,8 +475,16 @@
     return father.pid == 0; // 杩斿洖涓�绾ц彍鍗�
   });
 }
-const addTemporaryLayer = (res) => {
+const addTemporaryLayer = async (res) => {
+  var obj = {
+    id: res.id,
+    name: res.cnName,
+    wkt: JSON.stringify(res)
+  }
+  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;
 
@@ -437,7 +506,7 @@
   for (var i = 0; i < val.length; i++) {
     if (val[i].id == id) {
       val[i].cnName = res;
-      treeData.value = [...treeData.value];
+      setEditLayerChange(val[i])
     }
   }
   defaultExpanded.value = [treeData.value[0].id];
@@ -445,13 +514,33 @@
 const editTemporaryBackById = (res) => {
   var obj = temporaryTool.getEntityObj(res);
   var val = treeData.value[0].children;
+  var checkedKeys = estreeRef.value.getCheckedKeys();
+  if (checkedKeys.indexOf(temporary.value) > -1) {
+    checkedKeys.splice(checkedKeys.indexOf(temporary.value), 1)
+  }
   for (var i = 0; i < val.length; i++) {
     if (val[i].id == res) {
+      obj.sid = val[i].sid;
       val[i] = obj;
-      treeData.value = [...treeData.value];
+      setEditLayerChange(obj)
     }
   }
+  nextTick(() => {
+
+
+    estreeRef.value.setCheckedKeys(checkedKeys, true);
+
+  });
 };
+const setEditLayerChange = async (res) => {
+  var obj = {
+    id: res.sid,
+    name: res.cnName,
+    wkt: JSON.stringify(res)
+  }
+  const data = await mark_update(obj)
+  if (data.code != 200) return
+}
 watch(
   () => store.state.restLayer,
   (nVal, oVal) => {

--
Gitblit v1.9.3