feat(consignment): 新增和平精英寄卖库存管理、定向收集审核与工单智能匹配履约
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
import { apiGet, apiPatch, apiPost, apiPut } from '@/lib/http'
|
||||
import type {
|
||||
ConsignmentCollectLink,
|
||||
ConsignmentInventory,
|
||||
ConsignmentStatsSummary,
|
||||
ConsignmentSubmission,
|
||||
WorkOrderInventoryMatchCheck,
|
||||
} from '@/types/consignment'
|
||||
|
||||
// --- 库存管理 ---
|
||||
|
||||
export function fetchAdminConsignmentInventories(params?: Record<string, unknown>) {
|
||||
return apiGet<{ items: ConsignmentInventory[]; total: number }>(
|
||||
'/api/v1/admin/worker-platform/consignment/inventories',
|
||||
params,
|
||||
)
|
||||
}
|
||||
|
||||
export function fetchAdminConsignmentStats() {
|
||||
return apiGet<ConsignmentStatsSummary>('/api/v1/admin/worker-platform/consignment/stats')
|
||||
}
|
||||
|
||||
export function getAdminConsignmentInventory(id: number | string) {
|
||||
return apiGet<ConsignmentInventory>(`/api/v1/admin/worker-platform/consignment/inventories/${id}`)
|
||||
}
|
||||
|
||||
export function createAdminConsignmentInventory(payload: Record<string, unknown>) {
|
||||
return apiPost<ConsignmentInventory>(
|
||||
'/api/v1/admin/worker-platform/consignment/inventories',
|
||||
payload,
|
||||
)
|
||||
}
|
||||
|
||||
export function updateAdminConsignmentInventory(
|
||||
id: number | string,
|
||||
payload: Record<string, unknown>,
|
||||
) {
|
||||
return apiPut<ConsignmentInventory>(
|
||||
`/api/v1/admin/worker-platform/consignment/inventories/${id}`,
|
||||
payload,
|
||||
)
|
||||
}
|
||||
|
||||
export function toggleAdminConsignmentMatching(id: number | string, allowMatching: boolean) {
|
||||
return apiPatch<ConsignmentInventory>(
|
||||
`/api/v1/admin/worker-platform/consignment/inventories/${id}/matching`,
|
||||
{ allowMatching },
|
||||
)
|
||||
}
|
||||
|
||||
export function archiveAdminConsignmentInventory(id: number | string) {
|
||||
return apiPost<ConsignmentInventory>(
|
||||
`/api/v1/admin/worker-platform/consignment/inventories/${id}/archive`,
|
||||
{},
|
||||
)
|
||||
}
|
||||
|
||||
export function returnAdminConsignmentInventory(id: number | string, payload: { reason?: string }) {
|
||||
return apiPost<ConsignmentInventory>(
|
||||
`/api/v1/admin/worker-platform/consignment/inventories/${id}/return`,
|
||||
payload,
|
||||
)
|
||||
}
|
||||
|
||||
// --- 收集链接 ---
|
||||
|
||||
export function fetchAdminConsignmentLinks() {
|
||||
return apiGet<{ items: ConsignmentCollectLink[] }>(
|
||||
'/api/v1/admin/worker-platform/consignment/links',
|
||||
)
|
||||
}
|
||||
|
||||
export function createAdminConsignmentLink(payload: Record<string, unknown>) {
|
||||
return apiPost<ConsignmentCollectLink>('/api/v1/admin/worker-platform/consignment/links', payload)
|
||||
}
|
||||
|
||||
export function updateAdminConsignmentLink(id: number | string, payload: Record<string, unknown>) {
|
||||
return apiPut<ConsignmentCollectLink>(
|
||||
`/api/v1/admin/worker-platform/consignment/links/${id}`,
|
||||
payload,
|
||||
)
|
||||
}
|
||||
|
||||
// --- 提报审核 ---
|
||||
|
||||
export function fetchAdminConsignmentSubmissions(params?: Record<string, unknown>) {
|
||||
return apiGet<{ items: ConsignmentSubmission[]; total: number }>(
|
||||
'/api/v1/admin/worker-platform/consignment/submissions',
|
||||
params,
|
||||
)
|
||||
}
|
||||
|
||||
export function getAdminConsignmentSubmission(id: number | string) {
|
||||
return apiGet<ConsignmentSubmission>(
|
||||
`/api/v1/admin/worker-platform/consignment/submissions/${id}`,
|
||||
)
|
||||
}
|
||||
|
||||
export function approveAdminConsignmentSubmission(
|
||||
id: number | string,
|
||||
payload: Record<string, unknown>,
|
||||
) {
|
||||
return apiPost<{ submission: ConsignmentSubmission; inventory: ConsignmentInventory }>(
|
||||
`/api/v1/admin/worker-platform/consignment/submissions/${id}/approve`,
|
||||
payload,
|
||||
)
|
||||
}
|
||||
|
||||
export function rejectAdminConsignmentSubmission(
|
||||
id: number | string,
|
||||
payload: { reviewNote?: string },
|
||||
) {
|
||||
return apiPost<ConsignmentSubmission>(
|
||||
`/api/v1/admin/worker-platform/consignment/submissions/${id}/reject`,
|
||||
payload,
|
||||
)
|
||||
}
|
||||
|
||||
// --- 匹配与履约 ---
|
||||
|
||||
export function checkWorkOrderConsignmentMatches(workOrderId: number | string) {
|
||||
return apiGet<WorkOrderInventoryMatchCheck>(
|
||||
`/api/v1/admin/worker-platform/consignment/matches/${workOrderId}`,
|
||||
)
|
||||
}
|
||||
|
||||
export function fulfillWorkOrderWithConsignment(payload: {
|
||||
workOrderId: number | string
|
||||
inventoryId: number | string
|
||||
}) {
|
||||
return apiPost<{ workOrder: unknown; inventory: ConsignmentInventory }>(
|
||||
'/api/v1/admin/worker-platform/consignment/fulfill',
|
||||
payload,
|
||||
)
|
||||
}
|
||||
|
||||
export function revokeWorkOrderConsignmentFulfillment(payload: {
|
||||
workOrderId: number | string
|
||||
action?: 'reopen' | 'cancel_order' | 'archive_inventory'
|
||||
reason?: string
|
||||
}) {
|
||||
return apiPost<{ workOrder: unknown; inventory?: ConsignmentInventory | null }>(
|
||||
'/api/v1/admin/worker-platform/consignment/revoke',
|
||||
payload,
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user