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
@@ -755,3 +755,52 @@ order_site 处理要求:
**未新增**:履约配置页不加独立「affiliate-dash 履约面板」——feifei/lewan 有独立面板是因为履约参数多(productRules、deliveryItems 等),affiliate_dash 履约参数只有路由+优先级+规则,已覆盖,加面板属重复。
**验证**:前端 `tsc -b --noEmit` 通过;后端 typecheck 通过;224 测试全绿。
---
## 26. affiliate-dash 领取界面优化(v2.11 · 已完成)
**需求**:精简 affiliate_dash 领取页四步的信息展示。
| 步骤 | 改动 |
| --- | --- |
| 第 1 步 | 不动(与其他平台一致) |
| 第 2 步(绑定领取账号) | 信息区只保留三项:**affiliate-dash 单号 / 领取商品 / 金额**(移除「填写 UID」「订单号」tile);二维码右侧「打开绑定链接」按钮**移除**(二维码直接展示) |
| 第 3 步(确认并提交发货) | 移除信息区(含三项),仅保留已绑定提示 + 提交按钮 |
| 第 4 步(结果页) | 移除信息区(领取商品/单号/订单状态/发货状态/金额全部移除),仅保留结果标题 + 描述 |
**实现**`ClaimAffiliateDashSteps.tsx` —— `AffiliateDashClaimPanel` 移除 `onOpenBindUrl` prop 与按钮、info grid 精简为三项且仅在未绑定(第 2 步)显示;`AffiliateDashResultStep` 移除 info grid`ClaimPage.tsx` 同步移除 `onOpenBindUrl` 传参(`openBindUrl` 函数保留,lewan 仍用)。
**附带修复**`product-resolution-service.ts` 透传拉取失败 warn 日志补 `logIntegration` import(上一轮遗漏导致后端 typecheck 报错)。
**验证**:后端 typecheck 通过、224 测试全绿;前端 `tsc -b --noEmit` 通过。
---
## 27. 开发 Mock 支持 affiliate-dashv2.12 · 已完成)
**需求**:开发 Mock 页新增 affiliate-dash 领取 mock,无需真实 affiliate-dash 平台即可走完领取页四步。
### 能力
后台「开发 Mock」新增 **3. affiliate-dash 领取**5 个步骤可生成):
| step | 领取页表现 |
| --- | --- |
| `uid` | 第一步:待填 UID(无二维码) |
| `bind` | 第二步:已填 UID + mock 绑定二维码(前端用 bindUrl 现生成) |
| `submitted` | 第三步:已绑定待「提交发货」(点击后 mock 短路直接模拟发货成功) |
| `completed` | 第四步:发货成功结果 |
| `failed` | 第四步:发货失败结果(ship_failed |
### 实现
- **mock 标记**`AffiliateDashFlow` 新增 `mock: { enabled, orderNo, createdAt } | null`normalize 透传),dev-mock 创建任务时写入。
- **三处平台调用短路**(mock 任务不请求真实 affiliate-dash):
- `syncAffiliateDashTaskStatus`:直接用本地快照(flow 自身 orderStatus/failureReason)收敛状态,不走 `getAffiliateDashOrder`
- `refreshAffiliateDashBindState`claim-service):直接返回 task,不查 bind-result
- `submitAffiliateDashClaim`:直接置 `delivered` + `providerOrderNo=MOCKAD-*`,不调 `submitAffiliateDashDelivery`
- **dev-mock-service**`createAffiliateDashMockClaim`(仿 feifei:建 order/item/task + claim token + mock 上下文);`getDevMockStatus` platforms 增补;`createBaseOrderItem.executor` 支持 `'affiliate_dash'`
- **路由/前端**`POST /api/v1/admin/dev-mock/affiliate-dash`Mock 页新增 Card + `AffiliateDashMockForm`step/uid/productName/productSku/orderNo)。
**验证**:后端 typecheck 通过、224 测试全绿;前端 `tsc -b --noEmit` 通过;`normalizeAffiliateDashFlow` mock 字段透传脚本验证通过(mock 保留 / 非 mock 为 null)。