修复后台售后问题单固化验收图同一图片重复展示
This commit is contained in:
@@ -28,6 +28,7 @@ import {
|
|||||||
import type { UploadedFile, WorkerAfterSalesCase, WorkOrder } from '@/types/worker-platform'
|
import type { UploadedFile, WorkerAfterSalesCase, WorkOrder } from '@/types/worker-platform'
|
||||||
import { ADMIN_DEFAULT_PAGE_SIZE, buildAdminTablePagination } from '@/utils/admin-pagination'
|
import { ADMIN_DEFAULT_PAGE_SIZE, buildAdminTablePagination } from '@/utils/admin-pagination'
|
||||||
import { formatAdminDateTime } from '@/utils/admin-time'
|
import { formatAdminDateTime } from '@/utils/admin-time'
|
||||||
|
import { uniqueUploadedFiles } from '@/utils/image-identity'
|
||||||
import { asRecord, formatMoney } from './shared'
|
import { asRecord, formatMoney } from './shared'
|
||||||
|
|
||||||
type AfterSalesCreateFormValues = {
|
type AfterSalesCreateFormValues = {
|
||||||
@@ -447,7 +448,10 @@ function getAfterSalesSnapshotFiles(item: WorkerAfterSalesCase): UploadedFile[]
|
|||||||
const acceptance = asRecord(snapshot.acceptance)
|
const acceptance = asRecord(snapshot.acceptance)
|
||||||
const files = Array.isArray(acceptance.files) ? acceptance.files : []
|
const files = Array.isArray(acceptance.files) ? acceptance.files : []
|
||||||
const imageUrls = Array.isArray(acceptance.imageUrls) ? acceptance.imageUrls : []
|
const imageUrls = Array.isArray(acceptance.imageUrls) ? acceptance.imageUrls : []
|
||||||
return [
|
// 验收资料里同一张图会同时存在于 files 与 imageUrls(历史冗余表示),
|
||||||
|
// 必须按图片身份去重,否则固化验收图会把同一张图重复渲染多次。
|
||||||
|
return uniqueUploadedFiles(
|
||||||
|
[
|
||||||
...files.map((value) => asRecord(value)),
|
...files.map((value) => asRecord(value)),
|
||||||
...imageUrls.map((url) => asRecord({ url: String(url || '') })),
|
...imageUrls.map((url) => asRecord({ url: String(url || '') })),
|
||||||
]
|
]
|
||||||
@@ -464,7 +468,8 @@ function getAfterSalesSnapshotFiles(item: WorkerAfterSalesCase): UploadedFile[]
|
|||||||
size: Number(file.size || 0),
|
size: Number(file.size || 0),
|
||||||
} satisfies UploadedFile
|
} satisfies UploadedFile
|
||||||
})
|
})
|
||||||
.filter((file): file is UploadedFile => file !== null)
|
.filter((file): file is UploadedFile => file !== null),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export default AfterSalesPanel
|
export default AfterSalesPanel
|
||||||
|
|||||||
Reference in New Issue
Block a user