From 77f9937b32f67f5b7d5476b0a1db19956702c0c8 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期二, 10 十月 2023 09:45:34 +0800
Subject: [PATCH] 代码更新

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

diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue
index b2ce6d9..d1a12d9 100644
--- a/src/views/layer/layerManage.vue
+++ b/src/views/layer/layerManage.vue
@@ -27,6 +27,7 @@
         :highlight-current="false"
         :current-node-key="selectedNodeId"
         :data="treeData"
+        :default-expanded-keys="defaultExpanded"
         :expand-on-click-node="false"
         show-checkbox
         @check="handleCheckChange"
@@ -45,7 +46,7 @@
             </span> -->
             <span
               class="button"
-              v-if="data.isLayer == 1"
+              v-if="!data.isTemporaryLayer"
             >
               <el-dropdown trigger="click">
                 <span class="el-dropdown-link">
@@ -55,11 +56,27 @@
                 </span>
                 <template #dropdown>
                   <el-dropdown-menu>
-                    <el-dropdown-item @click.native="clickdropdown(1, data)">璇︾粏</el-dropdown-item>
                     <el-dropdown-item
-                      v-if="data.type == 3"
+                      v-if="data.type != 6 && data.isLayer ==1"
+                      @click.native="clickdropdown(1, data)"
+                    >璇︾粏</el-dropdown-item>
+                    <el-dropdown-item v-if="data.type == 6 && data.isLayer ==1">鍒犻櫎</el-dropdown-item>
+                    <el-dropdown-item
+                      v-if="data.type == 3  && data.isLayer ==1"
                       @click.native="clickdropdown(2, data)"
                     >灞炴��</el-dropdown-item>
+                    <el-dropdown-item
+                      v-if="data.isLayer ==0"
+                      @click.native="clickdropdown(3, data)"
+                    >閫忔槑搴�</el-dropdown-item>
+                    <el-dropdown-item
+                      v-if="data.shpType =='temporaryLayer'"
+                      @click.native="clickdTemporary(1, data)"
+                    >缂栬緫</el-dropdown-item>
+                    <el-dropdown-item
+                      v-if="data.shpType =='temporaryLayer'"
+                      @click.native="clickdTemporary(2, data)"
+                    >鍒犻櫎</el-dropdown-item>
                   </el-dropdown-menu>
                 </template>
               </el-dropdown>
@@ -106,6 +123,7 @@
 import { perms_selectLayers } from "@/api/api";
 import server from "@/assets/js/Map/server";
 import { ElMessage } from "element-plus";
+import temporaryTool from "@/assets/js/Map/temporaryTools";
 const store = useStore(); // 璇ユ柟娉曠敤浜庤繑鍥瀞tore 瀹炰緥
 const stretchValue = ref("");
 const emits = defineEmits(["setCloseLayer"]);
@@ -115,7 +133,7 @@
 var treeData = ref([]);
 var layerListData = ref([]);
 let menuOption = reactive([]);
-
+const defaultExpanded = ref([]);
 const layerSetIsshow = ref(false);
 const layerAttributeIsshow = ref(false);
 const layerDetailIsshow = ref(false);
@@ -141,13 +159,45 @@
   store.state.setLayerManager = false;
   emits("setCloseLayer", false);
 };
+const clickdTemporary = (res, data) => {
+  if (res == 1) {
+    if (store.state.editTemporaryId) {
+      var id = store.state.editTemporaryId;
+      var edit_id = sgworld.Creator.SimpleGraphic.SimpleGraphicObj.indexOf(id);
+      if (edit_id > -1) {
+        sgworld.Creator.SimpleGraphic.SimpleGraphicObj.splice(edit_id, 1);
+        store.state.editTemporaryId = null;
+      }
+    }
+    store.state.editTemporaryId = data.id;
+    sgworld.Creator.SimpleGraphic.SimpleGraphicObj.push(data.id);
+    sgworld.Creator.SimpleGraphic.edit(true, { editProp: false });
+  } else if (res == 2) {
+    temporaryTool.removeTemporaryLayer(data);
+
+    var checkedKeys = estreeRef.value.getCheckedKeys();
+    if (checkedKeys.indexOf(data.id) > -1) {
+      var index_id = checkedKeys.indexOf(data.id);
+      var std = checkedKeys.slice(index_id, 1);
+
+      estreeRef.value.setCheckedKeys(std, true);
+    }
+    var val = treeData.value[0].children;
+
+    for (var i = 0; i < val.length; i++) {
+      if (val[i].id == data.id) {
+        val.splice(i, 1);
+        treeData.value = [...treeData.value];
+      }
+    }
+  }
+};
 //閫夋嫨鍥惧眰
 const handleCheckChange = (data, checked) => {
   layerAttributeIsshow.value = false;
   layerDetailIsshow.value = false;
 
   let isCheck = checked.checkedKeys.indexOf(data.id) > -1;
-  // this.setVisiable(data, isCheck);
 
   let son = estreeRef.value.getCheckedNodes().reverse();
   server.delLayerAll();
@@ -212,6 +262,7 @@
   if (res == 2) {
     layerAttributeIsshow.value = true;
     store.state.tab = e;
+  } else if (res == 3) {
   } else {
     var val = estreeRef.value!.getCheckedKeys(false);
     if (val.indexOf(e.id) > -1) {
@@ -300,6 +351,18 @@
     treeData.value = setTreeData(dt.result).sort(function (a, b) {
       return a.orderNum - b.orderNum;
     });
+
+    treeData.value.unshift({
+      cnName: "涓存椂鍥惧眰",
+      level: 1,
+      pid: 0,
+      isLayer: 0,
+      type: 6,
+      id: new Date().getTime(),
+      isTemporaryLayer: true,
+      children: [],
+    });
+
     var std = [];
     var terrainId = null;
     var adLayer = [];
@@ -366,7 +429,40 @@
     return father.pid == 0; // 杩斿洖涓�绾ц彍鍗�
   });
 }
+const addTemporaryLayer = (res) => {
+  store.state.temporaryLayer = null;
+  treeData.value[0].children.push(res);
+  var id = res.id;
+  nextTick(() => {
+    var checkedKeys = estreeRef.value.getCheckedKeys();
+    checkedKeys.push(id);
+    estreeRef.value.setCheckedKeys(checkedKeys, true);
+    temporaryTool.addTemporaryTool(res);
+  });
+};
+const editTemporaryLayerName = (res) => {
+  if (!store.state.editTemporaryId) return;
+  var id = store.state.editTemporaryId;
+  var val = treeData.value[0].children;
 
+  for (var i = 0; i < val.length; i++) {
+    if (val[i].id == id) {
+      val[i].cnName = res;
+      treeData.value = [...treeData.value];
+    }
+  }
+  defaultExpanded.value = [treeData.value[0].id];
+};
+const editTemporaryBackById = (res) => {
+  var obj = temporaryTool.getEntityObj(res);
+  var val = treeData.value[0].children;
+  for (var i = 0; i < val.length; i++) {
+    if (val[i].id == res) {
+      val[i] = obj;
+      treeData.value = [...treeData.value];
+    }
+  }
+};
 watch(
   () => store.state.restLayer,
   (nVal, oVal) => {
@@ -376,6 +472,33 @@
   },
   { deep: true }
 );
+watch(
+  () => store.state.temporaryLayer,
+  (nVal, oVal) => {
+    if (nVal) {
+      addTemporaryLayer(nVal);
+    }
+  },
+  { deep: true }
+);
+watch(
+  () => store.state.editTemporarName,
+  (nVal, oVal) => {
+    if (nVal) {
+      editTemporaryLayerName(nVal);
+    }
+  },
+  { deep: true }
+);
+watch(
+  () => store.state.editTemporaryback,
+  (nVal, oVal) => {
+    if (nVal) {
+      editTemporaryBackById(nVal);
+    }
+  },
+  { deep: true }
+);
 
 onMounted(() => {
   window.setLayer = getLayer;

--
Gitblit v1.9.3