Files
cmautobuy/docs/task/294-蝦皮与PDD商品颜色匹配可视化页面.md
T
2026-08-24 00:04:47 +08:00

61 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 294 蝦皮与 PDD 商品颜色匹配可视化页面
- 类型:需求
- 父级大工单:#291
- 所属 MVP / 版本:蝦皮与 PDD 商品级颜色映射
- 状态:已完成
- 日期:2026-08-24
- Gitea 工单:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/294>
## 背景与目标
采购员需要从蝦皮商品上下文进入独立工作区,查看颜色来源、当前 PDD 可购买颜色、已有映射
和失效状态,并一次保存多条颜色修改,不在详情长弹窗中继续堆功能。
## 最终方案
- 蝦皮列表和详情都增加“颜色匹配”入口,返回时保留筛选、页码和详情打开状态。
- 新增服务端渲染页面和 GET/POST 路由,不增加顶部模块;页面沿用现有 Admin 导航、工具条、
横向滚动表格和固定状态条。
- 原生 `select/optgroup` 依次展示当前选择、未使用颜色、已匹配但仍可选择的颜色,支持多对一;
候选显示人民币价格区间和可购买完整规格数。
- 原生 JavaScript 只负责分组、变更计数、筛选、明确清除、未保存离开提醒和防重复提交;
只提交发生变化的行,不计算业务身份或可购买性。
- 保存失败重新渲染页面并保留输入,错误获得焦点并通过 `role=alert` 播报;服务端以当前登录
账号、CSRF、上下文版本和实时候选重新校验整批输入。
## 改了哪些
- `admin/handler/web/web.go`、`admin/handler/web/shopee.go`:增加页面和保存路由。
- `admin/service/color_mapping_page.go`:组装页面摘要、状态和分组候选。
- `admin/templates/shopee/color_mappings.html`:实现独立工作区。
- `admin/templates/shopee/list.html`、`detail_modal.html`:增加入口并保留返回状态。
- `admin/static/js/color_mappings.js`、`static/css/app.css`:增加限定于本页的交互和布局。
- `admin/color_mapping_template_test.go`、`service/color_mapping_test.go`:覆盖模板安全字段和多对一分组。
- `docs/admin/05-ui-specification.md`:记录正式页面规范。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| 列表和详情均可进入,并携带原筛选与页码返回 | 通过 |
| 使用独立 SSR 页面和横向滚动表格,不增加顶部模块 | 通过 |
| 未使用优先、已使用项显示占用者且允许多对一 | 通过 |
| 只保存变化行,支持清除、防重复提交和失败回显 | 通过 |
| 未关联、未采集、维度不唯一、失效和过期均有文字反馈 | 通过 |
| CSRF、当前账号和服务端实时重验不信任浏览器候选 | 通过 |
| 控件可见标签、文字状态、焦点和播报齐全 | 通过 |
## 测试
- 执行的命令:`node --check static/js/color_mappings.js`;`go test ./... -count=1`;
`go build ./...`;`go vet ./...`;`git diff --check`
- 结果:通过。
- **没验证到的部分**:未连接独立 MySQL 8.4 测试库启动完整 Admin,也未在真实浏览器以
1366×768 对正常、多对一、清除、过期和数据库失败状态逐项截图验收;布局按已通过的 #292
原型和现有 Admin CSS 实现。
## 相关提交
- `8162ae5` feat: 增加商品颜色匹配页面 (#294)