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