From f2dcdb896b009f9674ba719f7b935dd6871eebea Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Mon, 26 Jan 2026 09:58:37 +0800
Subject: [PATCH] feat: 航线下拉

---
 applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue |    7 +--
 applications/task-work-order/env/.env                                                         |    3 +
 applications/task-work-order/src/api/zkxt/index.js                                            |    9 ++++
 applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/index.vue      |   15 +++++++
 applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue |    9 +---
 applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue       |   21 ++++++++--
 applications/task-work-order/env/.env.development                                             |    2 
 7 files changed, 49 insertions(+), 17 deletions(-)

diff --git a/applications/task-work-order/env/.env b/applications/task-work-order/env/.env
index 5204ccb..f02486b 100644
--- a/applications/task-work-order/env/.env
+++ b/applications/task-work-order/env/.env
@@ -15,3 +15,6 @@
 
 # 是否在打包时开启压缩,支持 gzip 和 brotli
 VITE_BUILD_COMPRESS=gzip
+
+# xt接口地址
+VITE_APP_URL_XT=http://218.202.104.82:8200
diff --git a/applications/task-work-order/env/.env.development b/applications/task-work-order/env/.env.development
index 40d319b..fe1504c 100644
--- a/applications/task-work-order/env/.env.development
+++ b/applications/task-work-order/env/.env.development
@@ -17,7 +17,7 @@
 # VITE_APP_URL = https://wrj.shuixiongit.com/api
 VITE_APP_URL= http://192.168.1.204
 
-VITE_APP_URL_XT=http://218.202.104.82:8200
+
 
 #新大屏地址
 VITE_APP_DASHBOARD_URL = 'https://wrj.shuixiongit.com/command-center-dashboard/'
diff --git a/applications/task-work-order/src/api/zkxt/index.js b/applications/task-work-order/src/api/zkxt/index.js
index a68ca10..3978887 100644
--- a/applications/task-work-order/src/api/zkxt/index.js
+++ b/applications/task-work-order/src/api/zkxt/index.js
@@ -28,4 +28,13 @@
 	})
 }
 
+// 获取航线列表
+export const airlineListApi = (data) => {
+	return request({
+		url: `/webservice/webservice/airline/queryList`,
+		method: 'post',
+		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 98916f3..8a2dd3e 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
@@ -201,6 +201,7 @@
 import { gdWorkOrderPageApi } from '../orderManage/orderManageApi'
 import { gdManageDeviceListApi } from '../orderManage/gdManageDeviceApi'
 import { pxToRem } from '@/utils/rem'
+import { airlineListApi } from '@/api/zkxt'
 
 // 初始化任务行
 const initTaskRow = () => ({
@@ -230,11 +231,7 @@
 // 下拉选项
 const flyerListMap = ref({}) // 飞手列表,按行索引存储
 const deviceList = ref([]) // 设备列表
-const routeOptions = ref([
-	{ name: '航线1', id: '1' },
-	{ name: '航线2', id: '2' },
-	{ name: '航线3', id: '3' },
-]) // 航线假数据
+const routeOptions = inject('routeOptions')
 
 // 子任务列表
 const taskList = ref([initTaskRow()])
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 8d7bd7b..d94a48d 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
@@ -45,7 +45,7 @@
 						</el-col>
 						<el-col :span="12">
 							<div class="label">巡查任务航线</div>
-							<div class="val">{{ getRouteName(formData.patrolRouteUrl) }}</div>
+							<div class="val">{{ getAirName(formData.patrolRouteUrl) }}</div>
 						</el-col>
 						<el-col :span="12">
 							<div class="label">推荐飞手</div>
@@ -277,11 +277,8 @@
 const flyerList = ref([])
 const deviceList = ref([])
 const workOrderList = ref([])
-const routeOptions = ref([
-	{ name: '航线1', id: '1' },
-	{ name: '航线2', id: '2' },
-	{ name: '航线3', id: '3' },
-])
+const routeOptions = inject('routeOptions')
+const getAirName = inject('getAirName')
 
 const gdStatusObj = {
 	'0': { reason: '拒绝原因', operationType: '2' },
diff --git a/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/index.vue b/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/index.vue
index 6d64be5..a3064be 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/index.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/index.vue
@@ -137,6 +137,7 @@
 import { gdPatrolTaskPageApi, gdPatrolTaskRemoveApi } from './inspectionRequestApi'
 import ViewDiaLog from '@/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue'
 import { useStore } from 'vuex'
+import { airlineListApi } from '@/api/zkxt'
 
 const store = useStore()
 const requester = computed(() => store.state.user.userInfo?.role_id === '2014158512610869250')
@@ -232,6 +233,19 @@
 	selectedIds.value = rows.map(item => item.id)
 }
 
+const routeOptions = ref([])
+const getAirName = id => {
+	const item = routeOptions.value.find(item => item.id === id)
+	return item ? item.name : id
+}
+provide('routeOptions', routeOptions)
+provide('getAirName', getAirName)
+function getAirList() {
+	airlineListApi({}).then(res => {
+		routeOptions.value = res.data.data || []
+	})
+}
+
 // 获取字典
 function getDictList() {
 	getDictionaryByCode('patrolTaskType,workOrderType,deviceLoadDemand,taskStatus').then(res => {
@@ -249,6 +263,7 @@
 onMounted(() => {
 	getList()
 	getDictList()
+	getAirList()
 })
 </script>
 <style scoped lang="scss"></style>
diff --git a/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue b/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
index c635df7..ad0cb1f 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
@@ -374,11 +374,12 @@
 
 // 获取推荐设备列表
 async function getDeviceList() {
+	const all = ['11'].includes(gdStatus.value)
 	try {
 		const str = [...pointList.value, pointList.value[0]].map(item => `${item.longitude} ${item.latitude}`).join(',')
 		let geom = `POLYGON((${str}))`
 		const res = await gdManageDeviceListApi({
-			deviceIds: formData.value.recommendDeviceIds,
+			deviceIds: all ? '' : formData.value.recommendDeviceIds,
 			devicePayload: dialogMode.value === 'add' ? formData.value.deviceLoadDemand : '',
 			geom: dialogMode.value === 'add' ? geom : '',
 		})
@@ -543,10 +544,20 @@
 			position: position,
 			billboard: {
 				image: droneIcon,
-				width: 40,
-				height: 40,
+				width: 20,
+				height: 20,
 				verticalOrigin: Cesium.VerticalOrigin.CENTER,
 			},
+			label: {
+				text: item.nickname,
+				font: '12px/1.5 Microsoft YaHei',
+				style: Cesium.LabelStyle.FILL_AND_OUTLINE,
+				outlineWidth: 2,
+				outlineColor: Cesium.Color.WHITE,
+				horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
+				verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
+				pixelOffset: new Cesium.Cartesian2(0, -10)
+			}
 		})
 	})
 }
@@ -563,10 +574,10 @@
 		hasPatrolTaskList.value && gdPatrolTaskPage()
 		dialogMode.value === 'edit' ? editPolygon() : viewPolygon()
 	}
-	// setMapDevice()
+	setMapDevice()
 	await nextTick()
+	await getDeviceList()
 	syncSelection()
-	getDeviceList()
 }
 
 // 初始化地图实例

--
Gitblit v1.9.3