diff --git a/src/pages-service/tickets/components/ProductDetail.vue b/src/pages-service/tickets/components/ProductDetail.vue
index c5e9944..27db41b 100644
--- a/src/pages-service/tickets/components/ProductDetail.vue
+++ b/src/pages-service/tickets/components/ProductDetail.vue
@@ -1,10 +1,13 @@
-
+
1 / {{ productImages.length }}
+
+ 暂无商品图片
+
- {{ highlight }}
- 尚未配置销售标签
-
- {{ product.name }}
- {{ product.description || product.shortTitle || '暂无商品简介' }}
-
- 年龄限制:{{ ageRuleText }}
- 下单时仅对门票游客按使用日和身份证校验。
+ {{ product.fulfillmentLabel }}
+ {{ tag }}
+ {{ product.commodityName }}
+ {{ product.subtitle }}
- 免费预约
+ 免费预约
- ¥
- {{ product.salePrice }}
-
+ {{ currencySymbol }}
+ {{ product.startingPrice }}
+ 起
-
- 费用包含
- · {{ item }}
- 以商品说明为准
-
-
-
- 费用不含
- · {{ item }}
- 无
-
-
-
- 商品详情
- {{ product.detail || product.description || '暂无商品详情' }}
-
-
-
- 购买须知
- {{ product.purchaseNotice || '请以实际预约规则为准。' }}
-
-
-
- 使用说明
- {{ product.useRule || '请按预约日期和场次使用,具体以出票凭证及现场指引为准。' }}
-
-
-
- 退款说明
- {{ product.refundRule || '未使用且符合商品退改规则时可申请退款,最终结果以订单审核为准。' }}
+
+ {{ section.title }}
+ {{ section.content }}
@@ -75,10 +52,10 @@
优惠价
- ¥{{ product.salePrice }}起
+ {{ currencySymbol }}{{ product.startingPrice }}起
-
- 去预订
+
+ {{ product.bookingButtonText || '去预订' }}
@@ -94,11 +71,14 @@ const props = defineProps({
const emit = defineEmits(["buy"]);
const productImages = computed(() =>
- (props.product.images || []).filter(Boolean)
+ [props.product.coverImage, ...(props.product.imageList || [])].filter(Boolean)
+);
+const detailSections = computed(() =>
+ [...(props.product.detailSections || [])].sort(
+ (left, right) => Number(left.sortOrder || 0) - Number(right.sortOrder || 0)
+ )
+);
+const currencySymbol = computed(() =>
+ props.product.currency === "CNY" ? "¥" : props.product.currency || ""
);
-const ageRuleText = computed(() => {
- const { min, max } = props.product.ageRule || {};
- if (Number(max) >= 999) return `${min}周岁及以上`;
- return `${min}—${max}周岁`;
-});
diff --git a/src/pages-service/tickets/index.vue b/src/pages-service/tickets/index.vue
index 789e9d2..9b5d7bb 100644
--- a/src/pages-service/tickets/index.vue
+++ b/src/pages-service/tickets/index.vue
@@ -77,9 +77,9 @@ const openTravelers = () =>
uni.navigateTo({ url: "/pages-service/tickets/travelers" });
const openOrders = () =>
uni.navigateTo({ url: "/pages-service/tickets/orders" });
-const openProductDetail = (productId) =>
+const openProductDetail = (commodityId) =>
uni.navigateTo({
- url: `/pages-service/tickets/product-detail?productId=${productId}`,
+ url: `/pages-service/tickets/product-detail?commodityId=${commodityId}`,
});
const startBooking = (productId) =>
uni.navigateTo({
diff --git a/src/pages-service/tickets/product-detail.vue b/src/pages-service/tickets/product-detail.vue
index 669f47c..8944aa4 100644
--- a/src/pages-service/tickets/product-detail.vue
+++ b/src/pages-service/tickets/product-detail.vue
@@ -6,31 +6,83 @@
title-align="left"
background="#ffffff"
/>
+
+ 正在加载商品详情...
+
+
+
+ {{ errorMessage }}
+
+
+ 重新加载
+
+
- 商品不存在或已下架
+
+ 商品不存在或已下架
+