docs: 归档任务 #214 #215

This commit is contained in:
chengma
2026-08-13 12:15:13 +08:00
parent 4752fef54f
commit 282a917936
2 changed files with 109 additions and 0 deletions
@@ -0,0 +1,47 @@
# 214 Admin:优化蝦皮标题宽度并显示 PDD 商品 ID
- 类型:需求
- 父级大工单:#14
- 所属 MVP / 版本:#15 / MVP 后续
- 状态:已完成,待用户验收
- 日期:2026-08-13
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/214
## 背景与目标
蝦皮列表的商品名称列偏宽,PDD 关联列又直接显示完整 URL,挤压了颜色、尺码、SKU、
待补和采集状态等更常用的信息。本任务收紧标题列,并让列表正文只显示 PDD 商品 ID。
## 最终方案
商品名称列改为固定 120px,继续使用省略号和 `title` 展示完整标题。PDD 列正文显示
`pdd_goods_id`,完整 URL 仅放在悬停提示;未关联商品继续显示红色“未填写”。商品详情
中的完整 PDD 链接编辑入口保持不变。该实现与建单方案一致,未修改数据库和关联逻辑。
## 改了哪些
- `admin/service/shopee_list.go`:列表视图分别提供 PDD 商品 ID 和完整 URL。
- `admin/templates/shopee/list.html`:列名和单元格正文改为 PDD 商品 ID。
- `admin/static/css/app.css`:标题列改为稳定的 120px。
- `admin/service/shopee_list_test.go`、`admin/main_test.go`:覆盖已关联、未关联和列宽规则。
- `docs/admin/05-ui-specification.md`:同步列表展示规范。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| 商品名称列收窄,长标题仍可悬停查看 | 通过(静态规则与模板测试) |
| 已关联商品正文只显示 PDD 商品 ID | 通过 |
| 未关联商品显示“未填写” | 通过 |
| 详情仍可编辑完整 PDD 链接 | 通过(原入口未改并通过模板回归) |
| Go 1.23 build、test、vet 全部通过 | 通过 |
## 测试
- 执行的命令:`$env:GOTOOLCHAIN="go1.23.0"; go build ./...; go test ./... -count=1; go vet ./...`
- 结果:全部通过。
- **没验证到的部分**:未在 1366×768 的真实浏览器中人工检查列宽视觉效果。
## 相关提交
- `5b7d922` style: 优化蝦皮列表关键信息展示 (#214)
+62
View File
@@ -0,0 +1,62 @@
# 215 Admin:支持人工修改蝦皮 SKU 颜色尺码
- 类型:需求
- 父级大工单:#14
- 所属 MVP / 版本:#15 / MVP 后续
- 状态:已完成,待用户验收
- 日期:2026-08-13
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/215
## 背景与目标
蝦皮商品详情原来只能查看规格。采购员无法修正已有 SKU 的颜色、尺码和建议说明,
解析错误或缺失数据只能等待第三方重新导入。本任务增加受控人工修正,并保护人工值不被
后续目录导入或 SYB 低优先级补全覆盖。
## 最终方案
每条现有 SKU 在只读摘要旁提供折叠“编辑”表单,只开放颜色、尺码和建议说明。颜色、
尺码必填,建议可清空;服务端限制每项最多 500 个字符,并同时核对内部 SKU 记录和商品
归属。保存把三个字段来源写为 `manual`、记录观测时间并设置 `parse_ok=1`,但不修改
`spec_raw`、`spec_key`、真实 SKU ID、SKU 编码、来源或 `is_manual`。
目录 `fill_missing` 规则增加字段级人工保护,因此主动清空建议也不会被再次补入;
`overwrite_same_source` 原本按来源判断,会自然跳过 `manual`。保存成功或校验失败后保留
列表筛选和页码,并自动重新打开同一商品详情。未新增数据库迁移、SKU 新增/删除或 Client
接口,实施与建单方案一致。
## 改了哪些
- `admin/service/shopee_sku.go`:输入校验、事务、字段来源合并和人工保存。
- `admin/repository/shopee.go`:读取字段来源并按 SKU 与商品双重条件更新。
- `admin/repository/catalog_import.go`:`fill_missing` 尊重字段级 `manual` 来源。
- `admin/handler/web/shopee.go`、`admin/handler/web/web.go`:增加保存路由和上下文返回。
- `admin/service/shopee_list.go`、`admin/templates/shopee/detail_modal.html`:提供内部定位值、
只读原文和逐行折叠编辑表单。
- `admin/static/css/app.css`:增加紧凑的 SKU 编辑布局。
- `admin/service/shopee_sku_test.go` 等:覆盖保存、输入拒绝、跨商品保护和导入防覆盖。
- `docs/admin/01-requirements.md`、`03-data-model.md`、`05-ui-specification.md`、
`06-quality-security.md`:同步需求、数据和测试基线。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| 登录用户可修改已有 SKU 的颜色、尺码和建议说明 | 通过 |
| 空必填项、超长内容、错误记录和跨商品记录被拒绝且无部分更新 | 通过 |
| 保存后已解析,原文、规格键和真实 SKU ID 不变 | 通过 |
| 人工字段不被两种目录更新策略覆盖 | 通过 |
| 主动清空建议后不会被低优先级补空 | 通过 |
| 不修改 SYB 原始数据、规格映射、采购任务和 Client 接口 | 通过(修改范围检查) |
| Go 1.23 build、test、vet 全部通过 | 通过 |
## 测试
- 执行的命令:`$env:GOTOOLCHAIN="go1.23.0"; go build ./...; go test ./... -count=1; go vet ./...`
- 结果:全部通过;新增服务测试使用 SQLite 小库覆盖事务写入和两种导入策略保护。
- **没验证到的部分**:未设置 `CMAUTOBUY_MYSQL_TEST=1`,因此未执行真实 MySQL 8
隔离库测试;未在生产 MySQL 写入;未做真实浏览器逐行编辑的人工验收。
## 相关提交
- `4752fef` feat: 支持人工修改蝦皮规格 (#215)