feat(work-order): 新增一次性补资料链接
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)。
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user