feat(work-order): 新增一次性补资料链接

This commit is contained in:
2026-11-01 10:46:31 +08:00
parent fba0a13d44
commit 15956e704f
26 changed files with 1768 additions and 4 deletions
@@ -15,6 +15,7 @@ import type {
WorkerDepositUnfreeze,
WorkerFinanceConfig,
WorkerHallConfig,
WorkerMaterialLinkConfig,
WorkerRiskConfig,
WorkerRiskOverview,
WorkerRiskEventList,
@@ -98,6 +99,17 @@ export function saveAdminWorkerHallConfig(
return apiPost<WorkerHallConfig>('/api/v1/admin/worker-platform/hall-config', payload)
}
export function fetchAdminWorkerMaterialLinkConfig() {
return apiGet<WorkerMaterialLinkConfig>('/api/v1/admin/worker-platform/material-link-config')
}
export function saveAdminWorkerMaterialLinkConfig(payload: WorkerMaterialLinkConfig) {
return apiPost<WorkerMaterialLinkConfig>(
'/api/v1/admin/worker-platform/material-link-config',
payload,
)
}
export function fetchAdminWorkerAnnouncement() {
return apiGet<WorkerAnnouncementConfig>('/api/v1/admin/worker-platform/announcement')
}
@@ -754,6 +766,12 @@ export function submitAdminWorkOrderMaterial(
)
}
export function createAdminWorkOrderMaterialLink(workOrderId: number) {
return apiPost<{ token: string; expiresAt: string; reused: boolean }>(
`/api/v1/admin/worker-platform/orders/${workOrderId}/material-link`,
)
}
export function publishAdminWorkOrder(workOrderId: number) {
return apiPost<{
order: WorkOrder
+18
View File
@@ -19,6 +19,24 @@ export async function uploadFile(file: File, scene: string, scope: UploadScope)
return response.data.file
}
/**
* 一次性补资料链接的截图上传。
*
* 与公开 collect/upload 的区别:先把 token 放在路径里,后端会校验链接
* 是否仍可用;链接已使用/过期时不会落文件。
*/
export async function uploadCollectMaterialLinkFile(file: File, scene: string, token: string) {
const uploadTarget = await optimizeImageForUpload(file, scene)
const form = new FormData()
form.append('file', uploadTarget)
form.append('scene', scene)
const response = await apiPostForm<{ file: UploadedFile }>(
`/api/v1/collect/link/${encodeURIComponent(token)}/upload`,
form,
)
return response.data.file
}
/**
* 验收视频上传:视频已在浏览器内压好,这里不再做图片压缩。
* 带上 durationSeconds 供服务端在容器解析不到时长时兜底(见 resolveVideoDuration)。
+19
View File
@@ -1,6 +1,8 @@
import { apiDelete, apiGet, apiPost, apiPut } from '@/lib/http'
import type {
CollectLookupResponse,
CollectMaterialLinkInfo,
CollectMaterialLinkSubmitResult,
UploadedFile,
WorkOrder,
WorkOrderEvent,
@@ -379,6 +381,23 @@ export function submitCollectOrder(payload: {
)
}
export function fetchCollectMaterialLink(token: string) {
return apiGet<CollectMaterialLinkInfo>(`/api/v1/collect/link/${encodeURIComponent(token)}`)
}
export function submitCollectMaterialLink(
token: string,
payload: {
fields: Record<string, string>
screenshots?: UploadedFile[]
},
) {
return apiPost<CollectMaterialLinkSubmitResult>(
`/api/v1/collect/link/${encodeURIComponent(token)}/submit`,
payload,
)
}
// ---------------- 打手端:我要寄卖与手枪库存 ----------------
export type WorkerConsignmentPublishPayload = {