Admin:实现蝦皮与 PDD 商品颜色匹配可视化页面 #294

Open
opened 2026-08-23 23:25:49 +08:00 by ila · 3 comments
Owner

基本信息

  • 类型:需求
  • 父级大工单:#14
  • 所属 MVP / 版本:#291 / 蝦皮与 PDD 商品级颜色映射
  • 阶段:Stage B2 Web 可视化页面
  • 依赖:#292 原型通过、#293 数据服务完成

要解决什么

采购员需要在蝦皮商品上下文中直观看到蝦皮侧颜色、当前 PDD 可购买颜色、已有映射及失效原因,并通过一次页面操作完成多条颜色映射维护。

做什么 / 不做什么

  • 做:在蝦皮商品列表和详情增加“颜色匹配”入口,打开独立服务端渲染页面。
  • 做:实现商品摘要、进度、来源、筛选、分组下拉、多对一、部分保存、清除、失效和异常状态。
  • 做:保存使用 CSRF、当前登录账号、上下文版本和服务端实时重验。
  • 不做:不增加顶部模块,不把页面塞入现有详情长弹窗,不增加尺码映射。
  • 不做:不在浏览器计算业务身份、可购买性或完整规格结论,不改变 Client 接口。

怎么做

  • 新增 GET 页面与 POST 保存路由,建议为 /shopee/color-mappings?goods_id=... 和 /shopee/color-mappings/save;handler 只解析参数和渲染,业务逻辑放 service,SQL 只放 repository。
  • 页面沿用当前 Admin 顶部导航、CSS 和三段式布局;中间表格容器独立横向滚动,底部状态和主操作保持可见。
  • 表格行使用 shopee_color_key 作为身份,显示颜色原文、正式 SKU / SYB 观测来源与引用数量、目标 PDD 颜色、映射状态、来源和清除操作。
  • PDD 下拉按“当前选择 / 未使用的颜色 / 已经匹配(仍可选择)”重建分组;已使用项显示占用它的蝦皮颜色,但仍允许选择。动态交互使用独立原生 JavaScript。
  • 只有一个主按钮“保存修改”;只提交发生变化的行,并区分未修改、upsert 和 clear。保存中禁用重复提交,失败保留用户选择。
  • 未关联 PDD、PDD 删除、未采集、无规格、颜色维度不唯一、加载失败、陈旧提交和保存失败均显示原因及下一步。
  • 普通状态文字、错误 role=alert、可见 label、键盘焦点、未保存离开提醒和表格图片替代文本遵守可访问性规范。
  • 管理员和正常状态采购员均按现有蝦皮页面权限维护;项目当前没有只读角色,不实现不可达的只读演示状态。

验收标准

  • 蝦皮列表和详情都能进入当前商品颜色匹配页,并能返回原筛选和页码。
  • 页面不增加顶部模块,在 1366×768 可用,表格横向滚动不带动整页。
  • 未使用颜色优先,已使用颜色仍可选择且显示占用者;多对一可保存。
  • 部分保存和明确清除正确,失败后选择不丢失,重复提交被禁用。
  • PDD 商品更换、目标消失、颜色维度不唯一和陈旧上下文都有文字提示。
  • 页面明确说明不会覆盖原始规格,颜色完成不等于完整规格可采购。
  • 所有写操作有 CSRF,服务端忽略浏览器伪造的商品、颜色候选和状态。
  • 键盘、焦点、错误播报和状态文字满足当前 Admin 可访问性要求。

怎么验证

固定 Go 1.23.0 执行 handler/service 页面测试和全量 test/build/vet;启动独立测试 Admin,使用浏览器在 1366×768 验证正常、多对一、清除、未关联、未采集、失效、陈旧提交、保存失败、返回状态保持和键盘操作。

风险和回退

  • 风险:自定义可搜索下拉的键盘和屏幕阅读器实现复杂;MVP 优先使用原生 select/optgroup,仅在真实颜色数量证明必要时另建可访问搜索组件任务。
  • 风险:浏览器分组只用于展示,不能作为可用候选校验来源;POST 必须完全服务端重验。
  • 回退:移除页面路由和入口即可,颜色映射数据与审计保留,现有蝦皮详情和 SYB 流程不受影响。
## 基本信息 - 类型:需求 - 父级大工单:#14 - 所属 MVP / 版本:#291 / 蝦皮与 PDD 商品级颜色映射 - 阶段:Stage B2 Web 可视化页面 - 依赖:#292 原型通过、#293 数据服务完成 ## 要解决什么 采购员需要在蝦皮商品上下文中直观看到蝦皮侧颜色、当前 PDD 可购买颜色、已有映射及失效原因,并通过一次页面操作完成多条颜色映射维护。 ## 做什么 / 不做什么 - 做:在蝦皮商品列表和详情增加“颜色匹配”入口,打开独立服务端渲染页面。 - 做:实现商品摘要、进度、来源、筛选、分组下拉、多对一、部分保存、清除、失效和异常状态。 - 做:保存使用 CSRF、当前登录账号、上下文版本和服务端实时重验。 - 不做:不增加顶部模块,不把页面塞入现有详情长弹窗,不增加尺码映射。 - 不做:不在浏览器计算业务身份、可购买性或完整规格结论,不改变 Client 接口。 ## 怎么做 - 新增 GET 页面与 POST 保存路由,建议为 `/shopee/color-mappings?goods_id=...` 和 `/shopee/color-mappings/save`;handler 只解析参数和渲染,业务逻辑放 service,SQL 只放 repository。 - 页面沿用当前 Admin 顶部导航、CSS 和三段式布局;中间表格容器独立横向滚动,底部状态和主操作保持可见。 - 表格行使用 `shopee_color_key` 作为身份,显示颜色原文、正式 SKU / SYB 观测来源与引用数量、目标 PDD 颜色、映射状态、来源和清除操作。 - PDD 下拉按“当前选择 / 未使用的颜色 / 已经匹配(仍可选择)”重建分组;已使用项显示占用它的蝦皮颜色,但仍允许选择。动态交互使用独立原生 JavaScript。 - 只有一个主按钮“保存修改”;只提交发生变化的行,并区分未修改、upsert 和 clear。保存中禁用重复提交,失败保留用户选择。 - 未关联 PDD、PDD 删除、未采集、无规格、颜色维度不唯一、加载失败、陈旧提交和保存失败均显示原因及下一步。 - 普通状态文字、错误 `role=alert`、可见 label、键盘焦点、未保存离开提醒和表格图片替代文本遵守可访问性规范。 - 管理员和正常状态采购员均按现有蝦皮页面权限维护;项目当前没有只读角色,不实现不可达的只读演示状态。 ## 验收标准 - [ ] 蝦皮列表和详情都能进入当前商品颜色匹配页,并能返回原筛选和页码。 - [ ] 页面不增加顶部模块,在 1366×768 可用,表格横向滚动不带动整页。 - [ ] 未使用颜色优先,已使用颜色仍可选择且显示占用者;多对一可保存。 - [ ] 部分保存和明确清除正确,失败后选择不丢失,重复提交被禁用。 - [ ] PDD 商品更换、目标消失、颜色维度不唯一和陈旧上下文都有文字提示。 - [ ] 页面明确说明不会覆盖原始规格,颜色完成不等于完整规格可采购。 - [ ] 所有写操作有 CSRF,服务端忽略浏览器伪造的商品、颜色候选和状态。 - [ ] 键盘、焦点、错误播报和状态文字满足当前 Admin 可访问性要求。 ## 怎么验证 固定 Go 1.23.0 执行 handler/service 页面测试和全量 test/build/vet;启动独立测试 Admin,使用浏览器在 1366×768 验证正常、多对一、清除、未关联、未采集、失效、陈旧提交、保存失败、返回状态保持和键盘操作。 ## 风险和回退 - 风险:自定义可搜索下拉的键盘和屏幕阅读器实现复杂;MVP 优先使用原生 `select/optgroup`,仅在真实颜色数量证明必要时另建可访问搜索组件任务。 - 风险:浏览器分组只用于展示,不能作为可用候选校验来源;POST 必须完全服务端重验。 - 回退:移除页面路由和入口即可,颜色映射数据与审计保留,现有蝦皮详情和 SYB 流程不受影响。
Author
Owner

???? #292 ?????????????? #293 ???????????;???????????????????CSRF ???????,???????????

???? #292 ?????????????? #293 ???????????;???????????????????CSRF ???????,???????????
Author
Owner

????,???????

  • ????:8162ae5
  • ????:3f17bed
  • ??:docs/task/294-???PDD???????????.md
  • ??:JS ???go test ./...?go build ./...?go vet ./...?git diff --check ??
  • ???:?? MySQL 8.4 ?????? 1366�768 ??????????

???? #295?

????,??????? - ????:8162ae5 - ????:3f17bed - ??:docs/task/294-???PDD???????????.md - ??:JS ???go test ./...?go build ./...?go vet ./...?git diff --check ?? - ???:?? MySQL 8.4 ?????? 1366�768 ?????????? ???? #295?
Author
Owner

????????:?????? html/template ???????????????,??????????????? c431982,?????? 089eff4???:??????????

????????:?????? html/template ???????????????,??????????????? c431982,?????? 089eff4???:??????????
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#294