Files
YGChatCS/docs/superpowers/specs/2026-08-12-ticket-category-product-groups-design.md

1.5 KiB

TicketHome 分类商品组数据结构调整设计

目标

适配 scenicProductHome 最新响应结构。TicketHome.vue 不再使用 categories 和旧的 products.records,分类导航、分组信息与首屏商品统一来自 homeData.categoryProductGroups

数据与交互

  • groups 只读取有效数组 homeData.categoryProductGroups,无效或缺失时使用空数组。
  • 每个分组直接使用 categoryIdcategoryNametitlesubtitledefaultFlagproducts
  • productsForGroup(group) 只返回 group.products;分组没有有效商品数组时返回空数组,不再扁平化或按 categoryId 二次过滤。
  • selectedCategoryId 继续作为初始选中分类;若不存在于商品组中,则选择第一个商品组。
  • 左侧分类点击滚动到对应右侧分组;右侧滚动继续同步左侧高亮。
  • 空分组继续展示“暂无可售商品”,完全没有分组时展示“暂无商品分类”。
  • 商品卡字段和点击行为不变,详情与选购仍传递 commodityId
  • 本次不使用 totalhasMorepageNopageSize,也不调用分类分页接口。

验证

  • 先更新契约测试,使其要求读取 categoryProductGroupsgroup.products,并禁止出现 homeData.categorieshomeData.products.records 与按 categoryId 二次过滤。
  • 确认测试在旧实现上失败后修改组件。
  • 完成后运行完整票务视图契约、票务模型测试、git diff --check 和微信小程序开发编译。