接单平台新增拼单与取消接单能力
拼单功能: - 工单/物品规则支持拼单配置(启用、总数量、单价),总价=单价×数量三方联动,启用拼单时工单金额自动同步拼单总价 - 拼单参与按数量冻结比例押金,验收通过后按份额结算报酬,升级统计按数量计入 - 抢单大厅拼单入口:紫色渐变大按钮带单价展示,拼单进度/剩余份数,弹窗输入数量实时预估报酬与押金 - 我的订单展示拼单份额(数量×单价、状态),拼单者各自提交验收,全部提交后管理员统一验收 - 新增 work_order_shares 表与迁移 008 取消接单: - 进行中订单可取消(押金全额退还、工单回大厅),30 天内限 5 次防滥用
This commit is contained in:
@@ -2,6 +2,7 @@ import { apiDelete, apiGet, apiPost } from '@/lib/http'
|
||||
import type {
|
||||
WorkCategory,
|
||||
WorkOrder,
|
||||
WorkOrderShare,
|
||||
WorkProductRule,
|
||||
WorkerFinanceConfig,
|
||||
WorkerFinanceRequest,
|
||||
@@ -97,6 +98,10 @@ export function saveAdminWorkProductRule(payload: {
|
||||
rewardAmount?: number
|
||||
requiredDepositAmount?: number
|
||||
depositThresholdAmount?: number
|
||||
sharingEnabled?: boolean
|
||||
sharingTotalQuantity?: number
|
||||
sharingUnitReward?: number
|
||||
sharingTotalAmount?: number
|
||||
fieldsText?: string
|
||||
sortOrder?: number
|
||||
}) {
|
||||
@@ -217,6 +222,27 @@ export function unpublishAdminWorkOrder(workOrderId: number) {
|
||||
)
|
||||
}
|
||||
|
||||
export function fetchAdminWorkOrderSharing(workOrderId: number) {
|
||||
return apiGet<{ order: WorkOrder; shares: WorkOrderShare[] }>(
|
||||
`/api/v1/admin/worker-platform/orders/${workOrderId}/sharing`,
|
||||
)
|
||||
}
|
||||
|
||||
export function updateAdminWorkOrderSharing(
|
||||
workOrderId: number,
|
||||
payload: {
|
||||
enabled: boolean
|
||||
totalQuantity: number
|
||||
unitReward: number
|
||||
totalAmount?: number
|
||||
},
|
||||
) {
|
||||
return apiPost<{ order: WorkOrder }>(
|
||||
`/api/v1/admin/worker-platform/orders/${workOrderId}/sharing`,
|
||||
payload,
|
||||
)
|
||||
}
|
||||
|
||||
export function markAdminWorkOrderProblem(workOrderId: number, note: string) {
|
||||
return apiPost<{ order: WorkOrder }>(
|
||||
`/api/v1/admin/worker-platform/orders/${workOrderId}/problem`,
|
||||
|
||||
@@ -3,6 +3,7 @@ import type {
|
||||
CollectLookupResponse,
|
||||
UploadedFile,
|
||||
WorkOrder,
|
||||
WorkOrderShare,
|
||||
WorkerFinanceRequest,
|
||||
WorkerHallOrdersResponse,
|
||||
WorkerListResponse,
|
||||
@@ -107,6 +108,13 @@ export function grabWorkerOrder(workOrderId: number) {
|
||||
)
|
||||
}
|
||||
|
||||
export function joinWorkerSharingOrder(workOrderId: number, payload: { quantity: number }) {
|
||||
return apiPost<{ share: WorkOrderShare }>(
|
||||
`/api/v1/worker/hall/orders/${workOrderId}/join-sharing`,
|
||||
payload,
|
||||
)
|
||||
}
|
||||
|
||||
export function fetchWorkerMyOrders(params?: Record<string, unknown>) {
|
||||
return apiGet<WorkerListResponse<WorkOrder>>('/api/v1/worker/orders', params)
|
||||
}
|
||||
@@ -121,6 +129,12 @@ export function submitWorkerAcceptance(
|
||||
)
|
||||
}
|
||||
|
||||
export function cancelWorkerOrder(workOrderId: number) {
|
||||
return apiPost<{ order: WorkOrder }>(
|
||||
`/api/v1/worker/orders/${workOrderId}/cancel`,
|
||||
)
|
||||
}
|
||||
|
||||
export function lookupCollectOrder(orderNo: string) {
|
||||
return apiPost<CollectLookupResponse>('/api/v1/collect/lookup', { orderNo })
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user