From 0a28b8b848524063e250cb7d32d0be53f83d8d5b Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Fri, 31 Oct 2025 17:02:03 +0800
Subject: [PATCH] feat: 同步信息
---
src/api/layer/index.js | 29 ++++++++++++++
src/views/layerManagement/components/leftList.vue | 60 +++++++++++++++++++++++++++++-
2 files changed, 87 insertions(+), 2 deletions(-)
diff --git a/src/api/layer/index.js b/src/api/layer/index.js
index 27a3fd2..37129df 100644
--- a/src/api/layer/index.js
+++ b/src/api/layer/index.js
@@ -78,3 +78,32 @@
data,
});
};
+
+// 同步
+export const areasUpdateApi = data => {
+ return request({
+ url: `/drone-device-core/noFlyZoon/areasUpdate`,
+ method: 'post',
+ data,
+ });
+};
+
+// 获取同步信息
+export const failuresListApi = data => {
+ return request({
+ url: `/drone-device-core/noFlyZoon/failuresList`,
+ method: 'get',
+ data,
+ });
+};
+
+// 取消同步
+export const failuresDelApi = data => {
+ return request({
+ url: `/drone-device-core/noFlyZoon/failuresDel`,
+ method: 'delete',
+ data,
+ });
+};
+
+
diff --git a/src/views/layerManagement/components/leftList.vue b/src/views/layerManagement/components/leftList.vue
index 410a0e6..4e63763 100644
--- a/src/views/layerManagement/components/leftList.vue
+++ b/src/views/layerManagement/components/leftList.vue
@@ -26,6 +26,21 @@
<el-button class="ztzf-button"> 上传 </el-button>
</el-upload>
+ <template v-if="activeName === '自定义禁飞区'">
+ <template v-if="failuresInfo.length">
+ <el-button class="ztzf-button" @click="synchronize">
+ 继续同步
+ </el-button>
+ <el-button class="ztzf-button" @click="failuresDel">
+ 取消同步
+ </el-button>
+ </template>
+ <el-button v-else class="ztzf-button" @click="synchronize">
+ 同步
+ </el-button>
+ </template>
+
+
<el-button class="ztzf-button" @click="selectAll">全选</el-button>
</div>
<div class="tableListBox">
@@ -68,8 +83,15 @@
</template>
<script setup>
-import { ElMessage } from 'element-plus';
-import { treeDataApi, deleteFenceApi, deleteFolderApi, spatialPlanningApi } from '@/api/layer/index';
+import { ElMessage, ElMessageBox } from 'element-plus';
+import {
+ treeDataApi,
+ deleteFenceApi,
+ deleteFolderApi,
+ spatialPlanningApi,
+ failuresListApi,
+ failuresDelApi, areasUpdateApi
+} from '@/api/layer/index';
import { inject, nextTick, onMounted, watch } from 'vue';
const emit = defineEmits(['update:coverData', 'update:deitData', 'newFencesMethods']);
import EventBus from '@/utils/eventBus';
@@ -268,7 +290,41 @@
return data.name.includes(value)
}
+// 同步信息
+const failuresInfo = ref([])
+function failuresList() {
+ failuresListApi().then(res => {
+ failuresInfo.value = res.data.data || []
+ })
+}
+
+// 同步
+function synchronize() {
+ const data = failuresInfo.value.map(item => item.device_sn)
+ areasUpdateApi(data).then(res => {
+ if (res.data.data.length){
+ let stringVal = res.data.data.reduce((acc, cur) => {
+ return acc + cur.nickname + '(' + cur.reason + ')' + ','
+ }, '')
+ stringVal = stringVal.slice(0, -1)
+ ElMessageBox.alert(stringVal, '同步失败', {
+ confirmButtonText: '确定',
+ })
+ }else{
+ ElMessage.success('同步成功');
+ }
+ })
+}
+
+// 取消同步
+function failuresDel() {
+ failuresDelApi().then(res => {
+ ElMessage.success('取消同步成功');
+ })
+}
+
onMounted(() => {
+ failuresList()
gettreeDataApi();
EventBus.on('gettreeDataApi', gettreeDataApi);
});
--
Gitblit v1.9.3