From b9c75e12d878ba60d0b7190263108766acae0fb8 Mon Sep 17 00:00:00 2001 From: hwj Date: Wed, 14 Jan 2026 09:52:19 +0800 Subject: [PATCH 01/13] =?UTF-8?q?style=EF=BC=9A=E6=A8=A1=E5=85=B7=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E5=B7=A5=E5=8D=95=E6=9F=A5=E8=AF=A2=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=9B=B4=E6=8D=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/mold/ticketManagement/index.ts | 51 ++++++ .../components/TicketResultDialog.vue | 173 ++++++++++++++++++ src/views/mold/workOrderInquiry/index.vue | 4 +- 3 files changed, 226 insertions(+), 2 deletions(-) create mode 100644 src/api/mold/ticketManagement/index.ts create mode 100644 src/views/mold/workOrderInquiry/components/TicketResultDialog.vue diff --git a/src/api/mold/ticketManagement/index.ts b/src/api/mold/ticketManagement/index.ts new file mode 100644 index 00000000..00139e05 --- /dev/null +++ b/src/api/mold/ticketManagement/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +export interface TicketManagementVO { + id?: number + subjectId?: string + planId?: string + planNo?: string + deviceName?: string + planType?: string | number + configName?: string + jobStatus?: string | number + jobResult?: string + jobUser?: string + taskTime?: string + taskEndTime?: string + remark?: string + creator?: string + createTime?: string +} + +export interface TicketResultVO { + id?: number + inspectionItemName?: string + inspectionMethod?: string + judgmentCriteria?: string + inspectionResult?: string | number + images?: string + remark?: string + inspectionTime?: string + inspector?: string + managementId?: string | number + createTime?: string +} + +export const TicketManagementApi = { + getTicketManagementPage: async (params: any) => { + return await request.get({ url: `/mes/mold-ticket-management/page`, params }) + }, + + batchUpdateTicketStatus: async (params: { ids: string; jobStatus: string | number }) => { + return await request.put({ url: `/mes/mold-ticket-management/batchUpdateStatus`, params }) + }, + + getTicketResultsPage: async (params: any) => { + return await request.get({ url: `/mes/mold-ticket-results/page`, params }) + }, + + batchUpdateTicketResults: async (data: TicketResultVO[]) => { + return await request.put({ url: `/mes/mold-ticket-results/batchUpdate`, data }) + } +} diff --git a/src/views/mold/workOrderInquiry/components/TicketResultDialog.vue b/src/views/mold/workOrderInquiry/components/TicketResultDialog.vue new file mode 100644 index 00000000..d1966240 --- /dev/null +++ b/src/views/mold/workOrderInquiry/components/TicketResultDialog.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/views/mold/workOrderInquiry/index.vue b/src/views/mold/workOrderInquiry/index.vue index 6b721750..6b4cbe3d 100644 --- a/src/views/mold/workOrderInquiry/index.vue +++ b/src/views/mold/workOrderInquiry/index.vue @@ -92,8 +92,8 @@ import { dateFormatter } from '@/utils/formatTime' import { getStrDictOptions } from '@/utils/dict' import { useDictStoreWithOut } from '@/store/modules/dict' -import { TicketManagementApi, TicketManagementVO } from '@/api/mes/ticketManagement' -import TicketResultDialog from '@/views/mes/workOrderManagement/components/TicketResultDialog.vue' +import { TicketManagementApi, TicketManagementVO } from '@/api/mold/ticketManagement' +import TicketResultDialog from '@/views/mold/workOrderInquiry/components/TicketResultDialog.vue' defineOptions({ name: 'MoldWorkOrderInquiry' }) From 826881f365fe52b75205821e019b2f4d04636855 Mon Sep 17 00:00:00 2001 From: hwj Date: Wed, 14 Jan 2026 10:46:08 +0800 Subject: [PATCH 02/13] =?UTF-8?q?style=EF=BC=9A=E8=AE=BE=E5=A4=87=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E4=BB=BB=E5=8A=A1=E7=AE=A1=E7=90=86=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=A1=B9=E7=9B=AE=E8=A1=A8=E5=8D=95=E5=AD=97=E6=AE=B5?= =?UTF-8?q?/=E5=BF=85=E5=A1=AB=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/mes/organization/index.ts | 1 + .../mes/energydevice/EnergyDeviceForm.vue | 90 +++++++++++++++---- .../mes/taskManagement/TaskManagementForm.vue | 4 +- 3 files changed, 76 insertions(+), 19 deletions(-) diff --git a/src/api/mes/organization/index.ts b/src/api/mes/organization/index.ts index 9510afbd..738ea9b3 100644 --- a/src/api/mes/organization/index.ts +++ b/src/api/mes/organization/index.ts @@ -19,6 +19,7 @@ export interface OrganizationVO { export type DeviceParameterAnalysisNodeVO = { id: number | string name: string + parentId?: number | string equipments?: { id: number | string name: string diff --git a/src/views/mes/energydevice/EnergyDeviceForm.vue b/src/views/mes/energydevice/EnergyDeviceForm.vue index 73861c1f..37d642f4 100644 --- a/src/views/mes/energydevice/EnergyDeviceForm.vue +++ b/src/views/mes/energydevice/EnergyDeviceForm.vue @@ -29,17 +29,19 @@ - - - + /> @@ -53,7 +55,6 @@ v-model="rule.pointValue" :data="equipmentTree" :props="treeSelectProps" - check-strictly filterable clearable class="!w-full" @@ -83,7 +84,7 @@ :disabled="formData.operationRulesVOList.length <= 1" @click="removeRule" > - + @@ -108,6 +109,8 @@ import { EnergyDeviceApi, EnergyDeviceVO } from '@/api/mes/energydevice' import {EnergyTypeApi, EnergyTypeVO} from "@/api/mes/energytype"; import { OrganizationApi, DeviceParameterAnalysisNodeVO } from '@/api/mes/organization' +import { Remove } from '@element-plus/icons-vue' +import { handleTree } from '@/utils/tree' /** 能源设备 表单 */ defineOptions({ name: 'EnergyDeviceForm' }) @@ -147,7 +150,52 @@ const formRules = reactive({ const formRef = ref() // 表单 Ref const analysisLoading = ref(false) -const analysisList = ref([]) +type OrgAnalysisNode = DeviceParameterAnalysisNodeVO & { children?: OrgAnalysisNode[] } + +const analysisList = ref([]) + +const analysisTree = computed(() => { + const list = analysisList.value ?? [] + if (!list.length) return [] as OrgAnalysisNode[] + + const hasParentId = list.some((n) => (n as any).parentId !== undefined && (n as any).parentId !== null) + if (!hasParentId) { + return list.map((n) => ({ ...n })) as OrgAnalysisNode[] + } + + const cloned = list.map((n) => ({ ...n })) as OrgAnalysisNode[] + return handleTree(cloned as any[], 'id', 'parentId', 'children') as OrgAnalysisNode[] +}) + +type OrgSelectNode = { + id: number | string + name: string + children?: OrgSelectNode[] +} + +const orgSelectTree = computed(() => { + const tree = analysisTree.value ?? [] + if (!tree.length) return [] as OrgSelectNode[] + + const pruneAndAttach = (nodes: OrgAnalysisNode[]): OrgSelectNode[] => { + const kept: OrgSelectNode[] = [] + nodes.forEach((node) => { + const childNodes = Array.isArray(node.children) ? pruneAndAttach(node.children) : [] + const hasValidEquipment = (node?.equipments ?? []).some((eq) => (eq?.parameters ?? []).length > 0) + if (!hasValidEquipment && !childNodes.length) return + kept.push({ id: node.id, name: node.name, children: childNodes.length ? childNodes : undefined }) + }) + return kept + } + + return pruneAndAttach(tree) +}) + +const orgTreeSelectProps = { + label: 'name', + children: 'children', + value: 'id' +} const treeSelectProps = { label: 'name', @@ -164,15 +212,21 @@ const currentOrgNode = computed(() => { const equipmentTree = computed(() => { const equipments = currentOrgNode.value?.equipments ?? [] - return equipments.map((eq) => ({ - id: `device:${eq.id}`, - name: eq.name, - disabled: true, - children: (eq.parameters ?? []).map((p) => ({ - id: `${eq.id}:${p.id}`, - name: `${eq.name}: ${p.name}` - })) - })) + return equipments + .map((eq) => { + const params = eq.parameters ?? [] + if (!params.length) return null + return { + id: `device:${eq.id}`, + name: eq.name, + disabled: true, + children: params.map((p) => ({ + id: `${eq.id}:${p.id}`, + name: `${eq.name}: ${p.name}` + })) + } + }) + .filter(Boolean) as any[] }) /** 打开弹窗 */ diff --git a/src/views/mes/taskManagement/TaskManagementForm.vue b/src/views/mes/taskManagement/TaskManagementForm.vue index 55c5a877..197b7897 100644 --- a/src/views/mes/taskManagement/TaskManagementForm.vue +++ b/src/views/mes/taskManagement/TaskManagementForm.vue @@ -152,7 +152,9 @@ const formData = ref({ const formRules = reactive({ name: [{ required: true, message: '名称不能为空', trigger: 'blur' }], taskType: [{ required: true, message: '类型不能为空', trigger: 'change' }], - enabled: [{ required: true, message: '是否启用不能为空', trigger: 'change' }] + enabled: [{ required: true, message: '是否启用不能为空', trigger: 'change' }], + deviceList: [{ required: true, message: '设备列表不能为空', trigger: 'change' }], + projectForm: [{ required: true, message: '项目表单不能为空', trigger: 'change' }], }) const resetForm = () => { From a993027475568a3f2faa7c3ba351592cb3dab6ac Mon Sep 17 00:00:00 2001 From: hwj Date: Wed, 14 Jan 2026 11:21:24 +0800 Subject: [PATCH 03/13] =?UTF-8?q?style=EF=BC=9A=E8=AE=BE=E5=A4=87=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E4=BB=BB=E5=8A=A1=E7=AE=A1=E7=90=86=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=A1=B9=E7=9B=AE=E8=A1=A8=E5=8D=95=E5=AD=97=E6=AE=B5?= =?UTF-8?q?/=E5=BF=85=E5=A1=AB=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mes/taskManagement/index.vue | 55 +++++++++++++++++++++----- 1 file changed, 46 insertions(+), 9 deletions(-) diff --git a/src/views/mes/taskManagement/index.vue b/src/views/mes/taskManagement/index.vue index 730b3931..f667c074 100644 --- a/src/views/mes/taskManagement/index.vue +++ b/src/views/mes/taskManagement/index.vue @@ -22,13 +22,16 @@ - + > + + @@ -71,7 +74,7 @@ - - + @@ -124,6 +127,7 @@ import { DICT_TYPE } from '@/utils/dict' import { dateFormatter, dateFormatter2 } from '@/utils/formatTime' import download from '@/utils/download' import { TaskManagementApi, TaskManagementVO } from '@/api/mes/taskManagement' +import { PlanMaintenanceApi } from '@/api/mes/planmaintenance' import TaskManagementForm from './TaskManagementForm.vue' defineOptions({ name: 'TaskManagement' }) @@ -142,19 +146,52 @@ const total = ref(0) const exportLoading = ref(false) const selectedIds = ref([]) +type PlanOption = { + id: number | string + planName: string +} + +const planOptions = ref([]) + const queryParams = reactive({ pageNo: 1, pageSize: 10, name: undefined as string | undefined, taskType: undefined as number | undefined, - projectForm: undefined as string | undefined + projectForm: [] as string[] }) const queryFormRef = ref() +const parseIdsValue = (value: any): string[] => { + if (!value) return [] + if (Array.isArray(value)) return value.map((v) => String(v).trim()).filter(Boolean) + return String(value) + .split(',') + .map((v) => v.trim()) + .filter(Boolean) +} + +const toCommaSeparatedIds = (value: any): string | undefined => { + const ids = parseIdsValue(value) + return ids.length ? ids.join(',') : undefined +} + +const ensurePlanOptionsLoaded = async () => { + const planRes = await PlanMaintenanceApi.getPlanMaintenancePage({ pageNo: 1, pageSize: 100 }) + planOptions.value = (planRes?.list ?? []) as PlanOption[] +} + +const buildQueryParams = () => { + return { + ...queryParams, + projectForm: toCommaSeparatedIds(queryParams.projectForm) + } +} + const getList = async () => { loading.value = true try { - const data = await TaskManagementApi.getTaskManagementPage(queryParams) + const data = await TaskManagementApi.getTaskManagementPage(buildQueryParams()) list.value = data.list total.value = data.total } finally { @@ -211,7 +248,7 @@ const handleExport = async () => { try { await message.exportConfirm() exportLoading.value = true - const params: Record = { ...queryParams } + const params: Record = buildQueryParams() if (selectedIds.value.length > 0) { params.ids = selectedIds.value.join(',') } @@ -224,6 +261,6 @@ const handleExport = async () => { } onMounted(() => { - getList() + Promise.all([ensurePlanOptionsLoaded(), getList()]) }) From 93b604b501e37ed9578ae9e273817a3422147d26 Mon Sep 17 00:00:00 2001 From: hwj Date: Wed, 14 Jan 2026 11:29:29 +0800 Subject: [PATCH 04/13] =?UTF-8?q?style=EF=BC=9A=E8=AE=BE=E5=A4=87=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E4=BB=BB=E5=8A=A1=E7=AE=A1=E7=90=86-=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E8=A1=A8=E5=8D=95=E6=8E=A5=E5=8F=A3=E4=BC=A0=E5=8F=82?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mes/taskManagement/TaskManagementForm.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/mes/taskManagement/TaskManagementForm.vue b/src/views/mes/taskManagement/TaskManagementForm.vue index 197b7897..4db62629 100644 --- a/src/views/mes/taskManagement/TaskManagementForm.vue +++ b/src/views/mes/taskManagement/TaskManagementForm.vue @@ -129,7 +129,7 @@ const toCommaSeparatedIds = (value: any): string | undefined => { const ensureOptionsLoaded = async () => { const [deviceRes, planRes, userRes] = await Promise.all([ DeviceLedgerApi.getDeviceLedgerPage({}), - PlanMaintenanceApi.getPlanMaintenancePage({ pageNo: 1, pageSize: 100 }), + PlanMaintenanceApi.getPlanMaintenancePage({}), getSimpleUserList() ]) deviceOptions.value = (deviceRes?.list ?? []) as DeviceOption[] From 7b23889297a5a04b77899e81cce4fa2c1d957161 Mon Sep 17 00:00:00 2001 From: hwj Date: Wed, 14 Jan 2026 11:35:03 +0800 Subject: [PATCH 05/13] =?UTF-8?q?style=EF=BC=9A=E6=A8=A1=E5=85=B7=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E4=BB=BB=E5=8A=A1=E9=85=8D=E7=BD=AE=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/mold/taskManagement/index.ts | 47 ++++++++++++ .../TaskConfigurationForm.vue | 71 ++++++------------- src/views/mold/taskConfiguration/index.vue | 64 +++++++++++++---- 3 files changed, 122 insertions(+), 60 deletions(-) create mode 100644 src/api/mold/taskManagement/index.ts diff --git a/src/api/mold/taskManagement/index.ts b/src/api/mold/taskManagement/index.ts new file mode 100644 index 00000000..8aa27b38 --- /dev/null +++ b/src/api/mold/taskManagement/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +export interface TaskManagementVO { + id?: number + name?: string + taskType?: number + deviceList?: string + projectForm?: string + startDate?: string + endDate?: string + cronExpression?: string + operableUsers?: string + enabled?: boolean + execFrequency?: string + frequencyValue?: string + time?: string + validMinutes?: number + creator?: string + createTime?: string + updateTime?: string +} + +export const TaskManagementApi = { + getTaskManagementPage: async (params: any) => { + return await request.get({ url: `/mes/mold-task-management/page`, params }) + }, + + createTaskManagementTicket: async (id: number | string) => { + return await request.post({ url: `/mes/mold-task-management/createTicket`, params: { id } }) + }, + + createTaskManagement: async (data: TaskManagementVO) => { + return await request.post({ url: `/mes/mold-task-management/create`, data }) + }, + + updateTaskManagement: async (data: TaskManagementVO) => { + return await request.put({ url: `/mes/mold-task-management/update`, data }) + }, + + deleteTaskManagement: async (ids: string) => { + return await request.delete({ url: `/mes/mold-task-management/delete?ids=` + ids }) + }, + + exportTaskManagement: async (params: any) => { + return await request.download({ url: `/mes/mold-task-management/export-excel`, params }) + } +} diff --git a/src/views/mold/taskConfiguration/TaskConfigurationForm.vue b/src/views/mold/taskConfiguration/TaskConfigurationForm.vue index 369e21b0..a59e5014 100644 --- a/src/views/mold/taskConfiguration/TaskConfigurationForm.vue +++ b/src/views/mold/taskConfiguration/TaskConfigurationForm.vue @@ -1,12 +1,6 @@ - + @@ -123,7 +126,8 @@ import { DICT_TYPE } from '@/utils/dict' import { dateFormatter, dateFormatter2 } from '@/utils/formatTime' import download from '@/utils/download' -import { TaskManagementApi, TaskManagementVO } from '@/api/mes/taskManagement' +import { TaskManagementApi, TaskManagementVO } from '@/api/mold/taskManagement' +import { PlanMaintenanceApi } from '@/api/mold/planmaintenance' import TaskConfigurationForm from './TaskConfigurationForm.vue' defineOptions({ name: 'MoldTaskConfiguration' }) @@ -142,19 +146,52 @@ const total = ref(0) const exportLoading = ref(false) const selectedIds = ref([]) +type PlanOption = { + id: number | string + planName: string +} + +const planOptions = ref([]) + const queryParams = reactive({ pageNo: 1, pageSize: 10, name: undefined as string | undefined, taskType: undefined as number | undefined, - projectForm: undefined as string | undefined + projectForm: [] as string[] }) const queryFormRef = ref() +const parseIdsValue = (value: any): string[] => { + if (!value) return [] + if (Array.isArray(value)) return value.map((v) => String(v).trim()).filter(Boolean) + return String(value) + .split(',') + .map((v) => v.trim()) + .filter(Boolean) +} + +const toCommaSeparatedIds = (value: any): string | undefined => { + const ids = parseIdsValue(value) + return ids.length ? ids.join(',') : undefined +} + +const ensurePlanOptionsLoaded = async () => { + const planRes = await PlanMaintenanceApi.getPlanMaintenancePage({ pageNo: 1, pageSize: 100 }) + planOptions.value = (planRes?.list ?? []) as PlanOption[] +} + +const buildQueryParams = () => { + return { + ...queryParams, + projectForm: toCommaSeparatedIds(queryParams.projectForm) + } +} + const getList = async () => { loading.value = true try { - const data = await TaskManagementApi.getTaskManagementPage(queryParams) + const data = await TaskManagementApi.getTaskManagementPage(buildQueryParams()) list.value = data.list total.value = data.total } finally { @@ -211,7 +248,7 @@ const handleExport = async () => { try { await message.exportConfirm() exportLoading.value = true - const params: Record = { ...queryParams } + const params: Record = buildQueryParams() if (selectedIds.value.length > 0) { params.ids = selectedIds.value.join(',') } @@ -223,8 +260,11 @@ const handleExport = async () => { } } -onMounted(() => { - getList() +onMounted(async () => { + try { + await ensurePlanOptionsLoaded() + } finally { + getList() + } }) - From c35c026b5088b984640f933b382fd9e829604050 Mon Sep 17 00:00:00 2001 From: hwj Date: Wed, 14 Jan 2026 14:57:05 +0800 Subject: [PATCH 06/13] =?UTF-8?q?style=EF=BC=9A=E6=A8=A1=E5=85=B7=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E5=B7=A5=E5=8D=95=E6=9F=A5=E8=AF=A2=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=9C=B0=E5=9D=80=E6=9B=B4=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/mold/taskManagement/index.ts | 2 +- src/views/mold/taskConfiguration/TaskConfigurationForm.vue | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/api/mold/taskManagement/index.ts b/src/api/mold/taskManagement/index.ts index 8aa27b38..4e71e197 100644 --- a/src/api/mold/taskManagement/index.ts +++ b/src/api/mold/taskManagement/index.ts @@ -26,7 +26,7 @@ export const TaskManagementApi = { }, createTaskManagementTicket: async (id: number | string) => { - return await request.post({ url: `/mes/mold-task-management/createTicket`, params: { id } }) + return await request.post({ url: `/mes/mold-task-management/createMoldTicket`, params: { id } }) }, createTaskManagement: async (data: TaskManagementVO) => { diff --git a/src/views/mold/taskConfiguration/TaskConfigurationForm.vue b/src/views/mold/taskConfiguration/TaskConfigurationForm.vue index a59e5014..03ff79ef 100644 --- a/src/views/mold/taskConfiguration/TaskConfigurationForm.vue +++ b/src/views/mold/taskConfiguration/TaskConfigurationForm.vue @@ -10,10 +10,10 @@ 保养 - + @@ -74,7 +74,7 @@ const formRef = ref() type DeviceOption = { id: number | string - deviceName: string + name: string } type PlanOption = { From 8f60e770d815c974c382ad6d5de99e3c574e2196 Mon Sep 17 00:00:00 2001 From: hwj Date: Wed, 14 Jan 2026 15:44:38 +0800 Subject: [PATCH 07/13] =?UTF-8?q?style=EF=BC=9A=E8=AE=BE=E5=A4=87=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E4=BB=BB=E5=8A=A1=E7=AE=A1=E7=90=86=E4=BC=A0?= =?UTF-8?q?=E5=8F=82=E8=B0=83=E6=95=B4/=E8=B5=B7=E6=AD=A2=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E5=BF=85=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/mes/taskManagement/index.ts | 2 +- .../mes/taskManagement/TaskManagementForm.vue | 22 ++++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/api/mes/taskManagement/index.ts b/src/api/mes/taskManagement/index.ts index e1182d4f..ed2a14be 100644 --- a/src/api/mes/taskManagement/index.ts +++ b/src/api/mes/taskManagement/index.ts @@ -5,7 +5,7 @@ export interface TaskManagementVO { name?: string taskType?: number deviceList?: string - projectForm?: string + projectForm?: string | number startDate?: string endDate?: string cronExpression?: string diff --git a/src/views/mes/taskManagement/TaskManagementForm.vue b/src/views/mes/taskManagement/TaskManagementForm.vue index 4db62629..2611f0be 100644 --- a/src/views/mes/taskManagement/TaskManagementForm.vue +++ b/src/views/mes/taskManagement/TaskManagementForm.vue @@ -31,13 +31,12 @@ - + @@ -129,7 +128,7 @@ const toCommaSeparatedIds = (value: any): string | undefined => { const ensureOptionsLoaded = async () => { const [deviceRes, planRes, userRes] = await Promise.all([ DeviceLedgerApi.getDeviceLedgerPage({}), - PlanMaintenanceApi.getPlanMaintenancePage({}), + PlanMaintenanceApi.getPlanMaintenancePage({ pageNo: 1, pageSize: 100 }), getSimpleUserList() ]) deviceOptions.value = (deviceRes?.list ?? []) as DeviceOption[] @@ -142,7 +141,7 @@ const formData = ref({ name: undefined as string | undefined, taskType: undefined as number | undefined, deviceList: [] as string[], - projectForm: [] as string[], + projectForm: undefined as number | undefined, dateRange: [] as string[], cronExpression: undefined as string | undefined, operableUsers: [] as string[], @@ -155,6 +154,7 @@ const formRules = reactive({ enabled: [{ required: true, message: '是否启用不能为空', trigger: 'change' }], deviceList: [{ required: true, message: '设备列表不能为空', trigger: 'change' }], projectForm: [{ required: true, message: '项目表单不能为空', trigger: 'change' }], + dateRange: [{required: true, message: '起止日期不能为空', trigger: 'change' }] }) const resetForm = () => { @@ -163,7 +163,7 @@ const resetForm = () => { name: undefined, taskType: undefined, deviceList: [], - projectForm: [], + projectForm: undefined, dateRange: [], cronExpression: undefined, operableUsers: [], @@ -186,14 +186,16 @@ const open = async (type: string, row?: TaskManagementVO) => { formData.value.deviceList = parseIdsValue((row as any).deviceList) const projectFormIds = parseIdsValue((row as any).projectForm) if (projectFormIds.length) { - formData.value.projectForm = projectFormIds + const n = Number(projectFormIds[0]) + formData.value.projectForm = Number.isFinite(n) ? n : undefined } else { const projectFormNames = parseIdsValue((row as any).projectFormName) - const mappedIds = projectFormNames + const mapped = projectFormNames .map((name) => planOptions.value.find((p) => p.planName === name)?.id) .filter((id) => id !== undefined && id !== null) - .map((id) => String(id)) - formData.value.projectForm = mappedIds + .map((id) => Number(id)) + const firstId = mapped[0] + formData.value.projectForm = typeof firstId === 'number' && Number.isFinite(firstId) ? firstId : undefined } formData.value.dateRange = [row.startDate, row.endDate].filter(Boolean) as string[] formData.value.cronExpression = row.cronExpression @@ -222,7 +224,7 @@ const submitForm = async () => { name: formData.value.name, taskType: formData.value.taskType, deviceList: toCommaSeparatedIds((formData.value as any).deviceList), - projectForm: toCommaSeparatedIds((formData.value as any).projectForm), + projectForm: formData.value.projectForm, startDate: startDate || undefined, endDate: endDate || undefined, cronExpression: formData.value.cronExpression, From d95d254a9535cc1eb4eddceeed5889c8381e1e7a Mon Sep 17 00:00:00 2001 From: hwj Date: Wed, 14 Jan 2026 15:48:03 +0800 Subject: [PATCH 08/13] =?UTF-8?q?style=EF=BC=9A=E4=BB=BB=E5=8A=A1=E9=85=8D?= =?UTF-8?q?=E7=BD=AE-=E6=96=B0=E5=A2=9E/=E7=BC=96=E8=BE=91-=E8=B5=B7?= =?UTF-8?q?=E6=AD=A2=E6=97=A5=E6=9C=9F=E5=BF=85=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TaskConfigurationForm.vue | 29 ++++++++----------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/src/views/mold/taskConfiguration/TaskConfigurationForm.vue b/src/views/mold/taskConfiguration/TaskConfigurationForm.vue index 03ff79ef..c781b4ab 100644 --- a/src/views/mold/taskConfiguration/TaskConfigurationForm.vue +++ b/src/views/mold/taskConfiguration/TaskConfigurationForm.vue @@ -10,23 +10,18 @@ 保养 - - - + + + - + - @@ -39,8 +34,7 @@ v-model="formData.dateRange" value-format="YYYY-MM-DD" type="daterange" start-pl - {{ dict.label }} @@ -115,7 +109,7 @@ const formData = ref({ id: undefined as number | undefined, name: undefined as string | undefined, taskType: undefined as number | undefined, - deviceList: [] as string[], + moldList: [] as string[], projectForm: [] as string[], dateRange: [] as string[], cronExpression: undefined as string | undefined, @@ -127,8 +121,9 @@ const formRules = reactive({ name: [{ required: true, message: '名称不能为空', trigger: 'blur' }], taskType: [{ required: true, message: '类型不能为空', trigger: 'change' }], enabled: [{ required: true, message: '是否启用不能为空', trigger: 'change' }], - deviceList: [{ required: true, message: '设备列表不能为空', trigger: 'change' }], + moldList: [{ required: true, message: '设备列表不能为空', trigger: 'change' }], projectForm: [{ required: true, message: '项目表单不能为空', trigger: 'change' }], + dateRange: [{ required: true, message: '起止日期不能为空', trigger: 'change' }] }) const resetForm = () => { @@ -136,7 +131,7 @@ const resetForm = () => { id: undefined, name: undefined, taskType: undefined, - deviceList: [], + moldList: [], projectForm: [], dateRange: [], cronExpression: undefined, @@ -157,7 +152,7 @@ const open = async (type: string, row?: TaskManagementVO) => { formData.value.id = row.id formData.value.name = row.name formData.value.taskType = row.taskType - formData.value.deviceList = parseIdsValue((row as any).deviceList) + formData.value.moldList = parseIdsValue((row as any).moldList) const projectFormIds = parseIdsValue((row as any).projectForm) if (projectFormIds.length) { formData.value.projectForm = projectFormIds @@ -195,7 +190,7 @@ const submitForm = async () => { id: formData.value.id, name: formData.value.name, taskType: formData.value.taskType, - deviceList: toCommaSeparatedIds((formData.value as any).deviceList), + moldList: toCommaSeparatedIds((formData.value as any).moldList), projectForm: toCommaSeparatedIds((formData.value as any).projectForm), startDate: startDate || undefined, endDate: endDate || undefined, From de5ae3866c257a4cf232838c95b41d6d186dbbef Mon Sep 17 00:00:00 2001 From: hwj Date: Wed, 14 Jan 2026 15:49:26 +0800 Subject: [PATCH 09/13] =?UTF-8?q?style=EF=BC=9A=E5=B7=A5=E5=8D=95=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E5=88=97=E8=A1=A8=E5=B1=8F=E8=94=BD=E5=A4=87?= =?UTF-8?q?=E6=B3=A8=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mes/workOrderManagement/index.vue | 2 +- src/views/mold/workOrderInquiry/index.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/mes/workOrderManagement/index.vue b/src/views/mes/workOrderManagement/index.vue index 7afbc538..d64fd0e0 100644 --- a/src/views/mes/workOrderManagement/index.vue +++ b/src/views/mes/workOrderManagement/index.vue @@ -73,7 +73,7 @@ v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" - - + diff --git a/src/views/mold/workOrderInquiry/index.vue b/src/views/mold/workOrderInquiry/index.vue index 6b4cbe3d..03486691 100644 --- a/src/views/mold/workOrderInquiry/index.vue +++ b/src/views/mold/workOrderInquiry/index.vue @@ -78,7 +78,7 @@ - - + From 0419688a0ffa629e5cbd125497ada375aceb83dc Mon Sep 17 00:00:00 2001 From: hwj Date: Wed, 14 Jan 2026 16:53:22 +0800 Subject: [PATCH 10/13] =?UTF-8?q?style=EF=BC=9A=E6=A8=A1=E5=85=B7=E7=AE=A1?= =?UTF-8?q?=E7=90=86-=E5=B7=A5=E5=8D=95=E7=AE=A1=E7=90=86-=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=A8=A1=E5=85=B7=E5=90=8D=E7=A7=B0=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mold/workOrderInquiry/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/mold/workOrderInquiry/index.vue b/src/views/mold/workOrderInquiry/index.vue index 03486691..1981cc14 100644 --- a/src/views/mold/workOrderInquiry/index.vue +++ b/src/views/mold/workOrderInquiry/index.vue @@ -54,7 +54,7 @@ - +