From fc0a7f9f2ab918d2fe01fb726458c27d28a25bd1 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Thu, 05 Feb 2026 14:19:12 +0800
Subject: [PATCH] feat: 根据区域和类型来获取飞手

---
 applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 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 8529787..6b9b69d 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
@@ -21,7 +21,6 @@
 					clearable
 					filterable
 					:disabled="dialogMode !== 'add'"
-					@change="handleWorkOrderChange"
 				>
 					<el-option v-for="item in workOrderList" :key="item.id" :label="item.workOrderName" :value="item.id" />
 				</el-select>
@@ -235,7 +234,7 @@
 import { computed, ref, onMounted } from 'vue'
 import { ElMessage } from 'element-plus'
 import { Plus, Delete } from '@element-plus/icons-vue'
-import { getDictLabel } from '@ztzf/utils'
+import { geomAnalysis, getDictLabel } from '@ztzf/utils'
 import { gdPatrolTaskSaveApi, gdFlyerPageApi, gdPatrolTaskAuditApi } from './inspectionRequestApi'
 import { gdWorkOrderPageApi } from '../orderManage/orderManageApi'
 import { gdManageDeviceListApi } from '../orderManage/gdManageDeviceApi'
@@ -271,7 +270,7 @@
 const routeOptions = inject('routeOptions')
 
 // 子任务列表
-const taskList = ref([initTaskRow(), initTaskRow(), initTaskRow(), initTaskRow(), initTaskRow()])
+const taskList = ref([initTaskRow()])
 
 // 处理工单选择变化
 function handleWorkOrderChange(val) {
@@ -345,12 +344,26 @@
 	await getFlyerList(index, skilledTaskType)
 }
 
+import * as turf from '@turf/turf'
+
+function getPolygonCenter(rawData) {
+	const coordinates = [rawData.map(p => [p.longitude, p.latitude])];
+	const polygon = turf.polygon(coordinates);
+	const center = turf.centroid(polygon);
+	const [centerLon, centerLat] = center.geometry.coordinates;
+	return {longitude: centerLon, latitude: centerLat};
+}
+
+
 // 获取飞手列表
 async function getFlyerList(index, skilledTaskType) {
+	const obj = getPolygonCenter(geomAnalysis(selectedWorkOrder.value.geom))
 	const res = await gdFlyerPageApi({
 		size: 999,
 		current: 1,
 		skilledTaskType,
+		longitude: obj.longitude || '',
+		latitude: obj.latitude || '',
 	})
 	flyerListMap.value[index] = res?.data?.data?.records ?? []
 }

--
Gitblit v1.9.3