feat(接单): 支持客服手动结束赠送冷却
This commit is contained in:
@@ -157,6 +157,20 @@ export function formatWorkOrderEvent(event: WorkOrderEvent): EventNodeStyle {
|
||||
case 'material_updated':
|
||||
return { title: '更新了订单资料', color: 'cyan' }
|
||||
|
||||
// —— 好友赠送节点 ——
|
||||
case 'gift_material_submitted':
|
||||
return { title: '打手提交好友赠送资料,等待客服确认加好友', color: 'cyan' }
|
||||
case 'friend_confirmed':
|
||||
return { title: '客服确认已加好友,赠送冷却开始', color: 'gold' }
|
||||
case 'gift_cooldown_completed_by_admin':
|
||||
return {
|
||||
title: note ? `客服手动结束赠送冷却:${note}` : '客服手动结束赠送冷却',
|
||||
description: '打手现在可以提交赠送凭证与验收资料',
|
||||
color: 'green',
|
||||
}
|
||||
case 'gift_material_reset':
|
||||
return { title: note ? `客服重置打手好友赠送资料:${note}` : '客服重置打手好友赠送资料', color: 'orange' }
|
||||
|
||||
// —— 验收节点 ——
|
||||
case 'acceptance_submitted': {
|
||||
const imageCount = readPayload(event, 'imageCount')
|
||||
|
||||
@@ -50,6 +50,7 @@ import {
|
||||
cancelAdminWorkOrder,
|
||||
cancelAdminWorkOrderShare,
|
||||
cancelAdminWorkOrderSharing,
|
||||
completeAdminWorkOrderGiftCooldown,
|
||||
confirmAdminWorkOrderFriend,
|
||||
deductAdminWorkOrderPendingDeposit,
|
||||
deleteAdminWorkOrder,
|
||||
@@ -886,6 +887,22 @@ export default function WorkOrdersPanel() {
|
||||
})
|
||||
}
|
||||
|
||||
function completeGiftCooldown(row: WorkOrder) {
|
||||
modal.confirm({
|
||||
title: '手动结束赠送冷却?',
|
||||
content:
|
||||
'确认后将立即允许打手提交赠送凭证与验收资料;订单任务时限将从当前时刻重新计算。此操作会记录在订单流转记录中。',
|
||||
okText: '确认结束冷却',
|
||||
okButtonProps: { type: 'primary' },
|
||||
cancelText: '取消',
|
||||
onOk: () =>
|
||||
runAction(
|
||||
() => completeAdminWorkOrderGiftCooldown(row.workOrderId),
|
||||
'已手动结束赠送冷却,打手现在可以提交验收',
|
||||
),
|
||||
})
|
||||
}
|
||||
|
||||
function requestResetGiftMaterial(row: WorkOrder) {
|
||||
modal.confirm({
|
||||
title: '重置打手好友赠送资料?',
|
||||
@@ -1018,7 +1035,9 @@ export default function WorkOrdersPanel() {
|
||||
</Tag>
|
||||
) : null}
|
||||
{row.acceptanceMode === 'friend_gift' ? <Tag color="purple">好友赠送</Tag> : null}
|
||||
{row.acceptanceMode === 'friend_gift' && row.gift ? (
|
||||
{row.acceptanceMode === 'friend_gift' &&
|
||||
row.gift &&
|
||||
!['pending_material', 'unassigned', 'open'].includes(row.rawStatus || row.status) ? (
|
||||
<Tag color={resolveGiftPhaseColor(row.gift.phase)}>
|
||||
{formatGiftPhase(row.gift.phase)}
|
||||
</Tag>
|
||||
@@ -1234,6 +1253,11 @@ export default function WorkOrdersPanel() {
|
||||
确认加好友
|
||||
</Button>
|
||||
) : null}
|
||||
{row.capabilities?.canCompleteGiftCooldown && canManageProblem ? (
|
||||
<Button type="primary" onClick={() => completeGiftCooldown(row)}>
|
||||
结束冷却
|
||||
</Button>
|
||||
) : null}
|
||||
{row.capabilities?.canResetGiftFlow && canManageProblem ? (
|
||||
<Button danger onClick={() => requestResetGiftMaterial(row)}>
|
||||
重置打手资料
|
||||
@@ -1639,6 +1663,15 @@ export default function WorkOrdersPanel() {
|
||||
确认加好友
|
||||
</Button>
|
||||
) : null}
|
||||
{detailOrder.capabilities?.canCompleteGiftCooldown && canManageProblem ? (
|
||||
<Button
|
||||
type="primary"
|
||||
size="small"
|
||||
onClick={() => completeGiftCooldown(detailOrder)}
|
||||
>
|
||||
结束冷却
|
||||
</Button>
|
||||
) : null}
|
||||
{detailOrder.capabilities?.canResetGiftFlow && canManageProblem ? (
|
||||
<Button
|
||||
size="small"
|
||||
|
||||
@@ -686,6 +686,13 @@ export function confirmAdminWorkOrderFriend(workOrderId: number) {
|
||||
)
|
||||
}
|
||||
|
||||
/** 好友赠送模式:客服人工确认冷却完成,立即允许打手提交验收。 */
|
||||
export function completeAdminWorkOrderGiftCooldown(workOrderId: number) {
|
||||
return apiPost<{ order: WorkOrder }>(
|
||||
`/api/v1/admin/worker-platform/orders/${workOrderId}/complete-gift-cooldown`,
|
||||
)
|
||||
}
|
||||
|
||||
/** 好友赠送模式:重置打手资料,冷却与好友时间清零 */
|
||||
export function resetAdminWorkOrderGiftMaterial(workOrderId: number, note?: string) {
|
||||
return apiPost<{ order: WorkOrder }>(
|
||||
|
||||
@@ -557,6 +557,7 @@ export type WorkOrder = {
|
||||
canResolveProblem: boolean
|
||||
canDeduct: boolean
|
||||
canConfirmFriend?: boolean
|
||||
canCompleteGiftCooldown?: boolean
|
||||
canResetGiftFlow?: boolean
|
||||
}
|
||||
rewardAmount: number
|
||||
|
||||
Reference in New Issue
Block a user