From 605cd4f0542552ba8c58739da91d933a8d1c654a Mon Sep 17 00:00:00 2001 From: linxi <957440651@qq.com> Date: Thu, 12 Mar 2026 18:05:38 +0800 Subject: [PATCH] =?UTF-8?q?Feat=EF=BC=9A=E4=BD=93=E9=AA=8C=E5=88=B8?= =?UTF-8?q?=E9=A2=86=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/product.js | 6 +- pages.json | 7 + pages/home/index.vue | 31 ++ pkg_product/views/experienceCoupon.vue | 454 +++++++++++++++++++++++++ 4 files changed, 497 insertions(+), 1 deletion(-) create mode 100644 pkg_product/views/experienceCoupon.vue diff --git a/api/product.js b/api/product.js index 1268d51..36a19dc 100644 --- a/api/product.js +++ b/api/product.js @@ -159,4 +159,8 @@ export function hadView(data) { export function getShareImg(id) { return request.get('/landmarkGoods/poster/' + id, {}, {login: false}) -} \ No newline at end of file +} + +export function getLatestExperienceCoupon() { + return request.get('/experienceCoupon/latest', {}, {login: true}) +} diff --git a/pages.json b/pages.json index 92aa809..c827f7a 100644 --- a/pages.json +++ b/pages.json @@ -737,6 +737,13 @@ "navigationBarTitleText": "时令尝鲜" } }, + { + "path": "views/experienceCoupon", + "style": { + "navigationBarTitleText": "体验券详情", + "navigationBarBackgroundColor": "#FFFFFF" + } + }, { "path": "views/submitOrder", "style": { diff --git a/pages/home/index.vue b/pages/home/index.vue index be1d07f..cde3e57 100644 --- a/pages/home/index.vue +++ b/pages/home/index.vue @@ -85,6 +85,17 @@ + + + { const { data } = res @@ -1429,6 +1447,9 @@ export default { _this.$set(_this, 'contentHomestay', data.contentHomestayV2 || []) _this.$set(_this, 'contentFestival', data.contentFestivalV2 || []) _this.$set(_this, 'newZone', data.newGoods || []) + _this.$set(_this, 'hasExperienceCoupon', data.hasExperienceCoupon || 0) + _this.$set(_this, 'hasUnusedExperienceCoupon', data.hasUnusedExperienceCoupon || 0) + _this.$set(_this, 'experienceCouponImage', data.experienceCouponImage || '') _this.$set(_this, 'isOldUserPopupShow', data.isOldUserPopupShow || 0) _this.indexVideo = data.indexVideo ? data.indexVideo.videoUrl : '' _this.bastLeftList = [] @@ -1802,6 +1823,16 @@ export default { } } } +.experience-coupon-banner { + position: relative; + z-index: 5; + padding-top: 16rpx; + .experience-coupon-img { + display: block; + width: 100%; + border-radius: 20rpx; + } +} .hotel-list-wrap { position: relative; width: 344rpx; diff --git a/pkg_product/views/experienceCoupon.vue b/pkg_product/views/experienceCoupon.vue new file mode 100644 index 0000000..78c972a --- /dev/null +++ b/pkg_product/views/experienceCoupon.vue @@ -0,0 +1,454 @@ + + + + +