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