docs: design ticket category product groups

This commit is contained in:
2026-08-12 09:53:43 +08:00
parent 2a1117c1f9
commit 858fc8f41f

View File

@@ -0,0 +1,22 @@
# TicketHome 分类商品组数据结构调整设计
## 目标
适配 `scenicProductHome` 最新响应结构。`TicketHome.vue` 不再使用 `categories` 和旧的 `products.records`,分类导航、分组信息与首屏商品统一来自 `homeData.categoryProductGroups`
## 数据与交互
- `groups` 只读取有效数组 `homeData.categoryProductGroups`,无效或缺失时使用空数组。
- 每个分组直接使用 `categoryId``categoryName``title``subtitle``defaultFlag``products`
- `productsForGroup(group)` 只返回 `group.products`;分组没有有效商品数组时返回空数组,不再扁平化或按 `categoryId` 二次过滤。
- `selectedCategoryId` 继续作为初始选中分类;若不存在于商品组中,则选择第一个商品组。
- 左侧分类点击滚动到对应右侧分组;右侧滚动继续同步左侧高亮。
- 空分组继续展示“暂无可售商品”,完全没有分组时展示“暂无商品分类”。
- 商品卡字段和点击行为不变,详情与选购仍传递 `commodityId`
- 本次不使用 `total``hasMore``pageNo``pageSize`,也不调用分类分页接口。
## 验证
- 先更新契约测试,使其要求读取 `categoryProductGroups``group.products`,并禁止出现 `homeData.categories``homeData.products.records` 与按 `categoryId` 二次过滤。
- 确认测试在旧实现上失败后修改组件。
- 完成后运行完整票务视图契约、票务模型测试、`git diff --check` 和微信小程序开发编译。