feat: 订单资料图片完整展示与打手快捷复制

- 修复资料截图 URL 过期问题:读取工单时统一重签截图访问链接(后台/打手端/收集页)
- 修复后台手动补资料截图从未保存的问题(提交真实上传列表)
- 收集页提交后回显已上传截图,补资料弹窗重开回显已有截图
- 打手端我的订单新增快捷复制:复制信息(多行标签:值)+ 一键复制图片(JPEG 自动转 PNG)
- 快捷复制列与后台资料列同款展示:全字段逐行 + 截图缩略图
- 后台接单工单资料列优化:显示全部字段与截图缩略图
- 详情抽屉移除冗余的资料要求卡片
This commit is contained in:
yml2213
2026-08-14 18:13:21 +08:00
parent 85fa8f11fd
commit f2e08a4fbc
6 changed files with 191 additions and 47 deletions
@@ -345,6 +345,25 @@ export function mapFinanceRequest(request: WorkerFinanceRequestRow | null | unde
}
}
/** 读取工单资料:刷新买家主页截图等文件的访问链接(签名 15 分钟过期,读取时必须重签) */
export function mapWorkOrderMaterial(value: unknown) {
const material = safeParseJson(value)
const collect =
material.collect && typeof material.collect === 'object' && !Array.isArray(material.collect)
? (material.collect as JsonObject)
: null
if (!collect) {
return material
}
return {
...material,
collect: {
...collect,
screenshots: normalizeUploadedFiles(collect.screenshots).map(refreshUploadedFileUrls),
},
}
}
export function mapWorkOrderAdmin(workOrder: WorkOrderRow) {
return {
workOrderId: Number(workOrder.id),
@@ -369,7 +388,7 @@ export function mapWorkOrderAdmin(workOrder: WorkOrderRow) {
depositThresholdAmount: Number(
workOrder.deposit_threshold_amount || DEFAULT_DEPOSIT_THRESHOLD_AMOUNT,
),
material: safeParseJson(workOrder.material_json),
material: mapWorkOrderMaterial(workOrder.material_json),
requirement: {
fields: resolveRequirementFields(workOrder),
},
@@ -448,10 +467,15 @@ export function mapWorkOrderPublic(workOrder: WorkOrderRow) {
}
export function mapCollectLookupOrder(workOrder: WorkOrderRow) {
const material = mapWorkOrderMaterial(workOrder.material_json)
return {
...mapWorkOrderPublic(workOrder),
fields: resolveRequirementFields(workOrder),
values: resolveCollectSubmittedFieldValues(workOrder),
screenshots:
material.collect && Array.isArray(material.collect.screenshots)
? material.collect.screenshots
: [],
}
}