新增接单平台第一期闭环

This commit is contained in:
yml2213
2026-07-25 13:58:53 +08:00
parent 06decc51ff
commit f6d3f00f21
27 changed files with 3987 additions and 0 deletions
@@ -7,3 +7,4 @@ export * from './kuaishou-industry'
export * from './orders'
export * from './tasks'
export * from './dev-mock'
export * from './worker-platform'
@@ -0,0 +1,75 @@
import { apiGet, apiPost } from '@/lib/http'
import type {
WorkOrder,
WorkerLevel,
WorkerListResponse,
WorkerUser,
} from '@/types/worker-platform'
export function fetchAdminWorkerPlatformSummary() {
return apiGet<{
pendingWorkerCount: number
pendingMaterialCount: number
openOrderCount: number
inProgressOrderCount: number
}>('/api/v1/admin/worker-platform/summary')
}
export function fetchAdminWorkerLevels() {
return apiGet<{ items: WorkerLevel[] }>('/api/v1/admin/worker-platform/levels')
}
export function saveAdminWorkerLevel(payload: {
levelKey: string
name: string
depositFreeAmount?: number
maxActiveOrders?: number
}) {
return apiPost<{ level: WorkerLevel }>('/api/v1/admin/worker-platform/levels', payload)
}
export function fetchAdminWorkerUsers(params?: Record<string, unknown>) {
return apiGet<WorkerListResponse<WorkerUser>>('/api/v1/admin/worker-platform/workers', params)
}
export function reviewAdminWorkerUser(
workerId: number,
payload: { status: string; reviewNote?: string; levelId?: number },
) {
return apiPost<{ worker: WorkerUser }>(`/api/v1/admin/worker-platform/workers/${workerId}/review`, payload)
}
export function creditAdminWorkerWallet(
workerId: number,
payload: { amount: number; note?: string },
) {
return apiPost<{ wallet: Record<string, unknown> }>(
`/api/v1/admin/worker-platform/workers/${workerId}/wallet-credit`,
payload,
)
}
export function fetchAdminWorkOrders(params?: Record<string, unknown>) {
return apiGet<WorkerListResponse<WorkOrder>>('/api/v1/admin/worker-platform/orders', params)
}
export function createAdminMockWorkOrder(payload: {
platformOrderId?: string
productName?: string
rewardAmount?: number
materialComplete?: boolean
}) {
return apiPost<{ order: WorkOrder }>('/api/v1/admin/worker-platform/orders/mock', payload)
}
export function publishAdminWorkOrder(workOrderId: number) {
return apiPost<{ order: WorkOrder }>(`/api/v1/admin/worker-platform/orders/${workOrderId}/publish`)
}
export function markAdminWorkOrderProblem(workOrderId: number, note: string) {
return apiPost<{ order: WorkOrder }>(`/api/v1/admin/worker-platform/orders/${workOrderId}/problem`, { note })
}
export function acceptAdminWorkOrder(workOrderId: number) {
return apiPost<{ order: WorkOrder }>(`/api/v1/admin/worker-platform/orders/${workOrderId}/accept`)
}
+66
View File
@@ -0,0 +1,66 @@
import { apiGet, apiPost } from '@/lib/http'
import type {
CollectField,
WorkOrder,
WorkerListResponse,
WorkerLoginResponse,
WorkerUser,
} from '@/types/worker-platform'
export function registerWorker(payload: {
username: string
password: string
displayName?: string
phone?: string
}) {
return apiPost<{ worker: WorkerUser; reviewRequired: boolean }>('/api/v1/worker/auth/register', payload)
}
export function loginWorker(payload: { username: string; password: string }) {
return apiPost<WorkerLoginResponse>('/api/v1/worker/auth/login', payload)
}
export function fetchWorkerSession() {
return apiGet<{ authenticated: boolean; expiresAt: string; worker: WorkerUser }>('/api/v1/worker/auth/session')
}
export function logoutWorker() {
return apiPost<{ success: boolean }>('/api/v1/worker/auth/logout')
}
export function fetchWorkerProfile() {
return apiGet<{ worker: WorkerUser; permissions: Record<string, unknown> }>('/api/v1/worker/profile')
}
export function fetchWorkerHallOrders(params?: Record<string, unknown>) {
return apiGet<WorkerListResponse<WorkOrder>>('/api/v1/worker/hall/orders', params)
}
export function grabWorkerOrder(workOrderId: number) {
return apiPost<{ order: WorkOrder }>(`/api/v1/worker/hall/orders/${workOrderId}/grab`)
}
export function fetchWorkerMyOrders(params?: Record<string, unknown>) {
return apiGet<WorkerListResponse<WorkOrder>>('/api/v1/worker/orders', params)
}
export function submitWorkerAcceptance(
workOrderId: number,
payload: { note?: string; imageUrls?: string[] },
) {
return apiPost<{ order: WorkOrder }>(`/api/v1/worker/orders/${workOrderId}/submit-acceptance`, payload)
}
export function lookupCollectOrder(orderNo: string) {
return apiPost<{
order: Pick<WorkOrder, 'workOrderNo' | 'platformOrderId' | 'productName' | 'status'>
fields: CollectField[]
}>('/api/v1/collect/lookup', { orderNo })
}
export function submitCollectOrder(payload: {
orderNo: string
fields: Record<string, string>
}) {
return apiPost<{ complete: boolean; order: Record<string, unknown> }>('/api/v1/collect/submit', payload)
}