1.5 KiB
1.5 KiB
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和微信小程序开发编译。