From f299c76bccf93f4b1f5efcd01dd0563e0b6ed893 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Fri, 31 Oct 2025 11:01:51 +0800
Subject: [PATCH] feat:文件夹删除

---
 src/views/layerManagement/components/leftList.vue |   49 ++++++++++++++++++++++++++++++++++---------------
 src/views/layerManagement/index.vue               |    5 ++---
 2 files changed, 36 insertions(+), 18 deletions(-)

diff --git a/src/views/layerManagement/components/leftList.vue b/src/views/layerManagement/components/leftList.vue
index 9cb3b10..1800e30 100644
--- a/src/views/layerManagement/components/leftList.vue
+++ b/src/views/layerManagement/components/leftList.vue
@@ -27,6 +27,7 @@
         show-checkbox
         node-key="id"
         default-expand-all
+        :expand-on-click-node="false"
         @check="handleCheck"
         :props="{
           label: 'name',
@@ -41,7 +42,6 @@
             <!-- 操作按钮组 -->
             <div class="tree-node-actions">
               <el-button
-               
                 icon="el-icon-location"
                 type="text"
                 @click="handleLocation(node)"
@@ -58,7 +58,7 @@
 
 <script setup>
 import { ElMessage } from 'element-plus';
-import { treeDataApi, deleteFenceApi } from '@/api/layer/index';
+import { treeDataApi, deleteFenceApi,deleteFolderApi } from '@/api/layer/index';
 import { inject, onMounted } from 'vue';
 const emit = defineEmits(['update:coverData', 'update:deitData', 'newFencesMethods']);
 import EventBus from '@/utils/eventBus';
@@ -86,7 +86,6 @@
     const res = await treeDataApi();
     treeAllData.value = res.data.data;
     console.log('接口数据', treeAllData.value);
-
     setupWatch();
   } catch (error) {
     console.error('获取数据失败:', error);
@@ -99,7 +98,6 @@
     newVal => {
       const matchedCategory = treeAllData.value.find(item => item.name === newVal);
       treeData.value = matchedCategory.children;
-
       if (treeData.value && treeData.value.length > 0) {
         const folderNode = treeData.value[0];
         // 赋值给 layerParams
@@ -113,6 +111,8 @@
 const handleCheck = (checkedNodesData, checkedKeysData) => {
   const filteredNodes = checkedKeysData.checkedNodes.filter(node => node.level === 3);
   checkedNodes.value = checkedNodesData.checkedNodes;
+  console.log(' checkedKeysData.checkedNodes', checkedNodes.value);
+
   checkedKeys.value = filteredNodes.map(node => node.id);
   coverData.value = filteredNodes;
   emit('update:coverData', coverData.value);
@@ -142,10 +142,17 @@
   }
 };
 // 定位按钮事件
-const handleLocation = node => {
-  console.log('定位操作,节点:', node);
+const handleLocation = (node) => {
+  if (node.data.level === 2) {
+    const folderChildren = node.data.children || [];
+    const childrenIds = folderChildren.map(child => child.id);
+    treeRef.value.setCheckedKeys(childrenIds);
+    checkedKeys.value = childrenIds;
+    checkedNodes.value = folderChildren;
+    coverData.value = folderChildren;
+    emit('update:coverData', coverData.value);
+  }
 };
-
 // 编辑按钮事件
 const handleEdit = node => {
   if (node.data.level == 2) {
@@ -174,15 +181,27 @@
 
 // 删除按钮事件
 const handleDelete = node => {
-  let id = node.data.id;
-  deleteFenceApi(id).then(res => {
-   if (res.status === 200) {
-        ElMessage({
-          message: '删除成功',
-          type: 'success',
-        });
-      }
+let id = node.data.id;
+if(node.data.level === 2 ){
+deleteFolderApi(id).then(res => {
+    if (res.status === 200) {
+      ElMessage({
+        message: '删除成功',
+        type: 'success',
+      });
+    }
   });
+
+}else if(node.data.level === 3){
+deleteFenceApi(id).then(res => {
+    if (res.status === 200) {
+      ElMessage({
+        message: '删除成功',
+        type: 'success',
+      });
+    }
+  });
+}
   gettreeDataApi();
 };
 // 新增围栏
diff --git a/src/views/layerManagement/index.vue b/src/views/layerManagement/index.vue
index 6939b4e..c26f7af 100644
--- a/src/views/layerManagement/index.vue
+++ b/src/views/layerManagement/index.vue
@@ -15,6 +15,7 @@
             !layerParams.addNest &&
             !layerParams.editNest &&
             !layerParams.addFolder &&
+            !layerParams.editFolder &&
             activeType !== '2'
           "
           @update:coverData="handleCoverDataUpdate"
@@ -126,9 +127,9 @@
   viewer.entities.removeAll();
   layerParams.value.editDetailData = val;
   drawPolygonExample.editThePatch(true);
+    drawPolygonExample.drawTheArea(true);
   const positions = parseGeoDataToPositions(val.geo_data, val.altitude);
   if (positions.length < 3) return; // 少于3个点无法构成多边形
-  drawPolygonExample.drawTheArea(true);
   drawPolygonExample.initPolygon(viewer, positions, true);
 };
 // 编辑文件夹
@@ -251,8 +252,6 @@
 
 // 初始化绘制工具实例
 const drawPolygonExample = new DrawPolygon();
-
-// 地图初始化
 // 地图初始化
 const initMap = () => {
   publicCesiumInstance = new PublicCesium({

--
Gitblit v1.9.3