feat: 比价记录状态列按 admin 口径显示,外部缺失标「成功 ⚠」 #104
Reference in New Issue
Block a user
Delete Branch "feat/admin-comparison-outcome-display"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景
配套后端 shaguabijia-app-server#feat/admin-comparison-outcome-display(admin 比价记录技术成功/失败口径改造)。后端新下发 admin_status + outcome_hint 两字段。
改动
src/lib/types.ts:ComparisonRecordListItem 加 admin_status / outcome_hint。
src/app/(main)/comparison-records/page.tsx:
列表状态列 + 详情改用 admin_status 出标签;outcome_hint 非空时在标签后加金色 ⚠(ExclamationCircleOutlined + Tooltip,hover 显示「未找到店」等)。
STATUS_LABEL / STATUS_COLOR 精简到 success/failed/cancelled/running 4 个生命周期值。
效果
外部缺失记录 = 绿「成功 ⚠」(hover 看原因),纯技术故障 = 红「失败」;概览/大盘成功率随后端口径统一。
🤖 review-pr 深审结论
🟢 可合并 — 前端状态列/详情按 admin 口径展示,与后端配套 PR #217 契约精确对齐;全量
tsc --noEmit通过。置信度 0.9。跨仓契约核对(配套 shaguabijia-app-server#217)
types.ts:ComparisonRecordListItem加admin_status: string(success/failed/cancelled/running) +outcome_hint: string|null——与后端 schema 字段/值域一致。✅ComparisonRecordDetail extends ComparisonRecordListItem,故详情抽屉的detail.admin_status/detail.outcome_hint类型合法(继承而来,非遗漏)。✅page.tsx状态列dataIndex由status改为admin_status:<Tag>用 admin 口径颜色/文案,outcome_hint非空则挂ExclamationCircleOutlinedTooltip(外部缺失标「成功 ⚠」+ hover 缺失原因);详情抽屉同步。✅STATUS_COLOR/STATUS_LABEL从含 below_minimum/store_closed/... 细分值简化为 admin_status 的 4 个生命周期值,与后端derive_admin_outcome返回值域吻合,外部缺失改由 outcome_hint 感叹号承载。✅构建/测试(已实跑)
合并最新
main(Already up-to-date)后,复用主克隆node_modules跑tsc --noEmit(tsconfigstrict:true)→ exit 0,全量类型检查零错误——detail.admin_status、r.outcome_hint等契约字段类型全部合法。(说明:用
tsc --noEmit做全量类型检查而非 dev server;未额外跑next build打包,类型契约已由 tsc 完整覆盖。)正面
这是「比价额度/口径」四联 PR 的收尾(#216 quota 接口 + #385 前端拦截 + #217 后端口径 + 本 #104 前端展示),前后端契约严丝合缝;类型继承复用得当(Detail extends ListItem);外部缺失用感叹号 Tooltip 承载而非硬塞 status 映射,展示清晰;附 plan/design 文档。
🤖 自动深审 · 结论仅供参考,请以人工判断为准