接单平台新增拼单与取消接单能力

拼单功能:
- 工单/物品规则支持拼单配置(启用、总数量、单价),总价=单价×数量三方联动,启用拼单时工单金额自动同步拼单总价
- 拼单参与按数量冻结比例押金,验收通过后按份额结算报酬,升级统计按数量计入
- 抢单大厅拼单入口:紫色渐变大按钮带单价展示,拼单进度/剩余份数,弹窗输入数量实时预估报酬与押金
- 我的订单展示拼单份额(数量×单价、状态),拼单者各自提交验收,全部提交后管理员统一验收
- 新增 work_order_shares 表与迁移 008

取消接单:
- 进行中订单可取消(押金全额退还、工单回大厅),30 天内限 5 次防滥用
This commit is contained in:
yml2213
2026-08-01 16:31:27 +08:00
parent 52a85f7f9e
commit c33e859e96
12 changed files with 1745 additions and 61 deletions
@@ -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`,