|
|
@ -72,8 +72,7 @@ |
|
|
</view> |
|
|
</view> |
|
|
|
|
|
|
|
|
<view class="pintuan group-live-card" :class="{'group-live-card-empty': orderListWait.length === 0}" |
|
|
<view class="pintuan group-live-card" :class="{'group-live-card-empty': orderListWait.length === 0}" |
|
|
style="padding: 0;margin-top:20rpx;display: flex;" |
|
|
style="padding: 0;margin-top:20rpx;display: flex;" @tap="openOrderWait('')"> |
|
|
@tap="openOrderWait('')"> |
|
|
|
|
|
<view class="live-card-header"> |
|
|
<view class="live-card-header"> |
|
|
<view class="live-title-wrap"> |
|
|
<view class="live-title-wrap"> |
|
|
<image class="live-title-gif" src="/static/images/img/loading.gif" mode="aspectFit"></image> |
|
|
<image class="live-title-gif" src="/static/images/img/loading.gif" mode="aspectFit"></image> |
|
|
@ -81,8 +80,9 @@ |
|
|
</view> |
|
|
</view> |
|
|
<view class="live-pill" v-if="orderListWait.length > 0">去凑团</view> |
|
|
<view class="live-pill" v-if="orderListWait.length > 0">去凑团</view> |
|
|
</view> |
|
|
</view> |
|
|
<swiper v-if="orderListWait.length > 0" class="zaixian-swiper" vertical circular :autoplay="orderListWait.length > 0" |
|
|
<swiper v-if="orderListWait.length > 0" class="zaixian-swiper" vertical circular |
|
|
:interval="onlineWorkerInterval" :duration="onlineWorkerDuration"> |
|
|
:autoplay="orderListWait.length > 0" :interval="onlineWorkerInterval" |
|
|
|
|
|
:duration="onlineWorkerDuration"> |
|
|
<swiper-item v-for="(item,index) in orderListWait" :key="index"> |
|
|
<swiper-item v-for="(item,index) in orderListWait" :key="index"> |
|
|
<view class="live-swiper-item"> |
|
|
<view class="live-swiper-item"> |
|
|
<view class="pintuan-left"> |
|
|
<view class="pintuan-left"> |
|
|
@ -100,8 +100,7 @@ |
|
|
</view> |
|
|
</view> |
|
|
<view class="pintuan-right"> |
|
|
<view class="pintuan-right"> |
|
|
<view class="pintuan-right-img"> |
|
|
<view class="pintuan-right-img"> |
|
|
<img src="/static/images/img/songshu.png" |
|
|
<img src="/static/images/img/songshu.png" alt="" /> |
|
|
alt="" /> |
|
|
|
|
|
<view class="weipincheng">+</view> |
|
|
<view class="weipincheng">+</view> |
|
|
</view> |
|
|
</view> |
|
|
<view class="pintuan-right-cha"> |
|
|
<view class="pintuan-right-cha"> |
|
|
@ -152,7 +151,9 @@ |
|
|
<view class="goods-deal1"> |
|
|
<view class="goods-deal1"> |
|
|
销量 <text> {{item.tailWarn != null ? item.tailWarn : 0}}</text> |
|
|
销量 <text> {{item.tailWarn != null ? item.tailWarn : 0}}</text> |
|
|
</view> |
|
|
</view> |
|
|
<view style="width: 40%;text-align: right;font-size: 14px;color: #777;font-weight: 700;text-decoration: line-through;" v-if="groupId && item.isMoreBuy != 0"> |
|
|
<view |
|
|
|
|
|
style="width: 40%;text-align: right;font-size: 14px;color: #777;font-weight: 700;text-decoration: line-through;" |
|
|
|
|
|
v-if="groupId && item.isMoreBuy != 0"> |
|
|
¥{{item.attributeListPrice | sliceMsg}} |
|
|
¥{{item.attributeListPrice | sliceMsg}} |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
@ -160,8 +161,7 @@ |
|
|
<view class="goods-tag" @tap.stop="openOrderWait(item)" |
|
|
<view class="goods-tag" @tap.stop="openOrderWait(item)" |
|
|
v-if="item.orderListWait != undefined && item.orderListWait.length > 0"> |
|
|
v-if="item.orderListWait != undefined && item.orderListWait.length > 0"> |
|
|
<view class="pintuan-right-img"> |
|
|
<view class="pintuan-right-img"> |
|
|
<img src="/static/images/img/songshu.png" |
|
|
<img src="/static/images/img/songshu.png" alt="" /> |
|
|
alt="" /> |
|
|
|
|
|
<view class="weipincheng">+</view> |
|
|
<view class="weipincheng">+</view> |
|
|
</view> |
|
|
</view> |
|
|
<view class="pintuan-right-cha"> |
|
|
<view class="pintuan-right-cha"> |
|
|
@ -303,7 +303,8 @@ |
|
|
<uni-icons type="close" size="30" color="#fff"></uni-icons> |
|
|
<uni-icons type="close" size="30" color="#fff"></uni-icons> |
|
|
</view> |
|
|
</view> |
|
|
<view class="popup-rally-title" v-if="isPintuan"> |
|
|
<view class="popup-rally-title" v-if="isPintuan"> |
|
|
<view class="popup-rally-main">{{isStoreGroupOrder ? '到店团购搭子哪里找-同校同学一起省!' : '拼团搭子哪里找-隔壁宿舍全是宝!'}}</view> |
|
|
<view class="popup-rally-main">{{isStoreGroupOrder ? '到店团购搭子哪里找-同校同学一起省!' : '拼团搭子哪里找-隔壁宿舍全是宝!'}} |
|
|
|
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
<view class="goods-top popup-product-card"> |
|
|
<view class="goods-top popup-product-card"> |
|
|
<view class="goods-img"> |
|
|
<view class="goods-img"> |
|
|
@ -424,12 +425,11 @@ |
|
|
<view class="bottom popup-bottom-bar" style="padding-bottom: 40rpx;height: 160rpx;z-index: 10;"> |
|
|
<view class="bottom popup-bottom-bar" style="padding-bottom: 40rpx;height: 160rpx;z-index: 10;"> |
|
|
<view v-if="isPintuan" class="pintuan1"> |
|
|
<view v-if="isPintuan" class="pintuan1"> |
|
|
<template v-if="!groupId"> |
|
|
<template v-if="!groupId"> |
|
|
<view class="pintuan2 group-face-btn" |
|
|
<view class="pintuan2 group-face-btn" @tap.stop="submitPintuan(true)"> |
|
|
@tap.stop="submitPintuan(true)"> |
|
|
<uni-icons type="help" size="16" style="padding-right: 20rpx;margin-top: 4rpx;" |
|
|
<uni-icons type="help" size="16" style="padding-right: 20rpx;margin-top: 4rpx;" @tap.stop="openMianRemark"></uni-icons>面对面团 |
|
|
@tap.stop="openMianRemark"></uni-icons>面对面团 |
|
|
</view> |
|
|
</view> |
|
|
<view class="pintuan2 group-submit-btn" |
|
|
<view class="pintuan2 group-submit-btn" @tap.stop="submitPintuan(false)"> |
|
|
@tap.stop="submitPintuan(false)"> |
|
|
|
|
|
{{isStoreGroupOrder ? '发起到店团' : '发起拼团'}}¥{{selectedGroupRule && selectedGroupRule.groupPrice ? parseFloat(selectedGroupRule.groupPriceAndMore).toFixed(2) : '0.00'}} |
|
|
{{isStoreGroupOrder ? '发起到店团' : '发起拼团'}}¥{{selectedGroupRule && selectedGroupRule.groupPrice ? parseFloat(selectedGroupRule.groupPriceAndMore).toFixed(2) : '0.00'}} |
|
|
</view> |
|
|
</view> |
|
|
</template> |
|
|
</template> |
|
|
@ -464,8 +464,7 @@ |
|
|
:key="index"> |
|
|
:key="index"> |
|
|
<view class="list-right"> |
|
|
<view class="list-right"> |
|
|
<view class="list-right-img"> |
|
|
<view class="list-right-img"> |
|
|
<img src="/static/images/img/songshu.png" |
|
|
<img src="/static/images/img/songshu.png" alt="" /> |
|
|
alt="" /> |
|
|
|
|
|
<view class="list-weipincheng">+</view> |
|
|
<view class="list-weipincheng">+</view> |
|
|
</view> |
|
|
</view> |
|
|
<view class="list-right-cha"> |
|
|
<view class="list-right-cha"> |
|
|
@ -505,10 +504,12 @@ |
|
|
</view> |
|
|
</view> |
|
|
<view style="height: 40rpx;text-align: center;color: #777;"> |
|
|
<view style="height: 40rpx;text-align: center;color: #777;"> |
|
|
|
|
|
|
|
|
<text v-if="groupId != '' && isFaceToFaceGroup && groupdeliveryType == 1">配送费(均摊) {{tuanzhangOrder.deliveryFee}} 元 |
|
|
<text v-if="groupId != '' && isFaceToFaceGroup && groupdeliveryType == 1">配送费(均摊) |
|
|
|
|
|
{{tuanzhangOrder.deliveryFee}} 元 |
|
|
</text> |
|
|
</text> |
|
|
|
|
|
|
|
|
<text v-if="groupdeliveryType == 1 && currentItem.lunchBox > 0"> 打包费 {{currentItem.lunchBox}} 元</text> |
|
|
<text v-if="groupdeliveryType == 1 && currentItem.lunchBox > 0"> 打包费 |
|
|
|
|
|
{{currentItem.lunchBox}} 元</text> |
|
|
</view> |
|
|
</view> |
|
|
<view style="height: 40rpx;text-align: center;color: #ff5722;" v-if="selectedCoupon"> |
|
|
<view style="height: 40rpx;text-align: center;color: #ff5722;" v-if="selectedCoupon"> |
|
|
优惠券抵扣 -¥{{selectedCoupon.discountAmount.toFixed(2)}} |
|
|
优惠券抵扣 -¥{{selectedCoupon.discountAmount.toFixed(2)}} |
|
|
@ -517,7 +518,8 @@ |
|
|
若拼团失败,将会为您自动退款 |
|
|
若拼团失败,将会为您自动退款 |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
<view class="box1" style="display: flex;padding: 40rpx;" v-if="groupdeliveryType == 2 && !isStoreGroupOrder"> |
|
|
<view class="box1" style="display: flex;padding: 40rpx;" |
|
|
|
|
|
v-if="groupdeliveryType == 2 && !isStoreGroupOrder"> |
|
|
<view style="flex: 1;"> |
|
|
<view style="flex: 1;"> |
|
|
<view style="height: 42rpx;line-height: 42rpx;display: flex;"> |
|
|
<view style="height: 42rpx;line-height: 42rpx;display: flex;"> |
|
|
<!-- <img src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/4c8e0cc311db4d38ab43e019673c4b8c.png" |
|
|
<!-- <img src="https://jewel-shop.oss-cn-beijing.aliyuncs.com/4c8e0cc311db4d38ab43e019673c4b8c.png" |
|
|
@ -608,8 +610,7 @@ |
|
|
</view> |
|
|
</view> |
|
|
<view class="kaituan2" style="display: flex;justify-content: center;margin-top: 60rpx;"> |
|
|
<view class="kaituan2" style="display: flex;justify-content: center;margin-top: 60rpx;"> |
|
|
<view class="kaituan22"> |
|
|
<view class="kaituan22"> |
|
|
<img src="/static/images/img/songshu.png" |
|
|
<img src="/static/images/img/songshu.png" alt="" |
|
|
alt="" |
|
|
|
|
|
style="width: 90rpx;height: 90rpx;border-radius: 90rpx;margin: 0 auto;display: block;" /> |
|
|
style="width: 90rpx;height: 90rpx;border-radius: 90rpx;margin: 0 auto;display: block;" /> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
</view> |
|
|
@ -636,7 +637,8 @@ |
|
|
<view |
|
|
<view |
|
|
style="flex: 1; display: flex; flex-direction: column; justify-content: center; margin-left: 20rpx;"> |
|
|
style="flex: 1; display: flex; flex-direction: column; justify-content: center; margin-left: 20rpx;"> |
|
|
<view style="font-size: 28rpx; font-weight: bold; color: #333; margin-bottom: 6rpx;"> |
|
|
<view style="font-size: 28rpx; font-weight: bold; color: #333; margin-bottom: 6rpx;"> |
|
|
{{item.couponName}}</view> |
|
|
{{item.couponName}} |
|
|
|
|
|
</view> |
|
|
<view style="font-size: 22rpx; color: #999;" v-if="item.minAmount > 0"> |
|
|
<view style="font-size: 22rpx; color: #999;" v-if="item.minAmount > 0"> |
|
|
满{{item.minAmount}}可用</view> |
|
|
满{{item.minAmount}}可用</view> |
|
|
<view style="font-size: 22rpx; color: #999;" v-else>无门槛使用</view> |
|
|
<view style="font-size: 22rpx; color: #999;" v-else>无门槛使用</view> |
|
|
@ -696,7 +698,7 @@ |
|
|
return { |
|
|
return { |
|
|
loadStatus: 'more', |
|
|
loadStatus: 'more', |
|
|
type: '', |
|
|
type: '', |
|
|
isPindan:true, |
|
|
isPindan: true, |
|
|
orderScene: '', |
|
|
orderScene: '', |
|
|
shopId: '', |
|
|
shopId: '', |
|
|
shopItem: { |
|
|
shopItem: { |
|
|
@ -708,7 +710,7 @@ |
|
|
remark: '', |
|
|
remark: '', |
|
|
}, |
|
|
}, |
|
|
productId: '', |
|
|
productId: '', |
|
|
nowMake:true, |
|
|
nowMake: true, |
|
|
isPack: 0, |
|
|
isPack: 0, |
|
|
productItem: [], |
|
|
productItem: [], |
|
|
tuanzhangOrder: {}, |
|
|
tuanzhangOrder: {}, |
|
|
@ -881,8 +883,7 @@ |
|
|
this.getCategory(this.shopItem.id); |
|
|
this.getCategory(this.shopItem.id); |
|
|
this.getProduct(''); |
|
|
this.getProduct(''); |
|
|
}, |
|
|
}, |
|
|
onReady() { |
|
|
onReady() {}, |
|
|
}, |
|
|
|
|
|
onPageScroll(e) { |
|
|
onPageScroll(e) { |
|
|
this.lastScrollTop = e.scrollTop; |
|
|
this.lastScrollTop = e.scrollTop; |
|
|
// 节流:80ms 内不重复检测,避免频繁的 selectorQuery |
|
|
// 节流:80ms 内不重复检测,避免频繁的 selectorQuery |
|
|
@ -892,7 +893,7 @@ |
|
|
this.detectCurrentCategory(); |
|
|
this.detectCurrentCategory(); |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
nowMakeMethod(){ |
|
|
nowMakeMethod() { |
|
|
this.nowMake = !this.nowMake |
|
|
this.nowMake = !this.nowMake |
|
|
}, |
|
|
}, |
|
|
scrollGoodsListToTop() { |
|
|
scrollGoodsListToTop() { |
|
|
@ -1690,7 +1691,7 @@ |
|
|
|
|
|
|
|
|
let amountInCents = Math.round(this.backendTotalAmount * 100); |
|
|
let amountInCents = Math.round(this.backendTotalAmount * 100); |
|
|
let userRequireMake = 0 |
|
|
let userRequireMake = 0 |
|
|
if(this.nowMake && this.groupdeliveryType == 2 && !this.isStoreGroupOrder){ |
|
|
if (this.nowMake && this.groupdeliveryType == 2 && !this.isStoreGroupOrder) { |
|
|
userRequireMake = 1 |
|
|
userRequireMake = 1 |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -1698,7 +1699,7 @@ |
|
|
openid: uni.getStorageSync('miniProgramOpenid') || 'test-openid', |
|
|
openid: uni.getStorageSync('miniProgramOpenid') || 'test-openid', |
|
|
amount: amountInCents, |
|
|
amount: amountInCents, |
|
|
description: '商城订单', |
|
|
description: '商城订单', |
|
|
userRequireMake:userRequireMake, |
|
|
userRequireMake: userRequireMake, |
|
|
isPack: this.groupdeliveryType == 2 ? this.isPack : 1, |
|
|
isPack: this.groupdeliveryType == 2 ? this.isPack : 1, |
|
|
outTradeNo: this.currentOrderId |
|
|
outTradeNo: this.currentOrderId |
|
|
}, false, false).then((res) => { |
|
|
}, false, false).then((res) => { |
|
|
@ -1782,7 +1783,7 @@ |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
}, |
|
|
}, |
|
|
openMianRemark(){ |
|
|
openMianRemark() { |
|
|
this.isPindan = false; |
|
|
this.isPindan = false; |
|
|
this.$refs.tishiPopup.open() |
|
|
this.$refs.tishiPopup.open() |
|
|
}, |
|
|
}, |
|
|
@ -1803,7 +1804,9 @@ |
|
|
if (pages.length > 1) { |
|
|
if (pages.length > 1) { |
|
|
uni.navigateBack(); |
|
|
uni.navigateBack(); |
|
|
} else { |
|
|
} else { |
|
|
uni.switchTab({ url: '/pages/index/index' }); |
|
|
uni.switchTab({ |
|
|
|
|
|
url: '/pages/index/index' |
|
|
|
|
|
}); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -2089,6 +2092,7 @@ |
|
|
border-radius: 20rpx; |
|
|
border-radius: 20rpx; |
|
|
overflow: hidden; |
|
|
overflow: hidden; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.fee-value { |
|
|
.fee-value { |
|
|
color: #00231C; |
|
|
color: #00231C; |
|
|
font-weight: 800; |
|
|
font-weight: 800; |
|
|
@ -2562,8 +2566,9 @@ |
|
|
top: 110rpx; |
|
|
top: 110rpx; |
|
|
left: 80rpx; |
|
|
left: 80rpx; |
|
|
} |
|
|
} |
|
|
.tishi-popup{ |
|
|
|
|
|
background:url('https://jewel-shop.oss-cn-beijing.aliyuncs.com/629843c61a014d69bf3a1195f51a898b.png') no-repeat; |
|
|
.tishi-popup { |
|
|
|
|
|
background: url('https://jewel-shop.oss-cn-beijing.aliyuncs.com/629843c61a014d69bf3a1195f51a898b.png') no-repeat; |
|
|
width: 300px; |
|
|
width: 300px; |
|
|
height: 285px; |
|
|
height: 285px; |
|
|
box-sizing: border-box; |
|
|
box-sizing: border-box; |
|
|
@ -2601,6 +2606,7 @@ |
|
|
color: #ff7043; |
|
|
color: #ff7043; |
|
|
font-weight: 900; |
|
|
font-weight: 900; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.spark-b { |
|
|
.spark-b { |
|
|
width: 24rpx; |
|
|
width: 24rpx; |
|
|
height: 24rpx; |
|
|
height: 24rpx; |
|
|
@ -3093,9 +3099,12 @@ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes checkoutTextShine { |
|
|
@keyframes checkoutTextShine { |
|
|
0%, 40% { |
|
|
|
|
|
|
|
|
0%, |
|
|
|
|
|
40% { |
|
|
transform: translateX(0) rotate(18deg); |
|
|
transform: translateX(0) rotate(18deg); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
100% { |
|
|
100% { |
|
|
transform: translateX(480rpx) rotate(18deg); |
|
|
transform: translateX(480rpx) rotate(18deg); |
|
|
} |
|
|
} |
|
|
@ -3594,8 +3603,13 @@ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes freeMaskFade { |
|
|
@keyframes freeMaskFade { |
|
|
0% { opacity: 0; } |
|
|
0% { |
|
|
100% { opacity: 1; } |
|
|
opacity: 0; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
100% { |
|
|
|
|
|
opacity: 1; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes freeCardPop { |
|
|
@keyframes freeCardPop { |
|
|
@ -3615,43 +3629,101 @@ |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes freeRaysSpin { |
|
|
@keyframes freeRaysSpin { |
|
|
0% { transform: rotate(0deg) scale(1); } |
|
|
0% { |
|
|
100% { transform: rotate(360deg) scale(1.06); } |
|
|
transform: rotate(0deg) scale(1); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
100% { |
|
|
|
|
|
transform: rotate(360deg) scale(1.06); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes freeTitlePop { |
|
|
@keyframes freeTitlePop { |
|
|
0%, 100% { transform: scale(1); } |
|
|
|
|
|
50% { transform: scale(1.025); } |
|
|
0%, |
|
|
|
|
|
100% { |
|
|
|
|
|
transform: scale(1); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
50% { |
|
|
|
|
|
transform: scale(1.025); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes freeAmountBeat { |
|
|
@keyframes freeAmountBeat { |
|
|
0%, 100% { transform: scale(1); } |
|
|
|
|
|
50% { transform: scale(1.045); } |
|
|
0%, |
|
|
|
|
|
100% { |
|
|
|
|
|
transform: scale(1); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
50% { |
|
|
|
|
|
transform: scale(1.045); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes freeAmountAura { |
|
|
@keyframes freeAmountAura { |
|
|
0% { background-position: 0% 50%; } |
|
|
0% { |
|
|
100% { background-position: 260% 50%; } |
|
|
background-position: 0% 50%; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
100% { |
|
|
|
|
|
background-position: 260% 50%; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes rewardBtnFloat { |
|
|
@keyframes rewardBtnFloat { |
|
|
0%, 100% { transform: translateY(0) scale(1); } |
|
|
|
|
|
50% { transform: translateY(-8rpx) scale(1.025); } |
|
|
0%, |
|
|
|
|
|
100% { |
|
|
|
|
|
transform: translateY(0) scale(1); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
50% { |
|
|
|
|
|
transform: translateY(-8rpx) scale(1.025); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes orbFloat { |
|
|
@keyframes orbFloat { |
|
|
0%, 100% { transform: translateY(0) scale(1); opacity: 0.72; } |
|
|
|
|
|
50% { transform: translateY(-24rpx) scale(1.08); opacity: 1; } |
|
|
0%, |
|
|
|
|
|
100% { |
|
|
|
|
|
transform: translateY(0) scale(1); |
|
|
|
|
|
opacity: 0.72; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
50% { |
|
|
|
|
|
transform: translateY(-24rpx) scale(1.08); |
|
|
|
|
|
opacity: 1; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes confettiFloat { |
|
|
@keyframes confettiFloat { |
|
|
0%, 100% { transform: translateY(0) rotate(0deg); opacity: 0.4; } |
|
|
|
|
|
50% { transform: translateY(44rpx) rotate(150deg); opacity: 1; } |
|
|
0%, |
|
|
|
|
|
100% { |
|
|
|
|
|
transform: translateY(0) rotate(0deg); |
|
|
|
|
|
opacity: 0.4; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
50% { |
|
|
|
|
|
transform: translateY(44rpx) rotate(150deg); |
|
|
|
|
|
opacity: 1; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@keyframes starTwinkle { |
|
|
@keyframes starTwinkle { |
|
|
0%, 100% { transform: scale(0.6); opacity: 0.35; } |
|
|
|
|
|
50% { transform: scale(1.45); opacity: 1; } |
|
|
0%, |
|
|
|
|
|
100% { |
|
|
|
|
|
transform: scale(0.6); |
|
|
|
|
|
opacity: 0.35; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
50% { |
|
|
|
|
|
transform: scale(1.45); |
|
|
|
|
|
opacity: 1; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.store-group-page { |
|
|
.store-group-page { |
|
|
|