From f82dfc25cab5b60d38c6722af5479df72bf191cc Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Sat, 28 Feb 2026 11:10:58 +0800
Subject: [PATCH] feat: 根据工单范围进行过滤航线

---
 applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue |   22 +++++++++++++++++++++-
 1 files changed, 21 insertions(+), 1 deletions(-)

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 6b9b69d..16684d8 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
@@ -144,6 +144,8 @@
 									v-model="row.patrolRouteUrl"
 									placeholder="请选择"
 									:disabled="dialogReadonly"
+									:loading="routeLoading"
+									no-data-text="暂无航线"
 								>
 									<el-option v-for="item in routeOptions" :key="item.id" :label="item.name" :value="item.id" />
 								</el-select>
@@ -267,7 +269,8 @@
 // 下拉选项
 const flyerListMap = ref({}) // 飞手列表,按行索引存储
 const deviceList = ref([]) // 设备列表
-const routeOptions = inject('routeOptions')
+const routeOptions = ref([]) // 航线选项(根据工单范围获取)
+const routeLoading = ref(false) // 航线加载中
 
 // 子任务列表
 const taskList = ref([initTaskRow()])
@@ -276,6 +279,8 @@
 function handleWorkOrderChange(val) {
 	if (val) {
 		selectedWorkOrder.value = workOrderList.value.find(item => item.id === val)
+		// 根据工单范围获取航线列表
+		getAirListByGeom()
 		// 将工单类型赋值给所有子任务行
 		const workOrderType = selectedWorkOrder.value?.workOrderType
 		if (workOrderType) {
@@ -287,9 +292,24 @@
 		}
 	} else {
 		selectedWorkOrder.value = null
+		routeOptions.value = []
 	}
 }
 
+// 根据工单geom范围获取航线列表
+function getAirListByGeom() {
+	const geom = selectedWorkOrder.value?.geom
+	if (!geom) return
+	const coordinates = geomAnalysis(geom)
+	if (!coordinates || !coordinates.length) return
+	routeLoading.value = true
+	airlineListApi(coordinates).then(res => {
+		routeOptions.value = res.data.data || []
+	}).finally(() => {
+		routeLoading.value = false
+	})
+}
+
 // 添加任务行
 function addTaskRow() {
 	const newTask = initTaskRow()

--
Gitblit v1.9.3