diff --git a/src/views/mes/planMaintenance/PlanMaintenanceForm.vue b/src/views/mes/planMaintenance/PlanMaintenanceForm.vue index 123a3444..9ef6641f 100644 --- a/src/views/mes/planMaintenance/PlanMaintenanceForm.vue +++ b/src/views/mes/planMaintenance/PlanMaintenanceForm.vue @@ -62,11 +62,23 @@ const ensureSubjectOptionsLoaded = async () => { const parseIds = (value: any): Array => { if (!value) return [] - if (Array.isArray(value)) return value - return String(value) - .split(',') - .map((v) => v.trim()) - .filter((v) => v !== '') + const raw = Array.isArray(value) + ? value + : String(value) + .split(',') + .map((v) => v.trim()) + .filter((v) => v !== '') + + return raw + .map((v) => { + if (typeof v === 'number') return v + const s = String(v).trim() + if (!s) return undefined + const n = Number(s) + if (Number.isFinite(n) && String(n) === s) return n + return s + }) + .filter((v): v is number | string => v !== undefined) } const initFormData = () => ({ @@ -98,7 +110,7 @@ const open = async (type: 'create' | 'update', row?: Partial) planName: (row.planName as any) ?? '', planType: (row.planType as any) ?? undefined, description: (row.description as any) ?? '', - subjectIds: parseIds((row as any).subjectIdS) + subjectIds: parseIds((row as any).subjectIds ?? (row as any).subjectIdS) } } }