fix(stocking): 修复编辑回填因 attachment 格式导致的车辆明细不渲染
后端 show 返回的 attachment 为 JSON 字符串时,.map 抛 TypeError 中断整个 items 回填。增加 normalizeAttachment 统一兼容 数组/字符串/空值。 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -974,6 +974,20 @@ export function useStockingForm(isFinal = false, stockingId?: string | number) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 数据回显方法
|
// 数据回显方法
|
||||||
|
// 后端 attachment 可能返回数组或 JSON 字符串(未 decode),统一转数组
|
||||||
|
const normalizeAttachment = (raw: any): any[] => {
|
||||||
|
if (Array.isArray(raw)) return raw
|
||||||
|
if (typeof raw === 'string' && raw.trim()) {
|
||||||
|
try {
|
||||||
|
const parsed = JSON.parse(raw)
|
||||||
|
return Array.isArray(parsed) ? parsed : []
|
||||||
|
} catch {
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
|
||||||
const populateFromDetail = (res: any) => {
|
const populateFromDetail = (res: any) => {
|
||||||
if (!res) return
|
if (!res) return
|
||||||
isPopulating.value = true
|
isPopulating.value = true
|
||||||
@@ -1021,7 +1035,7 @@ export function useStockingForm(isFinal = false, stockingId?: string | number) {
|
|||||||
_echo_vin: Boolean(it.vin),
|
_echo_vin: Boolean(it.vin),
|
||||||
mileage: it.mileage ?? 0,
|
mileage: it.mileage ?? 0,
|
||||||
model_snapshot: it.model_snapshot || '',
|
model_snapshot: it.model_snapshot || '',
|
||||||
attachment_files: (it.attachment || []).map((f: any) => ({
|
attachment_files: normalizeAttachment(it.attachment).map((f: any) => ({
|
||||||
name: f.original_name || f.name || '附件',
|
name: f.original_name || f.name || '附件',
|
||||||
url: f.url || f.file_url || '',
|
url: f.url || f.file_url || '',
|
||||||
file_name: f.file_name || f.url || ''
|
file_name: f.file_name || f.url || ''
|
||||||
|
|||||||
Reference in New Issue
Block a user