From ec2ff7ebf2f4b1baa9fb931d0e6fcf7134106f51 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Thu, 29 Jan 2026 10:34:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue              |    4 +-
 applications/task-work-order/src/views/orderView/flyingHand/index.vue                         |    6 +-
 applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue |    1 
 applications/drone-command/src/views/basicManage/deviceStock/DeviceScrapDiaLog.vue            |   26 ++++++++++++-
 applications/drone-command/src/views/basicManage/deviceStock/fwDeviceScrapApi.js              |   11 +++++
 applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue |   18 ++++++++-
 6 files changed, 57 insertions(+), 9 deletions(-)

diff --git a/applications/drone-command/src/views/basicManage/deviceStock/DeviceScrapDiaLog.vue b/applications/drone-command/src/views/basicManage/deviceStock/DeviceScrapDiaLog.vue
index ad4958c..374884a 100644
--- a/applications/drone-command/src/views/basicManage/deviceStock/DeviceScrapDiaLog.vue
+++ b/applications/drone-command/src/views/basicManage/deviceStock/DeviceScrapDiaLog.vue
@@ -13,6 +13,7 @@
 						<el-input class="command-input" v-model="formData.disposeWay" maxlength="200" type="textarea" placeholder="请输入" clearable />
 					</el-form-item>
 				</el-col>
+				<div v-if="checkAreaBind" class="warning-text"> 注:该设备已绑定区域,报废设备该区域无法正常使用,是否报废?</div>
 			</el-row>
 		</el-form>
 		<template #footer>
@@ -35,7 +36,7 @@
 import { computed, ref } from 'vue'
 import { ElMessage } from 'element-plus'
 import { fieldRules } from '@ztzf/utils'
-import { fwDeviceScrapSaveApi } from '@/views/basicManage/deviceStock/fwDeviceScrapApi'
+import { fwDeviceScrapSaveApi,fivDevicelcheckAreaBindApi } from '@/views/basicManage/deviceStock/fwDeviceScrapApi'
 import dayjs from 'dayjs'
 import { saveOperationLog } from '@ztzf/apis'
 import { useRoute } from 'vue-router'
@@ -105,9 +106,30 @@
 	dialogMode.value = mode || 'add'
 	visible.value = true
 	formData.value.deviceId = row.id
+	getCheckAreaBind()
+}
+const checkAreaBind = ref(false)
+function getCheckAreaBind() {
+	fivDevicelcheckAreaBindApi({
+		deviceId: formData.value.deviceId
+	}).then(res => {
+		checkAreaBind.value = res.data.data
+	})
 }
 
-onMounted(() => {})
+onMounted(() => {
+	getCheckAreaBind()
+})
 
 defineExpose({ open })
 </script>
+
+<style scoped lang="scss">
+.warning-text {
+	width: 100%;
+	color: red;
+	font-size: 14px;
+	text-align: center;
+	margin: -10px 0 10px 0;
+}
+</style>
diff --git a/applications/drone-command/src/views/basicManage/deviceStock/fwDeviceScrapApi.js b/applications/drone-command/src/views/basicManage/deviceStock/fwDeviceScrapApi.js
index 048eb82..2fa608c 100644
--- a/applications/drone-command/src/views/basicManage/deviceStock/fwDeviceScrapApi.js
+++ b/applications/drone-command/src/views/basicManage/deviceStock/fwDeviceScrapApi.js
@@ -26,3 +26,14 @@
 		params,
 	})
 }
+
+// 设置区域绑定校验
+export const fivDevicelcheckAreaBindApi = params => {
+	return request({
+		url: `/drone-fw/device/fwDevice/checkAreaBind`,
+		method: 'get',
+		params,
+	})
+}
+
+
diff --git a/applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue b/applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue
index f8988f7..f58c380 100644
--- a/applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue
+++ b/applications/task-work-order/src/views/orderView/flyingHand/FlyingHandDialog.vue
@@ -30,7 +30,7 @@
       </el-col>
 	  <el-col :span="12">
         <div class="label">擅长任务类型</div>
-        <div class="val">{{ getDictLabel(formData.skilledTaskType, dictObj.skilledTaskType) }}</div>
+        <div class="val">{{ getDictLabel(formData.skilledTaskType, dictObj.patrolTaskType) }}</div>
       </el-col>
 	  <el-col :span="12">
         <div class="label">项目经验</div>
@@ -149,7 +149,7 @@
 							:disabled="dialogType === 'view'"
 						>
 							<el-option
-								v-for="item in dictObj.skilledTaskType"
+								v-for="item in dictObj.patrolTaskType"
 								:key="item.dictKey"
 								:label="item.dictValue"
 								:value="item.dictKey"
diff --git a/applications/task-work-order/src/views/orderView/flyingHand/index.vue b/applications/task-work-order/src/views/orderView/flyingHand/index.vue
index 686f871..8972b67 100644
--- a/applications/task-work-order/src/views/orderView/flyingHand/index.vue
+++ b/applications/task-work-order/src/views/orderView/flyingHand/index.vue
@@ -72,7 +72,7 @@
 					</el-table-column>
 					<el-table-column prop="skilledTaskType" show-overflow-tooltip label="擅长任务类型">
 						<template v-slot="{ row }">
-							{{ getDictLabel(row.skilledTaskType, dictObj.skilledTaskType) }}
+							{{ getDictLabel(row.skilledTaskType, dictObj.patrolTaskType) }}
 						</template>
 					</el-table-column>
 					<el-table-column label="操作" class-name="operation-btns" width="180">
@@ -136,7 +136,7 @@
 const flyingHandData = ref({})
 
 const dictObj = ref({
-	skilledTaskType: [], // 擅长任务类型
+	patrolTaskType: [], // 擅长任务类型
 	skilledUavType: [], // 擅长机型
 	technicalStrength: [] // 技术特长
 })
@@ -212,7 +212,7 @@
 
 // 获取字典
 function getDictList() {
-	getDictionaryByCode('skilledTaskType,skilledUavType,technicalStrength').then(res => {
+	getDictionaryByCode('patrolTaskType,skilledUavType,technicalStrength').then(res => {
 		dictObj.value = res.data.data
 	})
 }
diff --git a/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue
index 14c0372..29518ae 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue
@@ -286,6 +286,7 @@
 async function getFlyerList(index, skilledTaskType) {
 	const res = await gdFlyerPageApi({
 		size: 999,
+		current: 1,
 		skilledTaskType,
 	})
 	flyerListMap.value[index] = res?.data?.data?.records ?? []
diff --git a/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue b/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue
index 2a2648d..2c62033 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue
@@ -134,6 +134,7 @@
 									v-model="formData.patrolRouteUrl"
 									placeholder="请选择"
 									clearable
+									@change="getAirDetails"
 								>
 									<el-option v-for="item in routeOptions" :key="item.id" :label="item.name" :value="item.id" />
 								</el-select>
@@ -371,7 +372,7 @@
 
 // 获取飞手列表
 async function getFlyerList() {
-	const res = await gdFlyerPageApi({ size: 999 })
+	const res = await gdFlyerPageApi({ size: 999,current: 1 })
 	flyerList.value = res?.data?.data?.records ?? []
 }
 
@@ -531,7 +532,20 @@
 			}
   }
 }
-
+.imgBox {
+	display: flex;
+	flex-wrap: wrap;
+	gap: 10px;
+	> div {
+		width: calc((100% - 40px) / 5); /* 5列布局,减去4个10px间隙 */
+		height: 110px;
+		flex-shrink: 0;
+	}
+	.el-image {
+		width: 100%;
+		height: 100%;
+	}
+}
 :deep(.el-timeline-item__timestamp) {
   font-size: 12px;
   color: #999;

--
Gitblit v1.9.3