diff --git a/src/api/mes/deviceledger/index.ts b/src/api/mes/deviceledger/index.ts index eed0d1d0..aa625753 100644 --- a/src/api/mes/deviceledger/index.ts +++ b/src/api/mes/deviceledger/index.ts @@ -17,8 +17,8 @@ export interface DeviceLedgerVO { deviceLocation: string // 设备位置 useDept?: string // 使用部门 deviceManager: string // 设备负责人 - productionDate: Date // 设备生产日期 - factoryEntryDate: Date // 设备入厂日期 + productionDate: string | number | Date // 设备生产日期 + factoryEntryDate: string | number | Date // 设备入厂日期 deviceRemark: string // 设备备注 remark: string // 备注 creator?: string // 创建人 diff --git a/src/views/mes/deviceledger/DeviceLedgerForm.vue b/src/views/mes/deviceledger/DeviceLedgerForm.vue index c9d3a24c..465ce406 100644 --- a/src/views/mes/deviceledger/DeviceLedgerForm.vue +++ b/src/views/mes/deviceledger/DeviceLedgerForm.vue @@ -87,13 +87,13 @@ - + - + @@ -156,6 +156,7 @@ import { DeviceLedgerApi, DeviceLedgerVO } from '@/api/mes/deviceledger' import { DeviceTypeApi, DeviceTypeTreeVO } from '@/api/mes/devicetype' import { getSimpleUserList, UserVO } from '@/api/system/user' +import { formatDate } from '@/utils/formatTime' import type { FormRules } from 'element-plus' /** 设备类型 表单 */ @@ -178,6 +179,21 @@ const parseIdsValue = (value: any): number[] => { .filter((v) => !Number.isNaN(v)) } +const normalizeYmd = (value: any): string | undefined => { + if (value === null || value === undefined || value === '') return undefined + if (typeof value === 'string') { + const trimmed = value.trim() + const matched = trimmed.match(/^(\d{4}-\d{2}-\d{2})/) + if (matched?.[1]) return matched[1] + const parsed = Date.parse(trimmed) + if (!Number.isNaN(parsed)) return formatDate(new Date(parsed), 'YYYY-MM-DD') + return trimmed + } + if (typeof value === 'number') return formatDate(new Date(value), 'YYYY-MM-DD') + if (value instanceof Date) return formatDate(value, 'YYYY-MM-DD') + return formatDate(new Date(value), 'YYYY-MM-DD') +} + const initFormData = () => ({ id: undefined, deviceCode: undefined, @@ -242,7 +258,9 @@ const open = async (type: string, id?: number, defaultDeviceTypeId?: number) => formData.value = { ...initFormData(), ...(detail as any), - deviceManagerIds: parseIdsValue((detail as any)?.deviceManager) + deviceManagerIds: parseIdsValue((detail as any)?.deviceManager), + productionDate: normalizeYmd((detail as any)?.productionDate), + factoryEntryDate: normalizeYmd((detail as any)?.factoryEntryDate) } } finally { formLoading.value = false @@ -261,6 +279,8 @@ const submitForm = async () => { try { const data = { ...(formData.value as any), + productionDate: normalizeYmd(formData.value.productionDate), + factoryEntryDate: normalizeYmd(formData.value.factoryEntryDate), deviceManager: formData.value.deviceManagerIds?.length ? formData.value.deviceManagerIds.join(',') : undefined } as unknown as DeviceLedgerVO delete (data as any).deviceManagerIds diff --git a/src/views/mes/deviceledger/index.vue b/src/views/mes/deviceledger/index.vue index 7d6c65e5..8968bfa5 100644 --- a/src/views/mes/deviceledger/index.vue +++ b/src/views/mes/deviceledger/index.vue @@ -113,8 +113,8 @@ - - + + @@ -198,7 +198,7 @@