Merge branch 'dev'

This commit is contained in:
2026-11-02 12:04:32 +08:00
38 changed files with 1615 additions and 942 deletions
@@ -15,7 +15,6 @@ import type {
WorkerDepositUnfreeze,
WorkerFinanceConfig,
WorkerHallConfig,
WorkerMaterialLinkConfig,
WorkerRiskConfig,
WorkerRiskOverview,
WorkerRiskEventList,
@@ -102,17 +101,6 @@ 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')
}
@@ -769,9 +757,10 @@ 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 resetAdminWorkOrderMaterialStatus(workOrderId: number) {
return apiPost<{ order: WorkOrder }>(
`/api/v1/admin/worker-platform/orders/${workOrderId}/reset-material`,
)
}
+10 -4
View File
@@ -22,16 +22,22 @@ export async function uploadFile(file: File, scene: string, scope: UploadScope)
/**
* 一次性补资料链接的截图上传。
*
* 与公开 collect/upload 的区别:先把 token 放在路径里,后端会校验链接
* 是否仍可用;链接已使用/过期时不会落文件。
* 与公开 collect/upload 的区别:路径里带平台订单号,多工单时再带 workOrderId;
* 后端会校验对应链接是否仍可用,链接已使用/过期时不会落文件。
*/
export async function uploadCollectMaterialLinkFile(file: File, scene: string, token: string) {
export async function uploadCollectMaterialLinkFile(
file: File,
scene: string,
code: string,
workOrderId?: number,
) {
const uploadTarget = await optimizeImageForUpload(file, scene)
const form = new FormData()
form.append('file', uploadTarget)
form.append('scene', scene)
const query = workOrderId ? `?workOrderId=${encodeURIComponent(String(workOrderId))}` : ''
const response = await apiPostForm<{ file: UploadedFile }>(
`/api/v1/collect/link/${encodeURIComponent(token)}/upload`,
`/api/v1/collect/link/${encodeURIComponent(code)}/upload${query}`,
form,
)
return response.data.file
+5 -4
View File
@@ -381,19 +381,20 @@ export function submitCollectOrder(payload: {
)
}
export function fetchCollectMaterialLink(token: string) {
return apiGet<CollectMaterialLinkInfo>(`/api/v1/collect/link/${encodeURIComponent(token)}`)
export function fetchCollectMaterialLink(code: string) {
return apiGet<CollectMaterialLinkInfo>(`/api/v1/collect/link/${encodeURIComponent(code)}`)
}
export function submitCollectMaterialLink(
token: string,
code: string,
payload: {
workOrderId?: number
fields: Record<string, string>
screenshots?: UploadedFile[]
},
) {
return apiPost<CollectMaterialLinkSubmitResult>(
`/api/v1/collect/link/${encodeURIComponent(token)}/submit`,
`/api/v1/collect/link/${encodeURIComponent(code)}/submit`,
payload,
)
}