Files
cmautobuy/docs/task/213-精简蝦皮筛选并改为分类搜索.md
T
2026-08-13 11:48:46 +08:00

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 收敛店铺管理和蝦皮分类搜索