Admin:蝦皮列表增加店铺名称搜索并收紧搜索框宽度 #182

Closed
opened 2026-08-12 15:06:14 +08:00 by ila · 2 comments
Owner

基本信息

  • 类型:需求
  • 父级大工单:#14
  • 所属 MVP / 版本:#15 Admin 四模块可用闭环
  • 阶段:蝦皮商品检索体验

要解决什么

蝦皮数据页已有“有店铺 / 无店铺”三态筛选,但不能按具体店铺名称搜索;商品搜索框会占用过多工具栏宽度。采购员需要在保留现有筛选的同时,按店铺名称快速定位商品。现有“商品 ID”输入实际同时匹配商品 ID 和商品名称,本任务保留该兼容行为并把标签修正为“商品 ID / 名称”。

做什么 / 不做什么

  • 做:商品搜索框使用页面专用弹性宽度,基础宽度为工具栏可用空间的 20%。
  • 做:新增“店铺名称”模糊搜索框,宽度与商品搜索框一致。
  • 做:店铺名称与状态、店铺有无、图片有无、商品关键字组合筛选。
  • 做:分页、删除后跳转、详情返回和跨模块状态恢复均保留店铺名称条件。
  • 做:窄窗口允许工具栏换行,并为输入框保留可用的最小宽度。
  • 不做:不删除现有店铺三态筛选,不改商品表结构,不新增迁移,不改变商品搜索当前“ID 或名称”的匹配语义。

怎么做

  • admin/templates/shopee/list.html:增加带可见标签的 shop_name 输入,修正文案并保留所有表单筛选值。
  • admin/static/css/app.css:增加蝦皮工具栏专用 20% 弹性宽度类和最小宽度,不修改其他模块共用样式。
  • admin/static/js/app.js:把 shop_name 加入蝦皮模块稳定查询参数白名单。
  • admin/handler/web/shopee.go:解析、回填并在分页和操作重定向中保留 shop_name。
  • admin/repository/shopee.go:列表和统计共用筛选中增加参数化店铺名称模糊匹配并转义 LIKE 特殊字符。
  • admin/service/shopee_list.go 及相关测试:扩展筛选模型和页面视图。
  • 同步更新 docs/admin/05-ui-specification.md。

不改数据库和 Client 接口。

验收标准

  • 同时显示“商品 ID / 名称”和“店铺名称”两个可见标签输入框,基础宽度均为 20%。
  • 1366×768 下工具栏可用;窗口变窄时输入框保持最小可输入宽度并自然换行。
  • 店铺名称支持包含匹配,输入 %、_、! 时按普通字符处理。
  • 店铺名称可与现有筛选组合,列表总数和分页一致。
  • 翻页、删除、详情返回及切换模块后 shop_name 仍被保留。
  • 其他模块搜索框宽度不受影响。
  • 固定 Go 1.23.0 的 build、test、vet 通过。

怎么验证

从 admin/ 执行固定 Go 1.23.0 的 go vet ./...、go build ./...、go test ./... -count=1。补充模板与 Repository 测试,并在 1366×768 验证布局。

风险和回退

  • 风险:窄窗口拥挤。控制:使用 flex-basis、最小宽度和现有换行布局。
  • 风险:列表与统计条件不一致。控制:继续复用同一个筛选子句。
  • 回退:恢复模板、页面专用 CSS 和筛选参数;无数据库迁移。

实施结果

  • 状态:已完成,待用户验收。
  • 实现提交:889f568
  • 归档提交:e32041e
  • 归档:docs/task/182-蝦皮列表店铺名称搜索.md
  • 固定 Go 1.23.0:go vet ./...、go build ./...、go test ./... -count=1 全部通过。
  • 未验证:未启动浏览器执行 1366×768 人工视觉验收。
## 基本信息 - 类型:需求 - 父级大工单:#14 - 所属 MVP / 版本:#15 Admin 四模块可用闭环 - 阶段:蝦皮商品检索体验 ## 要解决什么 蝦皮数据页已有“有店铺 / 无店铺”三态筛选,但不能按具体店铺名称搜索;商品搜索框会占用过多工具栏宽度。采购员需要在保留现有筛选的同时,按店铺名称快速定位商品。现有“商品 ID”输入实际同时匹配商品 ID 和商品名称,本任务保留该兼容行为并把标签修正为“商品 ID / 名称”。 ## 做什么 / 不做什么 - 做:商品搜索框使用页面专用弹性宽度,基础宽度为工具栏可用空间的 20%。 - 做:新增“店铺名称”模糊搜索框,宽度与商品搜索框一致。 - 做:店铺名称与状态、店铺有无、图片有无、商品关键字组合筛选。 - 做:分页、删除后跳转、详情返回和跨模块状态恢复均保留店铺名称条件。 - 做:窄窗口允许工具栏换行,并为输入框保留可用的最小宽度。 - 不做:不删除现有店铺三态筛选,不改商品表结构,不新增迁移,不改变商品搜索当前“ID 或名称”的匹配语义。 ## 怎么做 - admin/templates/shopee/list.html:增加带可见标签的 shop_name 输入,修正文案并保留所有表单筛选值。 - admin/static/css/app.css:增加蝦皮工具栏专用 20% 弹性宽度类和最小宽度,不修改其他模块共用样式。 - admin/static/js/app.js:把 shop_name 加入蝦皮模块稳定查询参数白名单。 - admin/handler/web/shopee.go:解析、回填并在分页和操作重定向中保留 shop_name。 - admin/repository/shopee.go:列表和统计共用筛选中增加参数化店铺名称模糊匹配并转义 LIKE 特殊字符。 - admin/service/shopee_list.go 及相关测试:扩展筛选模型和页面视图。 - 同步更新 docs/admin/05-ui-specification.md。 不改数据库和 Client 接口。 ## 验收标准 - [x] 同时显示“商品 ID / 名称”和“店铺名称”两个可见标签输入框,基础宽度均为 20%。 - [x] 1366×768 下工具栏可用;窗口变窄时输入框保持最小可输入宽度并自然换行。 - [x] 店铺名称支持包含匹配,输入 %、_、! 时按普通字符处理。 - [x] 店铺名称可与现有筛选组合,列表总数和分页一致。 - [x] 翻页、删除、详情返回及切换模块后 shop_name 仍被保留。 - [x] 其他模块搜索框宽度不受影响。 - [x] 固定 Go 1.23.0 的 build、test、vet 通过。 ## 怎么验证 从 admin/ 执行固定 Go 1.23.0 的 go vet ./...、go build ./...、go test ./... -count=1。补充模板与 Repository 测试,并在 1366×768 验证布局。 ## 风险和回退 - 风险:窄窗口拥挤。控制:使用 flex-basis、最小宽度和现有换行布局。 - 风险:列表与统计条件不一致。控制:继续复用同一个筛选子句。 - 回退:恢复模板、页面专用 CSS 和筛选参数;无数据库迁移。 ## 实施结果 - 状态:已完成,待用户验收。 - 实现提交:`889f568` - 归档提交:`e32041e` - 归档:`docs/task/182-蝦皮列表店铺名称搜索.md` - 固定 Go 1.23.0:`go vet ./...`、`go build ./...`、`go test ./... -count=1` 全部通过。 - 未验证:未启动浏览器执行 1366×768 人工视觉验收。
Author
Owner

已随生产发布工单 #184 部署到 https://buy.833729.com。生产构建基线 7e2d33c,服务 active/enabled,公网登录页 HTTP 200;当前待用户登录后验收本工单页面行为。

已随生产发布工单 #184 部署到 `https://buy.833729.com`。生产构建基线 `7e2d33c`,服务 active/enabled,公网登录页 HTTP 200;当前待用户登录后验收本工单页面行为。
Author
Owner

用户于 2026-08-13 明确验收通过。工单已完成归档,现关闭工单。

用户于 2026-08-13 明确验收通过。工单已完成归档,现关闭工单。
ila closed this issue 2026-08-13 15:56:09 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#182