From 69cc010e3c7f994f302426c6f3acdc15c2b49cbb Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Fri, 31 Oct 2025 10:18:33 +0800
Subject: [PATCH] feat:新增/编辑文件夹

---
 src/views/layerManagement/components/leftList.vue |   95 +++++++++++++++++++++++++++++------------------
 1 files changed, 59 insertions(+), 36 deletions(-)

diff --git a/src/views/layerManagement/components/leftList.vue b/src/views/layerManagement/components/leftList.vue
index 0ec7599..9cb3b10 100644
--- a/src/views/layerManagement/components/leftList.vue
+++ b/src/views/layerManagement/components/leftList.vue
@@ -12,7 +12,9 @@
       </div>
     </div>
     <div class="btnGroups">
-      <el-button class="ztzf-button" @click="addFence">{{props.activeName === '电子围栏' ? '新增围栏' : '新增禁飞区'}}</el-button>
+      <el-button class="ztzf-button" @click="addFence">{{
+        props.activeName === '电子围栏' ? '新增围栏' : '新增禁飞区'
+      }}</el-button>
       <el-button class="ztzf-button" @click="addFolder">新增文件夹</el-button>
       <el-button class="ztzf-button" @click="selectAll">全选</el-button>
     </div>
@@ -38,7 +40,8 @@
             <span>{{ node.label }}</span>
             <!-- 操作按钮组 -->
             <div class="tree-node-actions">
-              <el-button v-if="node.level !== 1"
+              <el-button
+               
                 icon="el-icon-location"
                 type="text"
                 @click="handleLocation(node)"
@@ -54,10 +57,11 @@
 </template>
 
 <script setup>
-import { treeDataApi ,deleteFenceApi} from '@/api/layer/index';
+import { ElMessage } from 'element-plus';
+import { treeDataApi, deleteFenceApi } from '@/api/layer/index';
 import { inject, onMounted } from 'vue';
-const emit = defineEmits(['update:coverData', 'update:deitData','newFencesMethods']);
-import EventBus from '@/utils/eventBus'
+const emit = defineEmits(['update:coverData', 'update:deitData', 'newFencesMethods']);
+import EventBus from '@/utils/eventBus';
 const coverData = ref();
 const layerParams = inject('layerParams');
 const checkedKeys = ref([]); // 存储勾选的节点key
@@ -81,7 +85,7 @@
   try {
     const res = await treeDataApi();
     treeAllData.value = res.data.data;
-console.log('接口数据',treeAllData.value);
+    console.log('接口数据', treeAllData.value);
 
     setupWatch();
   } catch (error) {
@@ -99,9 +103,9 @@
       if (treeData.value && treeData.value.length > 0) {
         const folderNode = treeData.value[0];
         // 赋值给 layerParams
-        layerParams.value.total_count = folderNode.total_count ?folderNode.total_count :0;
-        layerParams.value.total_area = folderNode.total_area ? folderNode.total_area :0;     
-      } 
+        layerParams.value.total_count = folderNode.total_count ? folderNode.total_count : 0;
+        layerParams.value.total_area = folderNode.total_area ? folderNode.total_area : 0;
+      }
     },
     { immediate: true }
   );
@@ -144,51 +148,72 @@
 
 // 编辑按钮事件
 const handleEdit = node => {
-  checkedKeys.value = [];
-  checkedNodes.value = [];
-  coverData.value = [];
+  if (node.data.level == 2) {
+    layerParams.value.editFolder = true;
+    layerParams.value.addAnEditingFolder = 2;
+    if (props.activeName === '电子围栏') {
+      layerParams.value.fileType = 1;
+    } else if (props.activeName === '自定义禁飞区') {
+      layerParams.value.fileType = 2;
+    }
+    emit('update:editFolder', node.data);
+  } else if (node.data.level === 3) {
+    checkedKeys.value = [];
+    checkedNodes.value = [];
+    coverData.value = [];
     layerParams.value.editNest = true;
-    layerParams.value.decideWhetherToAddOrEdit = 2
-      if (props.activeName === '电子围栏') {
-    layerParams.value.fenceType = 1; // 电子围栏类型标识
-  } else if (props.activeName === '自定义禁飞区') {
-    layerParams.value.fenceType = 2; // 自定义禁飞区类型标识
+    layerParams.value.decideWhetherToAddOrEdit = 2;
+    if (props.activeName === '电子围栏') {
+      layerParams.value.fenceType = 1; // 电子围栏类型标识
+    } else if (props.activeName === '自定义禁飞区') {
+      layerParams.value.fenceType = 2; // 自定义禁飞区类型标识
+    }
+    emit('update:deitData', node.data);
   }
-  emit('update:deitData', node.data);
 };
 
 // 删除按钮事件
 const handleDelete = node => {
-let id = node.data.id
-  deleteFenceApi(id).then(res=>{
-    console.log('删除成功',res);
-  })
-    gettreeDataApi();
+  let id = node.data.id;
+  deleteFenceApi(id).then(res => {
+   if (res.status === 200) {
+        ElMessage({
+          message: '删除成功',
+          type: 'success',
+        });
+      }
+  });
+  gettreeDataApi();
 };
 // 新增围栏
 const addFence = () => {
   layerParams.value.addNest = true;
-   layerParams.value.decideWhetherToAddOrEdit = 1
-   if (props.activeName === '电子围栏') {
+  layerParams.value.decideWhetherToAddOrEdit = 1;
+  if (props.activeName === '电子围栏') {
     layerParams.value.fenceType = 1; // 电子围栏类型标识
   } else if (props.activeName === '自定义禁飞区') {
     layerParams.value.fenceType = 2; // 自定义禁飞区类型标识
   }
-   emit('newFencesMethods'); 
+  emit('newFencesMethods');
 };
 // 新增文件夹
 const addFolder = () => {
-  layerParams.value.addFolder = true
-  layerParams.value.addAnEditingFolder =1
+  layerParams.value.addFolder = true;
+  layerParams.value.addAnEditingFolder = 1;
+  if (props.activeName === '电子围栏') {
+    layerParams.value.fileType = 1;
+  } else if (props.activeName === '自定义禁飞区') {
+    layerParams.value.fileType = 2;
+  }
 };
 
 onMounted(() => {
   gettreeDataApi();
-  EventBus.on('gettreeDataApi', gettreeDataApi)
+  EventBus.on('gettreeDataApi', gettreeDataApi);
 });
-onBeforeUnmount(()=>{
-    EventBus.off('gettreeDataApi', gettreeDataApi)
-})
+onBeforeUnmount(() => {
+  EventBus.off('gettreeDataApi', gettreeDataApi);
+});
 </script>
 
 <style scoped lang="scss">
@@ -264,9 +289,8 @@
   //  }
   //}
 
-
-  :deep(){
-    .el-checkbox{
+  :deep() {
+    .el-checkbox {
       --el-checkbox-bg-color: transparent !important;
     }
   }
@@ -275,7 +299,6 @@
     justify-content: space-between;
     align-items: center;
     width: 100%;
-
   }
 
   .tree-node-actions {

--
Gitblit v1.9.3