3.0 KiB
3.0 KiB
213 Admin:精简蝦皮筛选并改为分类搜索
- 类型:需求
- 父级大工单:#206
- 所属 MVP / 版本:#207
- 状态:已完成
- 日期:2026-08-13
- Gitea 工单:#213
背景与目标
蝦皮数据页叠加了店铺有无、图片有无、数据范围、业务店铺、店铺名称等多个控件,并同时显示两个店铺列,与“SYB 店铺名就是蝦皮店铺名”的实际业务不符。本任务精简常用筛选,让采购员按明确字段搜索,同时保留软删除恢复和未登记数据处理能力。
最终方案
常用工具条保留状态筛选,增加“分类 + 关键词”:分类固定为商品 ID、商品名称和店铺名。商品 ID 使用精确匹配,商品名称和店铺名使用转义后的包含匹配;服务端只走固定白名单分支,不把请求值拼成 SQL 列名。列表只显示一个来源店铺列。
“数据范围”改为管理员独立“回收站”入口;“未登记商品”使用店铺管理页进入的 unlinked=1 内部视图,并显示当前范围与清除入口。翻页、详情弹窗、批量采集、删除和恢复的回跳统一保留 q、search_field、status、deleted、unlinked 和页码。
改了哪些
admin/repository/shopee.go:实现白名单分类搜索、未登记和回收站范围,移除旧筛选 SQL。admin/service/shopee_list.go:增加搜索分类解析,精简列表视图和筛选状态判断。admin/handler/web/shopee.go:切换查询参数并完整保留列表上下文。admin/templates/shopee/list.html、detail_modal.html:精简工具条和店铺列,增加回收站、未登记提示及隐藏状态字段。admin/static/js/app.js:更新模块状态参数白名单。admin/handler/web/pagination_test.go、admin/service/shopee_list_test.go、admin/main_test.go:覆盖分类匹配、特殊字符、未登记范围和状态保留。docs/admin/05-ui-specification.md:更新最终交互规范。
验收结果
| 验收标准 | 结果 |
|---|---|
| 页面不再显示店铺/图片/数据范围/业务店铺/店铺名称旧筛选 | 通过 |
| 分类仅提供商品 ID、商品名称和店铺名 | 通过 |
| 商品 ID 精确匹配,名称类包含匹配且正确转义特殊字符 | 通过 |
| 分类参数使用白名单,未知值回退商品 ID | 通过 |
| 列表只显示一个店铺列 | 通过 |
| 管理员仍可通过独立回收站恢复软删除数据 | 通过 |
| 未登记入口、翻页、详情和写操作回跳保留有效上下文 | 通过 |
测试
- 执行的命令:在
admin/执行$env:GOTOOLCHAIN="go1.23.0"; go build ./...; go test ./... -count=1,随后执行go vet ./...和git diff --check。 - 结果:Go 1.23.0 构建、全量测试、vet 和差异检查全部通过。
- 没验证到的部分:未在浏览器中执行人工视觉验收;模板构建、路由、查询和状态保留由自动化测试覆盖。
相关提交
313e9f9收敛店铺管理和蝦皮分类搜索