feat: 支持取消指派打手,可重新指派他人

- 后台可取消进行中订单的指派:订单回未分配,冻结押金全额退还,记录事件与审计
- 工单列表新增「取消指派」按钮(带确认弹窗),客服/管理员/运营可用
- 取消后可重新指派给其他打手
This commit is contained in:
yml2213
2026-08-15 13:48:32 +08:00
parent d44c6039ea
commit 21211bd760
5 changed files with 182 additions and 0 deletions
@@ -8,6 +8,7 @@ import {
SearchOutlined,
SendOutlined,
TeamOutlined,
UndoOutlined,
UserAddOutlined,
WarningOutlined,
} from '@ant-design/icons'
@@ -45,6 +46,7 @@ import {
acceptAdminWorkOrder,
assignAdminWorkOrderToWorker,
createAdminMockWorkOrder,
unassignAdminWorkOrder,
creditAdminWorkerWallet,
deductAdminWorkOrderPendingDeposit,
deleteAdminWorkCategory,
@@ -650,6 +652,35 @@ export default function WorkOrdersPanel() {
</Button>
) : null}
{row.status === 'in_progress' && row.worker ? (
<Button
danger
icon={<UndoOutlined />}
onClick={() => {
const assignedWorker = row.worker
if (!assignedWorker) return
modal.confirm({
title: '取消指派该打手?',
content: (
<span>
{assignedWorker.displayName || assignedWorker.username}
退
</span>
),
okText: '确认取消指派',
cancelText: '取消',
okButtonProps: { danger: true },
onOk: () =>
runAction(
() => unassignAdminWorkOrder(row.workOrderId),
'已取消指派',
),
})
}}
>
</Button>
) : null}
{row.status === 'pending_material' ? (
<Button
icon={<FormOutlined />}
@@ -143,6 +143,12 @@ export function assignAdminWorkOrderToWorker(
)
}
export function unassignAdminWorkOrder(workOrderId: number) {
return apiPost<{ order: WorkOrder }>(
`/api/v1/admin/worker-platform/orders/${workOrderId}/unassign`,
)
}
export function creditAdminWorkerWallet(
workerId: number,
payload: { amount: number; note?: string },