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