From f825060d6fb16536bd735674784664479d8f6483 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Mon, 17 Nov 2025 18:51:38 +0800
Subject: [PATCH] feat:添加loading

---
 src/views/layerManagement/components/rightEdit.vue |   56 ++++++++++++++++++++--------
 src/views/layerManagement/components/leftList.vue  |    2 
 src/views/layerManagement/index.vue                |   10 ++++
 3 files changed, 50 insertions(+), 18 deletions(-)

diff --git a/src/views/layerManagement/components/leftList.vue b/src/views/layerManagement/components/leftList.vue
index 0ac6bb9..0b52fce 100644
--- a/src/views/layerManagement/components/leftList.vue
+++ b/src/views/layerManagement/components/leftList.vue
@@ -44,7 +44,7 @@
     <div
       class="tableListBox"
       v-loading="loading"
-      element-loading-background="rgba(0, 0, 0, 0.5)"
+      element-loading-background="rgba(0, 0, 0, 0.2)"
       element-loading-text="加载中..."
     >
       <el-tree
diff --git a/src/views/layerManagement/components/rightEdit.vue b/src/views/layerManagement/components/rightEdit.vue
index 9e9dee6..80b2413 100644
--- a/src/views/layerManagement/components/rightEdit.vue
+++ b/src/views/layerManagement/components/rightEdit.vue
@@ -1,5 +1,5 @@
 <template>
-  <div class="rightContainer">
+  <div class="rightContainer"  >
     <div class="contenttitle">{{ layerParams.fenceType === 1 ? '识别区' : '禁飞区' }}信息</div>
     <div class="centerBox">
       <div class="itemRow">
@@ -133,7 +133,7 @@
 import dayjs from 'dayjs';
 import { deitFenceApi, addFenceApi } from '@/api/layer/index';
 import EventBus from '@/utils/eventBus';
-const emit = defineEmits(['callParentMethod']);
+const emit = defineEmits(['callParentMethod','update:loading']);
 const layerParams = inject('layerParams');
 const options = ref([]);
 const timeValue = ref('');
@@ -150,6 +150,7 @@
   geo_data: '',
 
 });
+const loading = ref(false);
 const detailData = ref(null);
 const fenceArea = ref(0);
 detailData.value = layerParams.value.editDetailData;
@@ -237,6 +238,8 @@
   layerParams.value.editingIsProhibited = false;
 };
 const cancelHandel = () => {
+loading.value = false
+ emit('update:loading', false); 
   clearAllData();
   emit('callParentMethod');
   EventBus.emit('gettreeDataApi');
@@ -258,6 +261,8 @@
     ElMessage.error('请绘制区域');
     return;
   }
+  loading.value = true
+  emit('update:loading', true);
   const params = {
     folder_id: formData.value.folder_id,
     name: formData.value.name,
@@ -275,24 +280,42 @@
   if (layerParams.value.decideWhetherToAddOrEdit === 2) {
     params.id = detailData.value.id;
   }
+  
   if (layerParams.value.decideWhetherToAddOrEdit === 1) {
     //围栏新增
-    addFenceApi(params).then(res => {
-      ElMessage.success('新增成功');
-      EventBus.emit('gettreeDataApi');
-      clearAllData();
-      emit('callParentMethod');
-    });
+    addFenceApi(params)
+      .then(res => {
+        ElMessage.success('新增成功');
+        EventBus.emit('gettreeDataApi');
+        clearAllData();
+        emit('callParentMethod');
+      })
+      .catch(err => {
+        ElMessage.error('新增失败,请重试');
+        console.error('新增失败:', err);
+      })
+      .finally(() => {
+        loading.value = false;
+         emit('update:loading', false);
+      });
   } else if (layerParams.value.decideWhetherToAddOrEdit === 2) {
     //围栏编辑
-    deitFenceApi(params).then(res => {
-      ElMessage.success('编辑成功');
-      EventBus.emit('gettreeDataApi');
-
-      clearAllData();
-      emit('callParentMethod');
-    });
-  }
+      deitFenceApi(params)
+      .then(res => {
+        ElMessage.success('编辑成功');
+        EventBus.emit('gettreeDataApi');
+        clearAllData();
+        emit('callParentMethod');
+      })
+      .catch(err => {
+        ElMessage.error('编辑失败,请重试');
+        console.error('编辑失败:', err);
+      })
+      .finally(() => {
+        loading.value = false;
+         emit('update:loading', false);
+      });
+        }
 };
 onMounted(() => {
   // 获取判断状态(默认设为 1)
@@ -420,6 +443,7 @@
       height: 39px;
       cursor: pointer;
     }
+
   }
 }
 </style>
diff --git a/src/views/layerManagement/index.vue b/src/views/layerManagement/index.vue
index 0c56040..c74111d 100644
--- a/src/views/layerManagement/index.vue
+++ b/src/views/layerManagement/index.vue
@@ -8,7 +8,9 @@
         </el-tabs>
       </div>
       <!-- 地图 -->
-      <div class="mapContainer">
+      <div class="mapContainer" v-loading="isPageLoading"
+      element-loading-background="rgba(0, 0, 0, 0.5)"
+      element-loading-text="加载中...">
         <div class="tool-tip" v-if="layerParams.addNest">点击地图生成测绘区域</div>
         <div id="layMap" class="ztzf-cesium"></div>
         <leftList
@@ -28,6 +30,7 @@
         <rightEdit
           v-if="layerParams.addNest || layerParams.editNest"
           @callParentMethod="parentMethod"
+          @update:loading="handleLoadingChange"
         ></rightEdit>
         <folderFile
           @refreshMethod="refreshMethod"
@@ -438,6 +441,11 @@
     cesium.removeEventListener('contextmenu', preventDefault);
   }
 };
+// 添加loading
+const isPageLoading = ref(false);
+const handleLoadingChange = (status) => {
+  isPageLoading.value = status;
+};
 provide('layerParams', layerParams);
 onMounted(() => {
   initMap();

--
Gitblit v1.9.3