删除咸鱼旧链路
This commit is contained in:
@@ -16,7 +16,6 @@ export type { AdminDashboardSummary } from './dashboard'
|
||||
// Orders types
|
||||
export type {
|
||||
AdminOrderBindingSummary,
|
||||
AdminOrderAgisoAutoDeliverySummary,
|
||||
AdminOrderListItem,
|
||||
AdminOrderDetail,
|
||||
} from './orders'
|
||||
@@ -24,7 +23,6 @@ export type {
|
||||
// Tasks types
|
||||
export type {
|
||||
AdminTaskBindingSummary,
|
||||
AdminAgisoAutoDeliveryStatus,
|
||||
AdminTaskListItem,
|
||||
AdminTaskOperations,
|
||||
AdminTaskActionResponse,
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import type { AdminTaskListItem } from './tasks'
|
||||
import type { AdminAgisoAutoDeliveryStatus } from './tasks'
|
||||
|
||||
export interface AdminOrderBindingSummary {
|
||||
totalTaskCount: number
|
||||
@@ -13,13 +12,6 @@ export interface AdminOrderBindingSummary {
|
||||
userBindingStatus: string
|
||||
}
|
||||
|
||||
export interface AdminOrderAgisoAutoDeliverySummary extends AdminAgisoAutoDeliveryStatus {
|
||||
totalTaskCount: number
|
||||
deliveredTaskCount: number
|
||||
sourceTaskId: number | null
|
||||
sourceTaskNo: string
|
||||
}
|
||||
|
||||
export interface AdminOrderListItem {
|
||||
orderId: number
|
||||
provider: string
|
||||
@@ -74,7 +66,6 @@ export interface AdminOrderDetail {
|
||||
itemSummary: string
|
||||
rawPayload: Record<string, unknown>
|
||||
bindingSummary: AdminOrderBindingSummary
|
||||
agisoAutoDelivery: AdminOrderAgisoAutoDeliverySummary | null
|
||||
}
|
||||
items: Array<{
|
||||
orderItemId: number
|
||||
|
||||
@@ -6,17 +6,6 @@ export interface AdminTaskBindingSummary {
|
||||
roleKeys: string[]
|
||||
}
|
||||
|
||||
export interface AdminAgisoAutoDeliveryStatus {
|
||||
status: string
|
||||
trigger: string
|
||||
reason: string
|
||||
platformOrderId: string
|
||||
responseStatus: number
|
||||
errorMessage: string
|
||||
requestId: string
|
||||
updatedAt: string | null
|
||||
}
|
||||
|
||||
export interface AdminTaskListItem {
|
||||
taskId: number
|
||||
taskNo: string
|
||||
@@ -46,7 +35,6 @@ export interface AdminTaskListItem {
|
||||
inventoryCredentialType: string
|
||||
claimToken: string
|
||||
screenshotPath: string
|
||||
agisoAutoDelivery: AdminAgisoAutoDeliveryStatus | null
|
||||
}
|
||||
|
||||
export interface AdminTaskOperations {
|
||||
|
||||
@@ -61,9 +61,6 @@ export function formatTaskEventType(eventType: string) {
|
||||
claim_redeem_code_invalid: "兑换码错误",
|
||||
claim_redeem_inventory_replaced: "已切换新兑换码",
|
||||
claim_redeem_completed: "兑换链路完成",
|
||||
agiso_auto_delivery_success: "咸鱼自动发货成功",
|
||||
agiso_auto_delivery_failed: "咸鱼自动发货失败",
|
||||
agiso_auto_delivery_skipped: "咸鱼自动发货已跳过",
|
||||
};
|
||||
|
||||
return formatStatusWithRaw(eventType, labelMap);
|
||||
@@ -96,48 +93,6 @@ export function formatRedeemResolutionStatus(value: string) {
|
||||
: value || "-";
|
||||
}
|
||||
|
||||
export function formatAutoDeliveryTrigger(value: string) {
|
||||
const normalized = String(value || "").trim();
|
||||
|
||||
switch (normalized) {
|
||||
case "claim_redeemed":
|
||||
return "用户兑换完成后触发";
|
||||
case "manual_dispatch_completed":
|
||||
return "人工履约完成后触发";
|
||||
case "task_delivered":
|
||||
return "任务交付完成后触发";
|
||||
default:
|
||||
return normalized || "-";
|
||||
}
|
||||
}
|
||||
|
||||
export 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 接口时发生异常";
|
||||
case "delivery_not_confirmed":
|
||||
return "接口返回成功,但订单状态未确认进入已发货";
|
||||
case "task_not_delivered":
|
||||
return "当前任务尚未进入已交付状态";
|
||||
case "not_supported":
|
||||
return "当前订单不支持 Agiso 咸鱼自动发货";
|
||||
default:
|
||||
return normalized || "-";
|
||||
}
|
||||
}
|
||||
|
||||
export function formatKuaishouRoleInfoLabel(value: string) {
|
||||
const normalized = String(value || "").trim();
|
||||
|
||||
@@ -177,9 +132,7 @@ export function formatTaskEventPayload(payload: Record<string, unknown>) {
|
||||
: "",
|
||||
payload.deliveryReference ? `单号 ${payload.deliveryReference}` : "",
|
||||
payload.platformOrderId ? `平台单 ${payload.platformOrderId}` : "",
|
||||
payload.trigger
|
||||
? `触发 ${formatAutoDeliveryTrigger(String(payload.trigger || ""))}`
|
||||
: "",
|
||||
payload.trigger ? `触发 ${payload.trigger}` : "",
|
||||
payload.reason ? `原因 ${payload.reason}` : "",
|
||||
payload.purchaseTriggered === true ? "已触发购买" : "",
|
||||
payload.usedKnapsack === true ? "使用背包库存" : "",
|
||||
@@ -211,24 +164,3 @@ export function formatBindingCountSummary(summary: {
|
||||
}) {
|
||||
return `共 ${summary.totalBindingCount} 条 · 预占 ${summary.reservedBindingCount} · 已消费 ${summary.consumedBindingCount} · 已释放 ${summary.releasedBindingCount}`;
|
||||
}
|
||||
|
||||
export function resolveTaskAutoDeliveryStatus(task: {
|
||||
agisoAutoDelivery?: { status?: string } | null;
|
||||
deliveryStatus: string;
|
||||
}) {
|
||||
if (task.agisoAutoDelivery?.status) return task.agisoAutoDelivery.status;
|
||||
return task.deliveryStatus === "delivered" ? "pending" : "waiting";
|
||||
}
|
||||
|
||||
export function formatTaskAutoDeliveryReason(task: {
|
||||
agisoAutoDelivery?: { errorMessage?: string; reason?: string } | null;
|
||||
deliveryStatus: string;
|
||||
}) {
|
||||
if (task.agisoAutoDelivery?.errorMessage)
|
||||
return task.agisoAutoDelivery.errorMessage;
|
||||
if (task.agisoAutoDelivery?.reason)
|
||||
return formatAutoDeliveryReason(task.agisoAutoDelivery.reason);
|
||||
return task.deliveryStatus === "delivered"
|
||||
? "当前任务已交付,等待订单统一自动发货"
|
||||
: "当前任务尚未完成交付";
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ export const adminInventoryStatusOptions = [
|
||||
|
||||
export const adminInventoryCredentialTypeOptions = [
|
||||
{ label: '全部凭据类型', value: '' },
|
||||
{ label: '腾讯兑换码(自动领取)', value: 'tencent_code' },
|
||||
{ label: '兑换码(领取链路)', value: 'tencent_code' },
|
||||
{ label: '卡号卡密', value: 'card_password' },
|
||||
{ label: '账号密码', value: 'account_password' },
|
||||
{ label: '激活链接', value: 'activation_link' },
|
||||
|
||||
@@ -6,11 +6,8 @@ import AdminStatusTag from '@/components/admin/AdminStatusTag.vue'
|
||||
import { fetchAdminOrderDetail } from '@/services/admin'
|
||||
import type { AdminOrderDetail } from '@/types/admin'
|
||||
import {
|
||||
formatAutoDeliveryReason,
|
||||
formatBindingRoleSummary,
|
||||
formatBindingCountSummary,
|
||||
resolveTaskAutoDeliveryStatus,
|
||||
formatTaskAutoDeliveryReason,
|
||||
} from '@/utils/admin-display'
|
||||
import { formatAdminDateTime } from '@/utils/admin-time'
|
||||
import { formatAdminWebhookEventType } from '@/utils/admin-webhook'
|
||||
@@ -116,26 +113,6 @@ function formatSpecSummary(spec: Record<string, unknown>) {
|
||||
{{ detail.order.bindingSummary.releasedBindingCount }}</small
|
||||
>
|
||||
</el-card>
|
||||
<el-card v-if="detail.order.agisoAutoDelivery" shadow="never" 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>
|
||||
</el-card>
|
||||
</div>
|
||||
|
||||
<el-table :data="[detail.order]" size="small" :show-header="false">
|
||||
@@ -199,16 +176,6 @@ function formatSpecSummary(spec: Record<string, unknown>) {
|
||||
<AdminStatusTag :status="row.userBindingStatus" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="自动发货">
|
||||
<template #default="{ row }">
|
||||
<div class="tile-tag-line">
|
||||
<AdminStatusTag :status="resolveTaskAutoDeliveryStatus(row)" />
|
||||
</div>
|
||||
<div class="binding-copy">
|
||||
{{ formatTaskAutoDeliveryReason(row) }}
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="库存绑定">
|
||||
<template #default="{ row }">
|
||||
<div>{{ formatBindingCountSummary(row.bindingSummary) }}</div>
|
||||
|
||||
@@ -13,7 +13,6 @@ import {
|
||||
|
||||
import AdminTaskKuaishouCloudPanel from './components/AdminTaskKuaishouCloudPanel.vue'
|
||||
import AdminTaskActionBar from './components/AdminTaskActionBar.vue'
|
||||
import AdminTaskAutoDeliverySection from './components/AdminTaskAutoDeliverySection.vue'
|
||||
import AdminTaskEventsSection from './components/AdminTaskEventsSection.vue'
|
||||
import AdminTaskHeroSection from './components/AdminTaskHeroSection.vue'
|
||||
import AdminTaskInfoSection from './components/AdminTaskInfoSection.vue'
|
||||
@@ -42,8 +41,6 @@ const {
|
||||
submitManualDispatch,
|
||||
copyText,
|
||||
openExternalLink,
|
||||
resolveTaskAutoDeliveryStatus,
|
||||
resolveTaskAutoDeliverySummary,
|
||||
} = useAdminTaskDetail()
|
||||
|
||||
const {
|
||||
@@ -152,13 +149,6 @@ onMounted(loadDetail)
|
||||
@open-bind-url="openExternalLink"
|
||||
/>
|
||||
|
||||
<AdminTaskAutoDeliverySection
|
||||
v-if="detail.order?.provider === 'agiso' && detail.order?.platform === 'xianyu'"
|
||||
:detail="detail"
|
||||
:auto-delivery-status="resolveTaskAutoDeliveryStatus(detail)"
|
||||
:auto-delivery-summary="resolveTaskAutoDeliverySummary(detail)"
|
||||
/>
|
||||
|
||||
<AdminTaskRedeemResolutionSection v-if="detail.redeemResolution" :detail="detail" />
|
||||
|
||||
<AdminTaskInventoryBindingsSection
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
<script setup lang="ts">
|
||||
import AdminStatusTag from '@/components/admin/AdminStatusTag.vue'
|
||||
import type { AdminTaskDetail } from '@/types/admin'
|
||||
import { formatAutoDeliveryReason, formatAutoDeliveryTrigger } from '@/utils/admin-display'
|
||||
import { formatAdminDateTime } from '@/utils/admin-time'
|
||||
|
||||
interface Props {
|
||||
detail: AdminTaskDetail
|
||||
autoDeliveryStatus: string
|
||||
autoDeliverySummary: string
|
||||
}
|
||||
|
||||
defineProps<Props>()
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<el-card shadow="never" class="section-card">
|
||||
<h3>咸鱼自动发货</h3>
|
||||
<p class="section-copy">这里展示这条任务最近一次触发咸鱼自动发货的状态、原因和接口回执摘要。</p>
|
||||
|
||||
<div class="redeem-summary-grid">
|
||||
<el-card shadow="never" class="metric-card">
|
||||
<span>当前状态</span>
|
||||
<div class="auto-delivery-tag-line">
|
||||
<AdminStatusTag :status="autoDeliveryStatus" />
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card shadow="never" class="metric-card">
|
||||
<span>触发来源</span>
|
||||
<strong>{{
|
||||
formatAutoDeliveryTrigger(detail.task.agisoAutoDelivery?.trigger || '')
|
||||
}}</strong>
|
||||
</el-card>
|
||||
<el-card shadow="never" class="metric-card">
|
||||
<span>最近执行</span>
|
||||
<strong>{{ formatAdminDateTime(detail.task.agisoAutoDelivery?.updatedAt) }}</strong>
|
||||
</el-card>
|
||||
<el-card shadow="never" class="metric-card">
|
||||
<span>接口回执</span>
|
||||
<strong>
|
||||
{{
|
||||
detail.task.agisoAutoDelivery?.requestId ||
|
||||
(detail.task.agisoAutoDelivery?.responseStatus
|
||||
? `HTTP ${detail.task.agisoAutoDelivery.responseStatus}`
|
||||
: '-')
|
||||
}}
|
||||
</strong>
|
||||
</el-card>
|
||||
</div>
|
||||
|
||||
<div class="auto-delivery-note">
|
||||
<p>{{ autoDeliverySummary }}</p>
|
||||
<p v-if="detail.task.agisoAutoDelivery?.reason">
|
||||
原因:{{ formatAutoDeliveryReason(detail.task.agisoAutoDelivery.reason) }}
|
||||
</p>
|
||||
<p v-if="detail.task.agisoAutoDelivery?.responseStatus">
|
||||
HTTP:{{ detail.task.agisoAutoDelivery.responseStatus }}
|
||||
</p>
|
||||
<p v-if="detail.task.agisoAutoDelivery?.requestId">
|
||||
请求 ID:{{ detail.task.agisoAutoDelivery.requestId }}
|
||||
</p>
|
||||
</div>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<style scoped src="../AdminTaskDetail.css"></style>
|
||||
@@ -186,30 +186,6 @@ export function useAdminTaskDetail() {
|
||||
window.open(text, '_blank', 'noopener,noreferrer')
|
||||
}
|
||||
|
||||
function resolveTaskAutoDeliveryStatus(taskDetail: AdminTaskDetail) {
|
||||
if (taskDetail.task.agisoAutoDelivery?.status) {
|
||||
return taskDetail.task.agisoAutoDelivery.status
|
||||
}
|
||||
|
||||
return taskDetail.task.deliveryStatus === 'delivered' ? 'pending' : 'waiting'
|
||||
}
|
||||
|
||||
function resolveTaskAutoDeliverySummary(taskDetail: AdminTaskDetail) {
|
||||
const autoDelivery = taskDetail.task.agisoAutoDelivery
|
||||
|
||||
if (autoDelivery?.errorMessage) {
|
||||
return autoDelivery.errorMessage
|
||||
}
|
||||
|
||||
if (autoDelivery?.reason) {
|
||||
return autoDelivery.reason
|
||||
}
|
||||
|
||||
return taskDetail.task.deliveryStatus === 'delivered'
|
||||
? '当前任务已交付,等待订单下其他任务完成后统一自动发货'
|
||||
: '当前任务尚未完成交付,暂不会触发自动发货'
|
||||
}
|
||||
|
||||
onBeforeUnmount(clearScreenshotPreview)
|
||||
|
||||
return {
|
||||
@@ -230,7 +206,5 @@ export function useAdminTaskDetail() {
|
||||
submitManualDispatch,
|
||||
copyText,
|
||||
openExternalLink,
|
||||
resolveTaskAutoDeliveryStatus,
|
||||
resolveTaskAutoDeliverySummary,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user