From 0ad44c2e1eb1f4c16c4dfbb080d587f43cbb765e Mon Sep 17 00:00:00 2001 From: chengma Date: Tue, 11 Aug 2026 12:05:12 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=BD=92=E6=A1=A3=E4=BB=BB=E5=8A=A1=20?= =?UTF-8?q?#150?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/task/150-蝦皮店铺图片筛选.md | 59 +++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 docs/task/150-蝦皮店铺图片筛选.md diff --git a/docs/task/150-蝦皮店铺图片筛选.md b/docs/task/150-蝦皮店铺图片筛选.md new file mode 100644 index 0000000..59f6775 --- /dev/null +++ b/docs/task/150-蝦皮店铺图片筛选.md @@ -0,0 +1,59 @@ +# 150 Admin:蝦皮数据增加店铺和图片三态筛选 + +- 类型:需求 +- 父级大工单:#14 +- 所属 MVP / 版本:#15 / 商品目录数据接入后续 +- 状态:已完成 +- 日期:2026-08-11 +- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/150 + +## 背景与目标 + +蝦皮数据页已经展示店铺和主图,但原工具条只能按业务状态及商品 ID/标题查询。 +采购员无法快速查看资料完整的商品,也不能定位缺少店铺或图片、需要补数据的商品。 +本任务增加两个可组合的三态筛选,并保证分页和操作返回不丢失条件。 + +## 最终方案 + +在顶部工具条的状态筛选后依次增加“店铺、图片”两个原生下拉框,每个均为 +“全部 / 有 / 无”三态。没有使用复选框,因为未勾选无法区分“全部”和“无资料”; +没有增加弹窗或 JavaScript,沿用公共工具条 `flex-wrap` 在窄窗口自然换行。 + +GET 参数使用 `shop=has|missing`、`image=has|missing`。handler 负责把未知值归一为 +“全部”,repository 的统一 `shopeeFilterClause` 同时供列表和 COUNT 使用,并将 NULL、 +空字符串和纯空白都视为“无”。service 把两个条件纳入 `IsFiltered`;分页、详情 URL、 +保存/采集返回和删除表单均保留全部条件。筛选无结果时提供清除入口。 + +## 改了哪些 + +- `admin/repository/shopee.go`:扩展筛选对象并集中增加店铺、图片 SQL 条件。 +- `admin/service/shopee_list.go`:增加三态选项、参数归一和筛选状态识别。 +- `admin/handler/web/shopee.go`:读取、透传并在写操作返回时保留新参数。 +- `admin/templates/shopee/list.html`:增加两个下拉框、空状态和删除表单隐藏条件。 +- `admin/templates/shopee/detail_modal.html`:保存、采集表单保留店铺和图片条件。 +- `admin/service/shopee_list_test.go`、`admin/handler/web/pagination_test.go`、`admin/main_test.go`:增加组合筛选、参数、URL、状态条和模板测试。 +- `docs/admin/05-ui-specification.md`:记录工具条顺序、三态语义和状态保留规则。 + +## 验收结果 + +| 验收标准 | 结果 | +|---|---| +| 工具条顺序为状态、店铺、图片、商品 ID | 通过 | +| 店铺和图片均支持全部/有/无 | 通过 | +| NULL、空字符串和纯空白正确归入“无” | 通过 | +| 两条件可互相组合并叠加关键词 | 通过 | +| 未知参数回退全部且默认列表不变 | 通过 | +| 列表和 COUNT 共用 SQL 条件,分页总数一致 | 通过 | +| 分页、详情、保存和采集返回保留条件 | 通过 | +| 无结果显示清除筛选入口 | 通过 | +| 固定 Go 1.23 build/test/vet 通过 | 通过 | + +## 测试 + +- 执行的命令:在 `admin/` 使用 `GOTOOLCHAIN=go1.23.0` 执行 `go build ./...`、`go test ./... -count=1`、`go vet ./...`。 +- 结果:全部通过;`git diff --check` 通过。 +- **没验证到的部分**:未在真实浏览器以 1366×768 和窄窗口人工截图验收;布局复用已经支持换行的公共工具条,模板结构和键盘标签顺序已由代码与测试核对。未部署生产服务器。 + +## 相关提交 + +- `c39f5a7` 增加蝦皮店铺图片筛选