From 32fab9684f6642bf8c6c9b3d913b3124ce997f4d Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Fri, 22 May 2026 15:16:18 +0800
Subject: [PATCH] feat: 巡检任务使用xt接口

---
 applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue |   17 +++++---
 applications/task-work-order/src/views/orderView/orderManage/clueEvents/index.vue             |   18 ++++++---
 applications/task-work-order/src/api/zkxt/index.js                                            |    8 ++++
 applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue            |   14 +++++--
 packages/utils/common/index.js                                                                |   10 +++++
 applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/index.vue      |   14 +++++--
 applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue |   16 ++++---
 applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue       |   18 +++++----
 8 files changed, 79 insertions(+), 36 deletions(-)

diff --git a/applications/task-work-order/src/api/zkxt/index.js b/applications/task-work-order/src/api/zkxt/index.js
index 01b7079..6952651 100644
--- a/applications/task-work-order/src/api/zkxt/index.js
+++ b/applications/task-work-order/src/api/zkxt/index.js
@@ -62,4 +62,12 @@
 	})
 }
 
+// 获取字典下拉 task_inspection_type
+export const getDictListApi = (str) => {
+	return request({
+		url: `/system/dict/data/type/${str}`,
+		method: 'get',
+	})
+}
+
 
diff --git a/applications/task-work-order/src/views/orderView/orderManage/clueEvents/index.vue b/applications/task-work-order/src/views/orderView/orderManage/clueEvents/index.vue
index 17b0c7d..a0dfeab 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/clueEvents/index.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/clueEvents/index.vue
@@ -22,10 +22,10 @@
 					@change="handleSearch"
 				>
 					<el-option
-						v-for="item in dictObj.workOrderType"
-						:key="item.dictKey"
-						:label="item.dictValue"
-						:value="item.dictKey"
+						v-for="item in workOrderTypeXT"
+						:key="item.dictValue"
+						:label="item.dictLabel"
+						:value="item.dictValue"
 					/>
 				</el-select>
 			</el-form-item>
@@ -76,7 +76,7 @@
 					<el-table-column prop="taskNo" show-overflow-tooltip label="巡查任务编号" />
 					<el-table-column prop="patrolTaskType" show-overflow-tooltip label="巡查任务类型">
 						<template v-slot="{ row }">
-							{{ getDictLabel(row.patrolTaskType, dictObj.workOrderType) }}
+							{{ getDictLabelXT(row.patrolTaskType, workOrderTypeXT) }}
 						</template>
 					</el-table-column>
 					<el-table-column prop="taskStatus" show-overflow-tooltip label="巡查任务状态">
@@ -117,7 +117,8 @@
 import { Search, RefreshRight } from '@element-plus/icons-vue'
 import { onMounted, ref } from 'vue'
 import { getDictionaryByCode } from '@/api/system/dictbiz'
-import { dateRangeFormat, getDictLabel } from '@ztzf/utils'
+import { dateRangeFormat, getDictLabel, getDictLabelXT } from '@ztzf/utils'
+import { getDictListApi } from '@/api/zkxt'
 import { gdPatrolTaskPageApi } from '../inspectionRequest/inspectionRequestApi'
 import { getDeptTree } from '@/api/system/dept'
 import ViewDiaLog from './ViewDiaLog.vue'
@@ -149,8 +150,10 @@
 	workOrderType: [], // 巡查任务类型
 	taskStatus: [], // 巡查任务状态
 })
+const workOrderTypeXT = ref([])
 
 provide('dictObj', dictObj)
+provide('workOrderTypeXT', workOrderTypeXT)
 provide('deptTree', deptTree)
 provide('treeProps', treeProps)
 
@@ -199,6 +202,9 @@
 	getDictionaryByCode('workOrderType,taskStatus').then(res => {
 		dictObj.value = res.data.data
 	})
+	getDictListApi('task_inspection_type').then(res => {
+		workOrderTypeXT.value = res.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 74afb7a..24f51c2 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
@@ -33,7 +33,7 @@
 						<div class="info-item">
 							<span class="label">工单类型</span>
 							<span class="val" v-if="selectedWorkOrder">
-								{{ getDictLabel(selectedWorkOrder.workOrderType, dictObj.workOrderType) }}
+								{{ getDictLabelXT(selectedWorkOrder.workOrderType, workOrderTypeXT) }}
 							</span>
 							<span class="val grayText" v-else>选择工单后自动带出</span>
 						</div>
@@ -106,10 +106,10 @@
 									@change="handlePatrolTaskTypeChange($index, $event)"
 								>
 									<el-option
-										v-for="item in dictObj.workOrderType"
-										:key="item.dictKey"
-										:label="item.dictValue"
-										:value="item.dictKey"
+										v-for="item in workOrderTypeXT"
+										:key="item.dictValue"
+										:label="item.dictLabel"
+										:value="item.dictValue"
 									/>
 								</el-select>
 							</template>
@@ -265,10 +265,11 @@
 </template>
 
 <script setup>
-import { computed, ref, onMounted } from 'vue'
+import { computed, ref, onMounted, inject } from 'vue'
 import { ElMessage } from 'element-plus'
 import { Plus, Delete } from '@element-plus/icons-vue'
-import { geomAnalysis, getDictLabel } from '@ztzf/utils'
+import { geomAnalysis, getDictLabel, getDictLabelXT } from '@ztzf/utils'
+
 import { gdPatrolTaskSaveApi, gdFlyerPageApi, gdPatrolTaskAuditApi } from './inspectionRequestApi'
 import { gdWorkOrderPageApi } from '../orderManage/orderManageApi'
 import { gdManageDeviceListApi } from '../orderManage/gdManageDeviceApi'
@@ -305,6 +306,7 @@
 const routeOptions = ref([]) // 航线选项(根据工单范围获取)
 const routeLoading = ref(false) // 航线加载中
 const algorithmTreeData = ref([]) // 算法树形数据
+const workOrderTypeXT = inject('workOrderTypeXT', ref([]))
 
 // 获取算法分组数据
 async function getAlgorithmList() {
@@ -534,6 +536,7 @@
 	dialogMode.value = mode
 	await getWorkOrderList()
 	getAlgorithmList()
+
 	if (dialogMode.value === 'add') {
 		selectedWorkOrderId.value = null
 		selectedWorkOrder.value = null
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 0b4f24a..ec7a7b3 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">{{ getDictLabel(formData.patrolTaskType, dictObj.workOrderType) }}</div>
+							<div class="val">{{ getDictLabelXT(formData.patrolTaskType, workOrderTypeXT) }}</div>
 						</el-col>
 						<el-col :span="12">
 							<div class="label">任务执行时间</div>
@@ -119,10 +119,10 @@
 									clearable
 								>
 									<el-option
-										v-for="item in dictObj.workOrderType"
-										:key="item.dictKey"
-										:label="item.dictValue"
-										:value="item.dictKey"
+										v-for="item in workOrderTypeXT"
+										:key="item.dictValue"
+										:label="item.dictLabel"
+										:value="item.dictValue"
 									/>
 								</el-select>
 							</el-form-item>
@@ -284,9 +284,9 @@
 </template>
 
 <script setup>
-import { computed, ref, onMounted } from 'vue'
+import { computed, ref, onMounted, inject } from 'vue'
 import { ElMessage } from 'element-plus'
-import { fieldRules, flyVisual, getDictLabel, geomAnalysis } from '@ztzf/utils'
+import { fieldRules, flyVisual, getDictLabel, getDictLabelXT, geomAnalysis } from '@ztzf/utils'
 import {
 	gdPatrolTaskRepublish,
 	gdFlyerPageApi,
@@ -345,6 +345,7 @@
 }
 
 const algorithmTreeData = ref([]) // 算法树形数据
+const workOrderTypeXT = inject('workOrderTypeXT', ref([]))
 
 // 获取算法分组数据
 async function getAlgorithmList() {
@@ -580,6 +581,7 @@
 async function open({ mode = 'view', row } = {}) {
 	detailLoaded.value = false
 	dialogMode.value = mode
+
 	const res = await gdPatrolTaskDetailApi({ id: row.id })
 	formData.value = { ...initForm(), ...res.data.data }
 	// 确保 algorithmIds 是数组
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 9535e60..4f0e1c6 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
@@ -13,8 +13,8 @@
 			<el-form-item label="任务类型" prop="patrolTaskType">
 				<el-select class="gd-select gray" popper-class="gd-select-popper" v-model="searchParams.patrolTaskType"
 					placeholder="请选择" clearable @change="handleSearch">
-					<el-option v-for="item in dictObj.workOrderType" :key="item.dictKey" :label="item.dictValue"
-						:value="item.dictKey" />
+					<el-option v-for="item in workOrderTypeXT" :key="item.dictValue" :label="item.dictLabel"
+						:value="item.dictValue" />
 				</el-select>
 			</el-form-item>
 
@@ -55,7 +55,7 @@
 					<el-table-column prop="taskNo" show-overflow-tooltip label="巡查任务编号" />
 					<el-table-column prop="patrolTaskType" show-overflow-tooltip label="巡查任务类型">
 						<template v-slot="{ row }">
-							{{ getDictLabel(row.patrolTaskType, dictObj.workOrderType) }}
+							{{ getDictLabelXT(row.patrolTaskType, workOrderTypeXT) }}
 						</template>
 					</el-table-column>
 					<el-table-column prop="taskStatus" show-overflow-tooltip label="巡查任务状态">
@@ -93,7 +93,8 @@
 import { onMounted, ref } from 'vue'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { getDictionaryByCode } from '@/api/system/dictbiz'
-import { dateRangeFormat, getDictLabel } from '@ztzf/utils'
+import { dateRangeFormat, getDictLabel, getDictLabelXT } from '@ztzf/utils'
+import { getDictListApi } from '@/api/zkxt'
 import FormDiaLog from './FormDiaLog.vue'
 import { gdPatrolTaskPageApi, gdPatrolTaskRemoveApi } from './inspectionRequestApi'
 import ViewDiaLog from '@/views/orderView/orderManage/inspectionRequest/ViewDiaLog.vue'
@@ -130,8 +131,10 @@
 	deviceLoadDemand: [], // 设备负载需求
 	taskStatus: [], // 巡查任务状态
 })
+const workOrderTypeXT = ref([])
 const activeName = ref('all')
 provide('dictObj', dictObj)
+provide('workOrderTypeXT', workOrderTypeXT)
 
 const colors = {
 	0: '#F6A000',//0待签收
@@ -213,6 +216,9 @@
 	getDictionaryByCode('workOrderType,deviceLoadDemand,taskStatus').then(res => {
 		dictObj.value = res.data.data
 	})
+	getDictListApi('task_inspection_type').then(res => {
+		workOrderTypeXT.value = res.data.data || []
+	})
 }
 
 function refusalAccept (row) {
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 a09bc08..6abe86f 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
@@ -31,7 +31,7 @@
 						</el-col>
 						<el-col :span="12">
 							<div class="label">工单类型</div>
-							<div class="val">{{ getDictLabel(formData.workOrderType, dictObj.workOrderType) }}</div>
+							<div class="val">{{ getDictLabelXT(formData.workOrderType, workOrderTypeXT) }}</div>
 						</el-col>
 						<el-col :span="12">
 							<div class="label">执行时间范围</div>
@@ -62,7 +62,7 @@
 							<el-table-column prop="patrolTaskName" show-overflow-tooltip label="巡查任务名称" />
 							<el-table-column prop="patrolTaskType" show-overflow-tooltip label="巡查任务类型">
 								<template v-slot="{ row }">
-									{{ getDictLabel(row.patrolTaskType, dictObj.workOrderType) }}
+									{{ getDictLabelXT(row.patrolTaskType, workOrderTypeXT) }}
 								</template>
 							</el-table-column>
 							<el-table-column prop="taskStatus" show-overflow-tooltip label="任务状态">
@@ -102,10 +102,10 @@
 									clearable
 								>
 									<el-option
-										v-for="item in dictObj.workOrderType"
-										:key="item.dictKey"
-										:label="item.dictValue"
-										:value="item.dictKey"
+										v-for="item in workOrderTypeXT"
+										:key="item.dictValue"
+										:label="item.dictLabel"
+										:value="item.dictValue"
 									/>
 								</el-select>
 							</el-form-item>
@@ -262,9 +262,9 @@
 </template>
 
 <script setup>
-import { computed, ref, nextTick } from 'vue'
+import { computed, ref, nextTick, inject } from 'vue'
 import { ElMessage } from 'element-plus'
-import { dateRangeFormat, fieldRules, flyVisual, geomAnalysis, getDictLabel } from '@ztzf/utils'
+import { dateRangeFormat, fieldRules, flyVisual, geomAnalysis, getDictLabel, getDictLabelXT } from '@ztzf/utils'
 import {
 	gdWorkOrderDetailApi,
 	gdWorkOrderFlowListApi,
@@ -286,6 +286,7 @@
 import { useStore } from 'vuex'
 import OrderStepBar from '@/views/orderView/orderManage/orderManage/OrderStepBar.vue'
 import OutcomeData from './outcomeData.vue'
+import { getDictListApi } from '@/api/zkxt'
 const store = useStore()
 const permission = computed(() => store.state.user.permission)
 const activeName = ref('basic')
@@ -305,6 +306,7 @@
 const mapRef = ref(null)
 const rejectVisible = ref(false)
 const dictObj = inject('dictObj')
+const workOrderTypeXT = inject('workOrderTypeXT', ref([]))
 const dateRange = ref([])
 const patrolTaskList = ref([])
 const emit = defineEmits(['success'])
diff --git a/applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue b/applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue
index d52524c..8138358 100644
--- a/applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue
+++ b/applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue
@@ -13,8 +13,8 @@
 			<el-form-item label="工单类型" prop="workOrderType">
 				<el-select class="gd-select gray" popper-class="gd-select-popper" v-model="searchParams.workOrderType"
 					placeholder="请选择" clearable @change="handleSearch">
-					<el-option v-for="item in dictObj.workOrderType" :key="item.dictKey" :label="item.dictValue"
-						:value="item.dictKey" />
+					<el-option v-for="item in workOrderTypeXT" :key="item.dictValue" :label="item.dictLabel"
+						:value="item.dictValue" />
 				</el-select>
 			</el-form-item>
 
@@ -53,7 +53,7 @@
 					<el-table-column prop="workOrderCode" show-overflow-tooltip label="工单编号" />
 					<el-table-column prop="workOrderType" show-overflow-tooltip label="工单类型">
 						<template v-slot="{ row }">
-							{{ getDictLabel(row.workOrderType, dictObj.workOrderType) }}
+							{{ getDictLabelXT(row.workOrderType, workOrderTypeXT) }}
 						</template>
 					</el-table-column>
 					<el-table-column prop="status" show-overflow-tooltip label="阶段状态">
@@ -102,7 +102,8 @@
 import { onMounted, ref } from 'vue'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { getDictionaryByCode } from '@/api/system/dictbiz'
-import { dateRangeFormat, getDictLabel } from '@ztzf/utils'
+import { dateRangeFormat, getDictLabel, getDictLabelXT } from '@ztzf/utils'
+import { getDictListApi } from '@/api/zkxt'
 import FormDiaLog from './FormDiaLog.vue'
 import { gdWorkOrderPageApi, gdWorkOrderRemoveApi } from './orderManageApi'
 import dayjs from 'dayjs'
@@ -143,7 +144,9 @@
 	workOrderType: [], // 工单类型
 	workOrderStatus: [], // 工单状态
 })
+const workOrderTypeXT = ref([])
 provide('dictObj', dictObj)
+provide('workOrderTypeXT', workOrderTypeXT)
 
 // 获取列表
 async function getList () {
@@ -246,6 +249,9 @@
 	getDictionaryByCode('deviceLoadDemand,workOrderType,workOrderStatus,taskStatus').then(res => {
 		dictObj.value = res.data.data
 	})
+	getDictListApi('task_inspection_type').then(res => {
+		workOrderTypeXT.value = res.data.data || []
+	})
 }
 
 // 获取两个tab的总条数
diff --git a/packages/utils/common/index.js b/packages/utils/common/index.js
index c213e19..b7e1e97 100644
--- a/packages/utils/common/index.js
+++ b/packages/utils/common/index.js
@@ -38,6 +38,16 @@
 		.join(',');
 }
 
+// id转label xt
+export function getDictLabelXT(value, dictList = []) {
+	if (value === null || value === undefined || value === '') return '';
+	const values = String(value).split(',');
+	return dictList
+		.filter(item => values.includes(String(item.dictValue)))
+		.map(item => item.dictLabel)
+		.join(',');
+}
+
 export function blobDownload(res) {
 	const disposition = res.headers?.['content-disposition'] || res.headers?.['Content-Disposition']
 	const encodedName = disposition.split('filename=')[1]

--
Gitblit v1.9.3