docs: design ticket category product groups
This commit is contained in:
@@ -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` 和微信小程序开发编译。
|
||||||
Reference in New Issue
Block a user