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 @@