From d04ecbb2aa47d93e05d28bb551e7bad83d97d60f Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Wed, 03 Jun 2026 18:38:55 +0800
Subject: [PATCH] feat: 类型多选改造

---
 applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue |   27 ++++++++++++++-------------
 1 files changed, 14 insertions(+), 13 deletions(-)

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 ec7a7b3..9e20e41 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
@@ -42,7 +42,7 @@
 						</el-col>
 						<el-col :span="12">
 							<div class="label">巡查任务类型</div>
-							<div class="val">{{ getDictLabelXT(formData.patrolTaskType, workOrderTypeXT) }}</div>
+							<div class="val">{{ getTaskTypeLabel(formData.patrolTaskType, workOrderTypeXT) }}</div>
 						</el-col>
 						<el-col :span="12">
 							<div class="label">任务执行时间</div>
@@ -111,20 +111,15 @@
 						</el-col>
 						<el-col :span="12">
 							<el-form-item label="巡查任务类型" prop="patrolTaskType">
-								<el-select
+								<el-cascader
 									class="gd-select"
 									popper-class="gd-select-popper"
 									v-model="formData.patrolTaskType"
+									:options="workOrderTypeXT"
+									:props="taskTypeCascaderProps"
 									placeholder="请选择"
 									clearable
-								>
-									<el-option
-										v-for="item in workOrderTypeXT"
-										:key="item.dictValue"
-										:label="item.dictLabel"
-										:value="item.dictValue"
-									/>
-								</el-select>
+								/>
 							</el-form-item>
 						</el-col>
 						<el-col :span="12">
@@ -286,7 +281,7 @@
 <script setup>
 import { computed, ref, onMounted, inject } from 'vue'
 import { ElMessage } from 'element-plus'
-import { fieldRules, flyVisual, getDictLabel, getDictLabelXT, geomAnalysis } from '@ztzf/utils'
+import { fieldRules, flyVisual, getDictLabel, geomAnalysis } from '@ztzf/utils'
 import {
 	gdPatrolTaskRepublish,
 	gdFlyerPageApi,
@@ -303,12 +298,13 @@
 import { queryAirById, airlineListApi, algorithmGroupedApi } from '@/api/zkxt'
 import * as Cesium from 'cesium'
 import { useStore } from 'vuex'
+import { getTaskTypeLabel, taskTypeCascaderProps, toTaskTypeCascaderValue, toTaskTypeRequestValue } from '../taskTypeOptions'
 
 // 初始化表单数据
 const initForm = () => ({
 	id: null,
 	patrolTaskName: '',
-	patrolTaskType: '',
+	patrolTaskType: [],
 	executeTime: '',
 	patrolRouteUrl: '',
 	deviceFlyerId: null,
@@ -493,7 +489,11 @@
 	if (!isValid) return
 	submitting.value = true
 	try {
-		await gdPatrolTaskRepublish(formData.value)
+		const payload = {
+			...formData.value,
+			patrolTaskType: toTaskTypeRequestValue(formData.value.patrolTaskType),
+		}
+		await gdPatrolTaskRepublish(payload)
 		ElMessage.success('更新成功')
 		visible.value = false
 		emit('success')
@@ -584,6 +584,7 @@
 
 	const res = await gdPatrolTaskDetailApi({ id: row.id })
 	formData.value = { ...initForm(), ...res.data.data }
+	formData.value.patrolTaskType = toTaskTypeCascaderValue(formData.value.patrolTaskType)
 	// 确保 algorithmIds 是数组
 	if (formData.value.algorithmIds && typeof formData.value.algorithmIds === 'string') {
 		formData.value.algorithmIds = formData.value.algorithmIds.split(',').filter(Boolean)

--
Gitblit v1.9.3