affiliate-dash 领取界面优化(合并多次迭代为一次提交)

- 第 2 步绑定页:移除金额/单号/商品信息区,移除标题上方 affiliate-dash 标签
- 二维码区参考旧设计:左右竖排红字 Q区用Q扫/V区用V扫,去浅蓝背景,放大至 220px
- 第 4 步结果页:废弃 canvas 生成发货成功图,改用旧版结果卡片(绿勾+兑换成功+信息网格+商品明细)
- 开发 Mock:新增 affiliate-dash 领取五步 mock(uid/bind/submitted/completed/failed,不调真实平台)
This commit is contained in:
yml2213
2026-08-05 19:39:15 +08:00
parent 316ee6d135
commit 4e9c416235
10 changed files with 519 additions and 65 deletions
@@ -166,7 +166,16 @@ export async function syncAffiliateDashTaskStatus(task: TaskRow) {
}
const now = nowIso()
const order = await getAffiliateDashOrder(flow.orderNo)
// dev-mock 任务:不请求 affiliate-dash 平台,直接用本地快照(flow 自身)收敛状态
const order = flow.mock?.enabled
? ({
orderNo: flow.orderNo,
orderStatus: flow.orderStatus,
failureReason: flow.failureReason,
canShip: flow.canShip,
raw: null,
} as unknown as AffiliateDashOrder)
: await getAffiliateDashOrder(flow.orderNo)
let nextTaskStatus = task.task_status
let deliveryStatus = task.delivery_status
let redeemedAt = task.redeemed_at
@@ -286,6 +295,8 @@ export type AffiliateDashFlow = {
consumeStatus: string
lastSyncedAt: unknown
raw: unknown
/** dev-mock 标记:enabled 时所有 affiliate-dash 平台调用短路(建单/绑定/提交/同步均不请求外部) */
mock: { enabled: boolean; orderNo: string; createdAt: string } | null
}
export function normalizeAffiliateDashFlow(value: unknown): AffiliateDashFlow {
@@ -319,6 +330,14 @@ export function normalizeAffiliateDashFlow(value: unknown): AffiliateDashFlow {
consumeStatus: String(source.consumeStatus || 'pending').trim(),
lastSyncedAt: source.lastSyncedAt || null,
raw: source.raw && typeof source.raw === 'object' ? source.raw : null,
mock:
source.mock && typeof source.mock === 'object'
? {
enabled: Boolean((source.mock as JsonObject).enabled),
orderNo: String((source.mock as JsonObject).orderNo || '').trim(),
createdAt: String((source.mock as JsonObject).createdAt || '').trim(),
}
: null,
}
}