From ef4525fbcd3e8396217591e40c1834e1447f8a68 Mon Sep 17 00:00:00 2001 From: zoujing Date: Wed, 12 Aug 2026 09:56:45 +0800 Subject: [PATCH] fix: read ticket category product groups --- src/pages-service/tickets/components/TicketHome.vue | 11 +++-------- src/pages-service/tickets/view-contract.test.mjs | 8 ++++++-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/pages-service/tickets/components/TicketHome.vue b/src/pages-service/tickets/components/TicketHome.vue index 2aeb366..fafd54c 100644 --- a/src/pages-service/tickets/components/TicketHome.vue +++ b/src/pages-service/tickets/components/TicketHome.vue @@ -148,11 +148,8 @@ const props = defineProps({ const emit = defineEmits(['back', 'open-travelers', 'open-orders', 'open-detail', 'buy']) const groups = computed(() => - Array.isArray(props.homeData.categories) ? props.homeData.categories : [] -) -const products = computed(() => - Array.isArray(props.homeData.products?.records) - ? props.homeData.products.records + Array.isArray(props.homeData.categoryProductGroups) + ? props.homeData.categoryProductGroups : [] ) const preferredCategoryId = String(props.homeData.selectedCategoryId || '') @@ -179,9 +176,7 @@ const isMp4Video = (url) => { const isActiveGroup = (groupId) => String(groupId) === String(activeGroupId.value) const productsForGroup = (group) => - products.value.filter( - (product) => String(product.categoryId) === String(group.categoryId) - ) + Array.isArray(group.products) ? group.products : [] const selectGroup = (groupId) => { activeGroupId.value = groupId diff --git a/src/pages-service/tickets/view-contract.test.mjs b/src/pages-service/tickets/view-contract.test.mjs index 2357e0f..984ffe6 100644 --- a/src/pages-service/tickets/view-contract.test.mjs +++ b/src/pages-service/tickets/view-contract.test.mjs @@ -104,10 +104,14 @@ test("TicketHome consumes scenic home response fields directly", async () => { assert.ok(source.includes(field), `${field} is not rendered`); } - assert.match(source, /props\.homeData\.products\?\.records/); + assert.match(source, /props\.homeData\.categoryProductGroups/); assert.match( source, - /product\.categoryId\) === String\(group\.categoryId/ + /Array\.isArray\(group\.products\) \? group\.products : \[\]/ + ); + assert.doesNotMatch( + source, + /homeData\.categories|homeData\.products|products\.value\.filter/ ); assert.match(source, /emit\('open-detail', product\.commodityId\)/); assert.match(source, /emit\('buy', product\.commodityId\)/);