修复超时订单重置流程

This commit is contained in:
yml2213
2026-06-19 18:36:46 +08:00
parent 2df935f74c
commit 72285ed638
11 changed files with 449 additions and 46 deletions
@@ -62,20 +62,19 @@ const returnLabel = computed(() =>
const refunding = ref(false)
const snapshotText = computed(() => JSON.stringify(order.value?.account_snapshot || {}, null, 2))
const actionTitle = computed(() => {
if (actionType.value === 'close') return '客服关闭订单'
if (actionType.value === 'reset') return '重置交接(给号主再次机会)'
return '标记订单异常'
})
const canOperate = computed(
() => !!order.value && !['completed', 'cancelled', 'closed'].includes(order.value.status)
)
const canResetHandoff = computed(
() =>
!!order.value &&
order.value.status === 'pending_handoff' &&
order.value.handoff_status === 'owner_timeout'
)
const resetAction = computed(() => order.value?.admin_actions?.reset_handoff)
const resetActionLabel = computed(() => {
return resetAction.value?.label || '重置'
})
const canResetHandoff = computed(() => resetAction.value?.enabled === true)
const actionTitle = computed(() => {
if (actionType.value === 'close') return '客服关闭订单'
if (actionType.value === 'reset') return `${resetActionLabel.value}(恢复到对应待办)`
return '标记订单异常'
})
onMounted(loadOrder)
@@ -113,7 +112,7 @@ async function submitAction() {
ElMessage.success('订单已关闭')
} else if (actionType.value === 'reset') {
await adminResetHandoff(order.value.id, reason.value)
ElMessage.success('交接已重置,等待号主重新提交')
ElMessage.success(`${resetActionLabel.value}成功`)
} else {
await adminMarkOrderAbnormal(order.value.id, reason.value)
ElMessage.success('订单已标记异常')
@@ -241,9 +240,9 @@ function formatHandoffRecordType(type: string) {
<RouterLink :to="returnTarget">
<el-button>{{ returnLabel }}</el-button>
</RouterLink>
<el-button v-if="canResetHandoff" type="success" @click="openAction('reset')"
>重置交接</el-button
>
<el-button v-if="canResetHandoff" type="success" @click="openAction('reset')">
{{ resetActionLabel }}
</el-button>
<el-button type="warning" :disabled="!canOperate" @click="openAction('abnormal')"
>标记异常</el-button
>
@@ -36,11 +36,21 @@ export interface Order {
settlement_status: SettlementStatus
active_dispute?: ActiveDispute
checkout?: Checkout
admin_actions?: AdminActions
payment_deadline_at?: string
created_at: string
updated_at: string
}
export interface AdminActions {
reset_handoff?: AdminAction
}
export interface AdminAction {
enabled: boolean
label: string
}
export interface ActiveDispute {
id: number
initiator_id: number