后端可视化调试

This commit is contained in:
yml2213
2026-04-14 00:21:32 +08:00
parent 0c2f2e0a12
commit fa36be6539
14 changed files with 617 additions and 34 deletions
@@ -45,6 +45,49 @@ function formatTaskBindingCountSummary(task: AdminOrderDetail['tasks'][number])
const summary = task.bindingSummary
return `共 ${summary.totalBindingCount} 条 · 预占 ${summary.reservedBindingCount} · 已消费 ${summary.consumedBindingCount} · 已释放 ${summary.releasedBindingCount}`
}
function formatAutoDeliveryReason(value: string) {
const normalized = String(value || '').trim()
switch (normalized) {
case 'waiting_other_tasks':
return '等待订单下其他任务全部交付后再统一触发'
case 'already_sent':
return '该订单已经执行过自动发货'
case 'auto_delivery_disabled':
return '自动发货开关已关闭'
case 'missing_config':
return '缺少 Agiso 自动发货配置'
case 'request_failed':
return 'Agiso 接口返回失败'
case 'request_error':
return '请求 Agiso 接口时发生异常'
default:
return normalized || '-'
}
}
function resolveTaskAutoDeliveryStatus(task: AdminOrderDetail['tasks'][number]) {
if (task.agisoAutoDelivery?.status) {
return task.agisoAutoDelivery.status
}
return task.deliveryStatus === 'delivered' ? 'pending' : 'waiting'
}
function formatTaskAutoDeliveryReason(task: AdminOrderDetail['tasks'][number]) {
if (task.agisoAutoDelivery?.errorMessage) {
return task.agisoAutoDelivery.errorMessage
}
if (task.agisoAutoDelivery?.reason) {
return formatAutoDeliveryReason(task.agisoAutoDelivery.reason)
}
return task.deliveryStatus === 'delivered'
? '当前任务已交付,等待订单统一自动发货'
: '当前任务尚未完成交付'
}
</script>
<template>
@@ -105,6 +148,19 @@ function formatTaskBindingCountSummary(task: AdminOrderDetail['tasks'][number])
<strong>{{ detail.order.bindingSummary.totalBindingCount }} 条绑定记录</strong>
<small>预占 {{ detail.order.bindingSummary.reservedBindingCount }} · 已消费 {{ detail.order.bindingSummary.consumedBindingCount }} · 已释放 {{ detail.order.bindingSummary.releasedBindingCount }}</small>
</article>
<article v-if="detail.order.agisoAutoDelivery" class="info-tile">
<span>自动发货</span>
<div class="tile-tag-line">
<AdminStatusTag :status="detail.order.agisoAutoDelivery.status" />
</div>
<strong>
{{ detail.order.agisoAutoDelivery.errorMessage || formatAutoDeliveryReason(detail.order.agisoAutoDelivery.reason) || '全部任务交付后会自动触发' }}
</strong>
<small>
已交付 {{ detail.order.agisoAutoDelivery.deliveredTaskCount }}/{{ detail.order.agisoAutoDelivery.totalTaskCount }}
· 最近执行 {{ formatAdminDateTime(detail.order.agisoAutoDelivery.updatedAt) }}
</small>
</article>
</div>
<table class="meta-table">
@@ -151,6 +207,7 @@ function formatTaskBindingCountSummary(task: AdminOrderDetail['tasks'][number])
<th>状态</th>
<th>系统绑定</th>
<th>完整绑定</th>
<th>自动发货</th>
<th>库存绑定</th>
<th>登录方式</th>
<th>错误</th>
@@ -164,6 +221,12 @@ function formatTaskBindingCountSummary(task: AdminOrderDetail['tasks'][number])
<td><AdminStatusTag :status="task.status" /></td>
<td><AdminStatusTag :status="task.systemBindingStatus" /></td>
<td><AdminStatusTag :status="task.userBindingStatus" /></td>
<td>
<div class="tile-tag-line">
<AdminStatusTag :status="resolveTaskAutoDeliveryStatus(task)" />
</div>
<div class="binding-copy">{{ formatTaskAutoDeliveryReason(task) }}</div>
</td>
<td>
<div>{{ formatTaskBindingCountSummary(task) }}</div>
<div class="binding-copy">角色 {{ formatBindingRoleSummary(task.bindingSummary.roleKeys) }}</div>
@@ -267,6 +330,10 @@ function formatTaskBindingCountSummary(task: AdminOrderDetail['tasks'][number])
.info-tile strong {
color: #1d3555;
}
.tile-tag-line {
display: flex;
align-items: center;
}
.binding-copy {
margin-top: 6px;
color: #64748b;