2 Commits
Author SHA1 Message Date
lifizer b348412c74 Refactor(千县):图片增加懒加载,优化渲染速度
(cherry picked from commit 23f3d8b994)
2026-07-29 17:44:40 +08:00
linxi 82455f87ce Fix:抽奖送礼还能选择优惠券
(cherry picked from commit 80078cae78)
2026-07-28 11:15:21 +08:00
4 changed files with 73 additions and 16 deletions
+18 -8
View File
@@ -32,9 +32,9 @@
<image :src="webUrl+'/20210806121714655368.png'" mode="" style="width: 36rpx;height: 36rpx;"></image>
</view>
</view>
<view v-if="couponListLimit2ToShow.length > 0 || attr.productSelect.earnPoints" class="v12-mt-1 v12-mb-1">
<view v-if="(!isCountyLotteryGoodsDetail() && couponListLimit2ToShow.length > 0) || attr.productSelect.earnPoints" class="v12-mt-1 v12-mb-1">
<view class="cell flex jc-between ai-center">
<view v-if="couponListLimit2ToShow.length > 0" class="v12-justify-start">
<view v-if="!isCountyLotteryGoodsDetail() && couponListLimit2ToShow.length > 0" class="v12-justify-start">
<view
v-for="(item, index) in couponListLimit2ToShow"
:key="index"
@@ -48,7 +48,7 @@
</view>
<view
v-if="couponListLimit2ToShow.length > 0"
v-if="!isCountyLotteryGoodsDetail() && couponListLimit2ToShow.length > 0"
class="value value2 v12-font-24 v12-primary-text"
@click="changeCoupons()"
>
@@ -201,7 +201,7 @@
</view>
<!-- v9 优惠券开始 -->
<u-popup :show="show" :round="10" mode="bottom" closeOnClickOverlay @close="changeCoupons()">
<u-popup v-if="!isCountyLotteryGoodsDetail()" :show="show" :round="10" mode="bottom" closeOnClickOverlay @close="changeCoupons()">
<CouponsPopup
:two-list="couponList"
@ok="setCoupon"
@@ -1519,12 +1519,17 @@ export default {
that.isOpen = false
that.attr.cartAttr = false
if (news === 1) {
const orderQuery = {
id: res.data.cartId,
discount: that.storeInfo.discount,
}
if (that.source === 'countyLottery') {
orderQuery.from = 'countyLottery'
orderQuery.drawActivityId = Number(that.activityId || 0)
}
that.$yrouter.push({
path: "/pages/order/OrderSubmission/index",
query: {
id: res.data.cartId,
discount: that.storeInfo.discount,
}
query: orderQuery
})
setTimeout(() => {
that.submitActionLock = false
@@ -1599,11 +1604,16 @@ export default {
listenerActionClose() {
this.posters = false
},
isCountyLotteryGoodsDetail() {
return this.source === 'countyLottery' && Number(this.activityId || 0) > 0
},
// v9-2
changeCoupons(e) {
if (this.isCountyLotteryGoodsDetail()) return
this.show = !this.show
},
setCoupon(couponId) {
if (this.isCountyLotteryGoodsDetail()) return
this.couponId = couponId
},
async checkFavorite() {
+11
View File
@@ -24,6 +24,7 @@
:src="countyFamousTopImage"
class="img"
mode="widthFix"
:lazy-load="true"
/>
<view v-if="list.length > 0" class="province-wrap" id="province-wrap">
<view
@@ -39,6 +40,7 @@
<image
:src="item.icon"
class="img"
:lazy-load="true"
/>
<view class="name one-t">
{{ item.provinceName }}
@@ -61,6 +63,7 @@
<image
:src="webUrl + '/page/qianxian/icon-06.png'"
class="icon"
:lazy-load="true"
/>
</view>
</view>
@@ -95,11 +98,13 @@
<image
:src="county.logo"
class="county-img"
:lazy-load="true"
/>
<view class="county-name">
<image
:src="webUrl + '/home/icon-location.png'"
class="icon"
:lazy-load="true"
/>
<view class="county-txt one-t">
{{ county.countyName }}
@@ -118,11 +123,13 @@
<image
:src="county.logo"
class="county-img"
:lazy-load="true"
/>
<view class="county-name">
<image
:src="webUrl + '/home/icon-location.png'"
class="icon"
:lazy-load="true"
/>
<view class="county-txt one-t">
{{ county.countyName }}
@@ -140,11 +147,13 @@
<image
:src="county.logo"
class="county-img"
:lazy-load="true"
/>
<view class="county-name">
<image
:src="webUrl + '/home/icon-location.png'"
class="icon"
:lazy-load="true"
/>
<view class="county-txt one-t">
{{ county.countyName }}
@@ -160,6 +169,7 @@
:src="webUrl + '/home/no-data-bg.png'"
mode="widthFix"
class="loadend"
:lazy-load="true"
/>
</view>
<image
@@ -167,6 +177,7 @@
:src="webUrl + '/orderIcon/nodata.png'"
class="img-nodata v12-mt-16"
mode="scaleToFill"
:lazy-load="true"
/>
</view>
<goo-skeleton
+13 -1
View File
@@ -224,7 +224,7 @@
@click.stop="handleInfoHotelClick(item)"
>
<view class="info-shop-logo">
<image :src="item.linkHotelLogo" mode="aspectFill" />
<image :src="item.linkHotelLogo" mode="aspectFill" :lazy-load="true" />
</view>
<view class="info-shop-main">
<view class="info-shop-name">
@@ -245,6 +245,7 @@
<image
:src="webUrl + '/20230803152147141807.png'"
class="icon"
:lazy-load="true"
/>
<text class="seeNum-txt">{{ $formatCount(item.pv) }}</text>
</view>
@@ -253,12 +254,14 @@
v-if="!item.hasZan"
:src="webUrl + '/page/hotel/zan-off-2.png'"
class="zan-off-icon"
:lazy-load="true"
@click="likeInfoItemHandle(item, index, item.zan + 1, true)"
/>
<image
v-else
:src="webUrl + '/page/hotel/zan-on-2.png'"
class="zan-on-icon"
:lazy-load="true"
@click="likeInfoItemHandle(item, index, item.zan - 1, false)"
/>
<text
@@ -390,6 +393,7 @@
<image
:src="item"
class="img"
:lazy-load="true"
@click="showPic(index)"
/>
</view>
@@ -413,6 +417,7 @@
:src="item.image"
mode="widthFix"
class="img"
:lazy-load="true"
/>
<view class="info-wrap">
<view class="time">
@@ -470,6 +475,7 @@
<image
:src="webUrl + '/page/qianxian/icon-02.png'"
class="icon"
:lazy-load="true"
/>
重点项目
</view>
@@ -486,6 +492,7 @@
<image
:src="webUrl + '/page/qianxian/icon-05.png'"
class="icon"
:lazy-load="true"
/>
</view>
</view>
@@ -503,6 +510,7 @@
<image
:src="webUrl + '/page/qianxian/icon-02.png'"
class="icon"
:lazy-load="true"
/>
招商政策
</view>
@@ -525,6 +533,7 @@
<image
:src="webUrl + '/page/qianxian/icon-05.png'"
class="icon"
:lazy-load="true"
/>
</view>
</view>
@@ -605,11 +614,13 @@
<image
:src="shop.cover + (shop.coverType === 2 ? '?vframe/jpg/offset/1' : '')"
class="img"
:lazy-load="true"
/>
<view class="location">
<image
:src="webUrl + '/page/qianxian/icon-08.png'"
class="icon"
:lazy-load="true"
/>
<view class="addr one-t">
{{ shop.address }}
@@ -624,6 +635,7 @@
<image
:src="shop.logo"
class="logo"
:lazy-load="true"
/>
<view class="name one-t">
{{ shop.name }}
+31 -7
View File
@@ -95,7 +95,7 @@
<text class="v12-dark-text v12-font-30">{{ computedResult.discountPrice }}</text>
</view>
</view>
<view class="v12-justify-between v12-align-center v12-font-28 v12-mt-1">
<view v-if="!isCountyLotteryGift" class="v12-justify-between v12-align-center v12-font-28 v12-mt-1">
<view class="v12-font-24 v12-dark-text v12-align-center">
<view class="">
优惠券
@@ -163,6 +163,7 @@
@confirm="onPayConfirm"
/>
<u-popup
v-if="!isCountyLotteryGift"
:show="showPopup"
:round="10"
mode="bottom"
@@ -281,6 +282,13 @@ export default {
},
watch: {
async couponId(value) {
if (this.isCountyLotteryGift) {
this.couponTitle = ''
if (Number(value || 0) !== 0) {
this.couponId = 0
return
}
}
this.couponIndex = this.couponList['usable']?.findIndex(item => item.id === +value)
this.couponTitle = this.couponList['usable']?.[this.couponIndex]?.couponTitle
if(this.isGroupBuy) {
@@ -324,6 +332,10 @@ export default {
}
},
methods: {
getCouponId() {
if (this.isCountyLotteryGift) return 0
return this.couponId || 0
},
adjustCoverListForProductStory(coverList, productInfo, defaultTemplate) {
if (!productInfo || !productInfo.productStory) {
return {
@@ -356,14 +368,19 @@ export default {
computedTravelGroupPrice(useDefaultCouponId) {
const params = {
key: this.orderKey,
couponId: this.couponId
couponId: this.getCouponId()
}
computedSojoumGroupBuyGiftOrderPrice(params).then(res => {
this.computedResult = res.data.result
this.couponList = res.data.result.couponList
this.payPrice = res.data.result.payPrice
this.$forceUpdate()
if(useDefaultCouponId) {
if (this.isCountyLotteryGift) {
this.couponTitle = ''
if (this.couponId !== 0) {
this.couponId = 0
}
} else if(useDefaultCouponId) {
this.couponId = res.data.result.defaultCouponId || 0
}
})
@@ -372,6 +389,7 @@ export default {
this.showCoverPicker = true
},
showCouponsPopup() {
if (this.isCountyLotteryGift) return
if (this.couponList.usable && this.couponList.usable.length === 0) return
if(this.isPayOk) return
this.showPopup = !this.showPopup
@@ -380,6 +398,7 @@ export default {
this.showPopup = !this.showPopup
},
changeCoupons(item) {
if (this.isCountyLotteryGift) return
if(!item) return
if (this.couponList.usable && this.couponList.usable.length === 0) return
this.showPopup = !this.showPopup
@@ -448,7 +467,7 @@ export default {
computedPrice(num, f) {
const params = {
cartId: this.cartId,
couponId: this.couponId,
couponId: this.getCouponId(),
cartNum : num
}
if(this.discount) {
@@ -456,7 +475,12 @@ export default {
}
getGiftCardSendOrderAmount(this.orderKey, params).then(res => {
this.couponList = res.data.result.couponList
if(!f) {
if (this.isCountyLotteryGift) {
this.couponTitle = ''
if (this.couponId !== 0) {
this.couponId = 0
}
} else if(!f) {
this.couponId = res.data.result.defaultCouponId || 0
this.$forceUpdate()
}
@@ -564,13 +588,13 @@ export default {
message : this.message || '礼笺轻启,礼藏心意',
canTransfer: this.canTransfer ? 1 : 0,
passwordPay: this.payPassword || '',
couponId: this.couponId,
couponId: this.getCouponId(),
payType: this.payType,
} : {
orderKey: this.orderKey,
from: 'routine',
cartId: this.cartId,
couponId: this.couponId,
couponId: this.getCouponId(),
recipientsNum: this.goodsInfo.cartNum,
templateId: this.templateId,
message : this.message || '礼笺轻启,礼藏心意',