|
|
|
@ -1,102 +1,76 @@ |
|
|
|
<template> |
|
|
|
<view class="container"> |
|
|
|
<view class="header"> |
|
|
|
<view class="header-bg"> |
|
|
|
<image |
|
|
|
src="/static/member-background.png" |
|
|
|
class="header-img" |
|
|
|
mode="scaleToFill" |
|
|
|
/> |
|
|
|
<!-- #ifndef H5 --> |
|
|
|
<text class="header-title">会员开通</text> |
|
|
|
<!-- 加一个推出箭头 --> |
|
|
|
<view class="header-icon" @click="goBack"> |
|
|
|
<uv-icon name="arrow-left" color="#000" size="20" /> |
|
|
|
</view> |
|
|
|
<!-- #endif --> |
|
|
|
<view class="header"> |
|
|
|
<view class="header-bg"> |
|
|
|
<image src="/static/member-background.png" class="header-img" mode="scaleToFill" /> |
|
|
|
<!-- #ifndef H5 --> |
|
|
|
<text class="header-title">会员开通</text> |
|
|
|
<!-- 加一个推出箭头 --> |
|
|
|
<view class="header-icon" @click="goBack"> |
|
|
|
<uv-icon name="arrow-left" color="#000" size="20" /> |
|
|
|
</view> |
|
|
|
<!-- #endif --> |
|
|
|
<!-- 轮播容器 --> |
|
|
|
<view class="uv-demo-block swiper-container"> |
|
|
|
<uv-swiper |
|
|
|
bgColor="transparent" |
|
|
|
:list="list" |
|
|
|
:loading="!list.length" |
|
|
|
@change="changeSwiper" |
|
|
|
keyName="img" |
|
|
|
previousMargin="70" |
|
|
|
nextMargin="70" |
|
|
|
acceleration |
|
|
|
height="75" |
|
|
|
circular |
|
|
|
:autoplay="false" |
|
|
|
radius="5" |
|
|
|
> |
|
|
|
<uv-swiper bgColor="transparent" :list="list" :loading="!list.length" @change="changeSwiper" |
|
|
|
keyName="img" previousMargin="70" nextMargin="70" acceleration height="75" circular |
|
|
|
:autoplay="false" radius="5"> |
|
|
|
</uv-swiper> |
|
|
|
<button class="swiper-btn"> |
|
|
|
已选择 |
|
|
|
</button> |
|
|
|
<image |
|
|
|
class="swiper-arrow" |
|
|
|
src="/static/decorative-arrow.png" |
|
|
|
mode="aspectFill" |
|
|
|
/> |
|
|
|
<image class="swiper-arrow" src="/static/decorative-arrow.png" mode="aspectFill" /> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 会员套餐选择容器 --> |
|
|
|
<view class="membership-container"> |
|
|
|
<!-- 套餐选择 --> |
|
|
|
<view class="package-list"> |
|
|
|
<view |
|
|
|
class="package-item" |
|
|
|
:class="{ 'active': selectedPackage === index }" |
|
|
|
v-for="(item, index) in packageList" |
|
|
|
:key="index" |
|
|
|
@click="selectPackage(index)" |
|
|
|
> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 会员套餐选择容器 --> |
|
|
|
<view class="membership-container"> |
|
|
|
<!-- 套餐选择 --> |
|
|
|
<view class="package-list"> |
|
|
|
<view class="package-item" :class="{ 'active': selectedPackage === index }" |
|
|
|
v-for="(item, index) in packageList" :key="index" @click="selectPackage(index)"> |
|
|
|
<view class="info"> |
|
|
|
<!-- 赠送标识 --> |
|
|
|
<view class="gift-tag" v-if="item.content"> |
|
|
|
<view class="gift-tag" v-if="item.content"> |
|
|
|
{{ item.content }} |
|
|
|
</view> |
|
|
|
|
|
|
|
<view class="package-title">{{ item.title }}</view> |
|
|
|
|
|
|
|
<view class="package-price">¥{{ getInt(item.discountedprice) }}.<text class="package-decimal">{{ getDecimal(item.discountedprice) }}</text></view> |
|
|
|
<view class="package-original">¥{{ item.originalprice }}</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<view class="package-title">{{ item.title }}</view> |
|
|
|
|
|
|
|
<view class="package-price">¥{{ getInt(item.discountedprice) }}.<text |
|
|
|
class="package-decimal">{{ getDecimal(item.discountedprice) }}</text></view> |
|
|
|
<view class="package-original">¥{{ item.originalprice }}</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<view class="package-btn" :class="{ 'active': selectedPackage === index }"> |
|
|
|
{{ selectedPackage === index ? '已选择' : '点击选择' }} |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 优惠券选择 --> |
|
|
|
<view class="coupon-section"> |
|
|
|
<view class="coupon-title">选择优惠券</view> |
|
|
|
<view class="coupon-selector" @click="selectCoupon"> |
|
|
|
<view v-if="!selectedCoupon" class="coupon-placeholder"> |
|
|
|
<text class="coupon-text">请选择</text> |
|
|
|
<uv-icon name="arrow-right" color="#999" size="16" /> |
|
|
|
</view> |
|
|
|
<view v-else class="coupon-selected"> |
|
|
|
<view class="coupon-info"> |
|
|
|
<text class="coupon-name">{{ selectedCoupon.name }}</text> |
|
|
|
<text class="coupon-amount">-¥{{ selectedCoupon.money }}</text> |
|
|
|
</view> |
|
|
|
<uv-icon name="arrow-right" color="#999" size="16" /> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 立即开通会员按钮 --> |
|
|
|
<view class="member-button-section"> |
|
|
|
<uv-button |
|
|
|
type="primary" |
|
|
|
text="立即开通会员" |
|
|
|
:custom-style="{ |
|
|
|
|
|
|
|
<view class="package-btn" :class="{ 'active': selectedPackage === index }"> |
|
|
|
{{ selectedPackage === index ? '已选择' : '点击选择' }} |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 优惠券选择 --> |
|
|
|
<view class="coupon-section"> |
|
|
|
<view class="coupon-title">选择优惠券</view> |
|
|
|
<view class="coupon-selector" @click="selectCoupon"> |
|
|
|
<view v-if="!selectedCoupon" class="coupon-placeholder"> |
|
|
|
<text class="coupon-text">请选择</text> |
|
|
|
<uv-icon name="arrow-right" color="#999" size="16" /> |
|
|
|
</view> |
|
|
|
<view v-else class="coupon-selected"> |
|
|
|
<view class="coupon-info"> |
|
|
|
<text class="coupon-name">{{ selectedCoupon.name }}</text> |
|
|
|
<text class="coupon-amount">-¥{{ selectedCoupon.money }}</text> |
|
|
|
</view> |
|
|
|
<uv-icon name="arrow-right" color="#999" size="16" /> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 立即开通会员按钮 --> |
|
|
|
<view class="member-button-section"> |
|
|
|
<uv-button type="primary" text="立即开通会员" :custom-style="{ |
|
|
|
width: '100%', |
|
|
|
height: '82rpx', |
|
|
|
borderRadius: '44rpx', |
|
|
|
@ -104,29 +78,27 @@ |
|
|
|
fontSize: '36rpx', |
|
|
|
fontWeight: '500', |
|
|
|
border: '1px solid #06DADC' |
|
|
|
}" |
|
|
|
@click="handleRecharge" |
|
|
|
></uv-button> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 会员权益 --> |
|
|
|
<view class="benefits-section"> |
|
|
|
<view class="benefits-title">会员权益</view> |
|
|
|
|
|
|
|
<view class="benefits-list"> |
|
|
|
<!-- 碎片学习 系统掌握 --> |
|
|
|
<view class="benefit-item" v-for="item in packageList" :key="item.id"> |
|
|
|
<uv-parse :content="item.content" /> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 匹配水平 --> |
|
|
|
<!-- <view class="benefit-item"> |
|
|
|
}" @click="handleRecharge"></uv-button> |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 会员权益 --> |
|
|
|
<view class="benefits-section"> |
|
|
|
<view class="benefits-title">会员权益</view> |
|
|
|
|
|
|
|
<view class="benefits-list"> |
|
|
|
<!-- 碎片学习 系统掌握 --> |
|
|
|
<!-- <view class="benefit-item" v-for="item in packageList" :key="item.id"> --> |
|
|
|
<uv-parse :content="list[selectedMember].content" /> |
|
|
|
<!-- </view> --> |
|
|
|
|
|
|
|
<!-- 匹配水平 --> |
|
|
|
<!-- <view class="benefit-item"> |
|
|
|
<view class="benefit-content"> |
|
|
|
<view class="benefit-title">匹配水平</view> |
|
|
|
<view class="benefit-desc">依据水平精准推课,不做无用功快速提升</view> |
|
|
|
</view> |
|
|
|
<view class="benefit-icon"> |
|
|
|
<image src="/static/member-image-2.png" mode="aspectFit"></image> |
|
|
|
<image src="/static/会员图片2.png" mode="aspectFit"></image> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
@ -137,12 +109,12 @@ |
|
|
|
<view class="benefit-desc">精心设计科学的学习流程 「测试-讲解-练习-检验」知识掌握更牢固</view> |
|
|
|
</view> |
|
|
|
<view class="benefit-icon"> |
|
|
|
<image src="/static/member-image-3.png" mode="aspectFit"></image> |
|
|
|
<image src="/static/会员图片3.png" mode="aspectFit"></image> |
|
|
|
</view> |
|
|
|
</view> --> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
</view> |
|
|
|
</template> |
|
|
|
|
|
|
|
@ -159,67 +131,68 @@ |
|
|
|
defaultPackageList: [ |
|
|
|
|
|
|
|
], |
|
|
|
couponId: '', |
|
|
|
selectedCoupon: null // 选中的优惠券信息 |
|
|
|
couponId: '', |
|
|
|
selectedCoupon: null // 选中的优惠券信息 |
|
|
|
} |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
packageList() { |
|
|
|
return this.list[this.selectedMember]?.setmeals ? this.list[this.selectedMember].setmeals : this |
|
|
|
.defaultPackageList |
|
|
|
} |
|
|
|
}, |
|
|
|
computed:{ |
|
|
|
packageList(){ |
|
|
|
return this.list[this.selectedMember].setmeals.length ? this.list[this.selectedMember].setmeals : this.defaultPackageList |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
methods: { |
|
|
|
handleCouponSelected(coupon) { |
|
|
|
|
|
|
|
// 处理选中的优惠券 |
|
|
|
this.selectedCoupon = coupon |
|
|
|
this.couponId = coupon.id |
|
|
|
|
|
|
|
uni.showToast({ |
|
|
|
title: `已选择优惠券:¥${coupon.money}`, |
|
|
|
icon: 'success' |
|
|
|
}) |
|
|
|
}, |
|
|
|
async handleRecharge(){ |
|
|
|
// console.log('选中的会员id是:', this.packageList[this.selectedPackage]); |
|
|
|
|
|
|
|
const object = { |
|
|
|
// #ifdef H5 |
|
|
|
type : 'official', |
|
|
|
// #endif |
|
|
|
memberId: this.list[this.selectedMember].id, |
|
|
|
setmealId: this.packageList[this.selectedPackage].id |
|
|
|
} |
|
|
|
if (this.couponId) { |
|
|
|
object.couponId = this.couponId |
|
|
|
} |
|
|
|
const res = await this.$api.member.openMember({...object}) |
|
|
|
if (res.code === 200){ |
|
|
|
if (res.result === 0){ |
|
|
|
// 零元购 |
|
|
|
uni.showToast({ |
|
|
|
title: '充值成功', |
|
|
|
icon: 'success' |
|
|
|
}) |
|
|
|
this.goBack() |
|
|
|
}else { |
|
|
|
// 调起微信支付 |
|
|
|
this.$utils.wxPay(res.result, (res) => { |
|
|
|
setTimeout(() => { |
|
|
|
this.goBack() |
|
|
|
}, 1000) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
goBack(){ |
|
|
|
uni.navigateBack() |
|
|
|
}, |
|
|
|
handleCouponSelected(coupon) { |
|
|
|
|
|
|
|
// 处理选中的优惠券 |
|
|
|
this.selectedCoupon = coupon |
|
|
|
this.couponId = coupon.id |
|
|
|
|
|
|
|
uni.showToast({ |
|
|
|
title: `已选择优惠券:¥${coupon.money}`, |
|
|
|
icon: 'success' |
|
|
|
}) |
|
|
|
}, |
|
|
|
async handleRecharge() { |
|
|
|
// console.log('选中的会员id是:', this.packageList[this.selectedPackage]); |
|
|
|
|
|
|
|
const object = { |
|
|
|
// #ifdef H5 |
|
|
|
type: 'official', |
|
|
|
// #endif |
|
|
|
memberId: this.list[this.selectedMember].id, |
|
|
|
setmealId: this.packageList[this.selectedPackage].id |
|
|
|
} |
|
|
|
if (this.couponId) { |
|
|
|
object.couponId = this.couponId |
|
|
|
} |
|
|
|
const res = await this.$api.member.openMember({ |
|
|
|
...object |
|
|
|
}) |
|
|
|
if (res.code === 200) { |
|
|
|
if (res.result === 0) { |
|
|
|
// 零元购 |
|
|
|
uni.showToast({ |
|
|
|
title: '充值成功', |
|
|
|
icon: 'success' |
|
|
|
}) |
|
|
|
this.goBack() |
|
|
|
} else { |
|
|
|
// 调起微信支付 |
|
|
|
this.$utils.wxPay(res.result, (res) => { |
|
|
|
setTimeout(() => { |
|
|
|
this.goBack() |
|
|
|
}, 1000) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
goBack() { |
|
|
|
uni.navigateBack() |
|
|
|
}, |
|
|
|
// 截取价格的整数与小数部分 |
|
|
|
getInt(pri){ |
|
|
|
const price = String(pri) |
|
|
|
getInt(pri) { |
|
|
|
const price = String(pri) |
|
|
|
if (price.indexOf('.') === -1) { |
|
|
|
return price |
|
|
|
} |
|
|
|
@ -228,11 +201,11 @@ |
|
|
|
} |
|
|
|
return String(price).split('.')[0] |
|
|
|
}, |
|
|
|
getDecimal(pri){ |
|
|
|
const price = String(pri) |
|
|
|
getDecimal(pri) { |
|
|
|
const price = String(pri) |
|
|
|
if (price === null) return '00' |
|
|
|
const parts = price.split('.') |
|
|
|
return parts[1] ? parts[1].padEnd(2, '0') : '00' |
|
|
|
return parts[1] ? parts[1].padEnd(2, '0') : '00' |
|
|
|
}, |
|
|
|
selectPackage(index) { |
|
|
|
this.selectedPackage = index |
|
|
|
@ -242,294 +215,306 @@ |
|
|
|
url: '/subPages/user/discount?from=recharge' |
|
|
|
}) |
|
|
|
}, |
|
|
|
async getMemberList(){ |
|
|
|
const memberRes = await this.$api.member.getMemberList() |
|
|
|
if (memberRes.code === 200){ |
|
|
|
this.list = memberRes.result |
|
|
|
} |
|
|
|
}, |
|
|
|
changeSwiper(e){ |
|
|
|
this.selectedMember = e.current |
|
|
|
this.selectedPackage = 0 |
|
|
|
} |
|
|
|
async getMemberList() { |
|
|
|
const memberRes = await this.$api.member.getMemberList() |
|
|
|
if (memberRes.code === 200) { |
|
|
|
this.list = memberRes.result |
|
|
|
} |
|
|
|
}, |
|
|
|
changeSwiper(e) { |
|
|
|
this.selectedMember = e.current |
|
|
|
this.selectedPackage = 0 |
|
|
|
} |
|
|
|
}, |
|
|
|
onShow() { |
|
|
|
// 监听优惠券选择事件 |
|
|
|
uni.$on('couponSelected', this.handleCouponSelected) |
|
|
|
this.getMemberList() |
|
|
|
}, |
|
|
|
onUnload() { |
|
|
|
// 移除事件监听 |
|
|
|
uni.$off('couponSelected', this.handleCouponSelected) |
|
|
|
console.log('接触监听'); |
|
|
|
|
|
|
|
}, |
|
|
|
onShow(){ |
|
|
|
// 监听优惠券选择事件 |
|
|
|
uni.$on('couponSelected', this.handleCouponSelected) |
|
|
|
this.getMemberList() |
|
|
|
}, |
|
|
|
onUnload() { |
|
|
|
// 移除事件监听 |
|
|
|
uni.$off('couponSelected', this.handleCouponSelected) |
|
|
|
console.log('接触监听'); |
|
|
|
|
|
|
|
}, |
|
|
|
} |
|
|
|
</script> |
|
|
|
|
|
|
|
<style lang="scss" scoped> |
|
|
|
.container { |
|
|
|
min-height: 100%; |
|
|
|
} |
|
|
|
|
|
|
|
.header{ |
|
|
|
width: 100%; |
|
|
|
.header-bg{ |
|
|
|
position: relative; |
|
|
|
width: 100%; |
|
|
|
height: 500rpx; |
|
|
|
/* #ifdef H5 */ |
|
|
|
margin-top: -100rpx; |
|
|
|
/* #endif */ |
|
|
|
// background: red; |
|
|
|
.header-img{ |
|
|
|
width: 100%; |
|
|
|
height: 500rpx; |
|
|
|
} |
|
|
|
.header-title{ |
|
|
|
font-size: 32rpx; |
|
|
|
color: black; |
|
|
|
position: absolute; |
|
|
|
top: 100rpx; |
|
|
|
font-weight: 500; |
|
|
|
left: 50%; |
|
|
|
transform: translateX(-50%); |
|
|
|
} |
|
|
|
.header-icon{ |
|
|
|
position: absolute; |
|
|
|
top: 100rpx; |
|
|
|
left: 30rpx; |
|
|
|
} |
|
|
|
.swiper-container{ |
|
|
|
margin-top: -300rpx; |
|
|
|
.swiper-arrow{ |
|
|
|
.container { |
|
|
|
min-height: 100%; |
|
|
|
} |
|
|
|
|
|
|
|
.header { |
|
|
|
width: 100%; |
|
|
|
|
|
|
|
.header-bg { |
|
|
|
position: relative; |
|
|
|
width: 100%; |
|
|
|
height: 500rpx; |
|
|
|
/* #ifdef H5 */ |
|
|
|
margin-top: -100rpx; |
|
|
|
|
|
|
|
/* #endif */ |
|
|
|
// background: red; |
|
|
|
.header-img { |
|
|
|
width: 100%; |
|
|
|
height: 22rpx; |
|
|
|
height: 500rpx; |
|
|
|
} |
|
|
|
.swiper-btn{ |
|
|
|
margin: 35rpx auto 15rpx; |
|
|
|
width: 150rpx; |
|
|
|
height: 52rpx; |
|
|
|
border-radius: 999px; |
|
|
|
background: #06DADC; |
|
|
|
color: white; |
|
|
|
font-size: 28rpx; |
|
|
|
|
|
|
|
.header-title { |
|
|
|
font-size: 32rpx; |
|
|
|
color: black; |
|
|
|
position: absolute; |
|
|
|
top: 100rpx; |
|
|
|
font-weight: 500; |
|
|
|
left: 50%; |
|
|
|
transform: translateX(-50%); |
|
|
|
} |
|
|
|
|
|
|
|
.header-icon { |
|
|
|
position: absolute; |
|
|
|
top: 100rpx; |
|
|
|
left: 30rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.swiper-container { |
|
|
|
margin-top: -300rpx; |
|
|
|
|
|
|
|
.swiper-arrow { |
|
|
|
width: 100%; |
|
|
|
height: 22rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.swiper-btn { |
|
|
|
margin: 35rpx auto 15rpx; |
|
|
|
width: 150rpx; |
|
|
|
height: 52rpx; |
|
|
|
border-radius: 999px; |
|
|
|
background: #06DADC; |
|
|
|
color: white; |
|
|
|
font-size: 28rpx; |
|
|
|
font-weight: 500; |
|
|
|
text-align: center; |
|
|
|
line-height: 52rpx; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/* 立即开通会员按钮样式 */ |
|
|
|
.member-button-section { |
|
|
|
margin: 0 50rpx 40rpx; |
|
|
|
} |
|
|
|
|
|
|
|
// 会员套餐选择容器 |
|
|
|
.membership-container { |
|
|
|
background: linear-gradient(180deg, #DEFFFF 0%, #FBFEFF 22.65%, #FFFFFF 100%); |
|
|
|
padding: 40rpx 30rpx; |
|
|
|
margin-top: 20rpx; |
|
|
|
|
|
|
|
.package-list { |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
gap: 16rpx; |
|
|
|
margin-bottom: 20rpx; |
|
|
|
|
|
|
|
.package-item { |
|
|
|
position: relative; |
|
|
|
flex: 1; |
|
|
|
background: #fff; |
|
|
|
border-radius: 20rpx; |
|
|
|
|
|
|
|
text-align: center; |
|
|
|
line-height: 52rpx; |
|
|
|
border: 2rpx solid #EEEEEE; |
|
|
|
transition: all 0.3s; |
|
|
|
// width: 119; |
|
|
|
height: 210rpx; |
|
|
|
|
|
|
|
// width: 238rpx; |
|
|
|
.info { |
|
|
|
padding: 16rpx 16rpx 0 16rpx; |
|
|
|
} |
|
|
|
|
|
|
|
&.active { |
|
|
|
border-color: $primary-color; |
|
|
|
// box-shadow: 0 4rpx 20rpx rgba(34, 242, 235, 0.2); |
|
|
|
} |
|
|
|
|
|
|
|
.gift-tag { |
|
|
|
position: absolute; |
|
|
|
top: -10rpx; |
|
|
|
left: 0%; |
|
|
|
// transform: translateX(-50%); |
|
|
|
background: #FF6B6B; |
|
|
|
color: #fff; |
|
|
|
font-size: 20rpx; |
|
|
|
padding: 8rpx 16rpx; |
|
|
|
border-radius: 20rpx 20rpx 20rpx 0; |
|
|
|
white-space: nowrap; |
|
|
|
} |
|
|
|
|
|
|
|
.package-title { |
|
|
|
font-size: 28rpx; |
|
|
|
color: #000; |
|
|
|
margin-bottom: 16rpx; |
|
|
|
font-weight: 500; |
|
|
|
} |
|
|
|
|
|
|
|
.package-price { |
|
|
|
font-size: 36rpx; |
|
|
|
color: #FF4800; |
|
|
|
font-weight: 500; |
|
|
|
margin-bottom: 8rpx; |
|
|
|
|
|
|
|
.package-decimal { |
|
|
|
font-size: 24rpx; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.package-original { |
|
|
|
font-size: 24rpx; |
|
|
|
color: #8B8B8B; |
|
|
|
line-height: 1.4; |
|
|
|
text-decoration: line-through; |
|
|
|
margin-bottom: 8rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.package-btn { |
|
|
|
background: #E4E7EB; |
|
|
|
color: #191919; |
|
|
|
font-size: 28rpx; |
|
|
|
// padding: 12rpx 20rpx; |
|
|
|
width: 100%; |
|
|
|
// border-radius: 30rpx; |
|
|
|
transition: all 0.3s; |
|
|
|
height: 52rpx; |
|
|
|
line-height: 52rpx; |
|
|
|
border-radius: 0 0 24rpx 24rpx; |
|
|
|
|
|
|
|
&.active { |
|
|
|
background: $primary-color; |
|
|
|
color: #fff; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/* 立即开通会员按钮样式 */ |
|
|
|
.member-button-section { |
|
|
|
margin: 0 50rpx 40rpx; |
|
|
|
} |
|
|
|
|
|
|
|
// 会员套餐选择容器 |
|
|
|
.membership-container { |
|
|
|
background: linear-gradient(180deg, #DEFFFF 0%, #FBFEFF 22.65%, #FFFFFF 100%); |
|
|
|
padding: 40rpx 30rpx; |
|
|
|
margin-top: 20rpx; |
|
|
|
|
|
|
|
.package-list { |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
gap: 16rpx; |
|
|
|
margin-bottom: 20rpx; |
|
|
|
|
|
|
|
.package-item { |
|
|
|
position: relative; |
|
|
|
flex: 1; |
|
|
|
background: #fff; |
|
|
|
border-radius: 20rpx; |
|
|
|
|
|
|
|
text-align: center; |
|
|
|
border: 2rpx solid #EEEEEE; |
|
|
|
transition: all 0.3s; |
|
|
|
// width: 119; |
|
|
|
height: 210rpx; |
|
|
|
// width: 238rpx; |
|
|
|
.info{ |
|
|
|
padding: 16rpx 16rpx 0 16rpx ; |
|
|
|
|
|
|
|
.coupon-section { |
|
|
|
.coupon-title { |
|
|
|
font-size: 26rpx; |
|
|
|
color: #181818; |
|
|
|
margin-bottom: 10rpx; |
|
|
|
// font-weight: 500; |
|
|
|
} |
|
|
|
&.active { |
|
|
|
border-color: $primary-color; |
|
|
|
// box-shadow: 0 4rpx 20rpx rgba(34, 242, 235, 0.2); |
|
|
|
} |
|
|
|
|
|
|
|
.gift-tag { |
|
|
|
position: absolute; |
|
|
|
top: -10rpx; |
|
|
|
left: 0%; |
|
|
|
// transform: translateX(-50%); |
|
|
|
background: #FF6B6B; |
|
|
|
color: #fff; |
|
|
|
font-size: 20rpx; |
|
|
|
padding: 8rpx 16rpx; |
|
|
|
border-radius: 20rpx 20rpx 20rpx 0; |
|
|
|
white-space: nowrap; |
|
|
|
} |
|
|
|
|
|
|
|
.package-title { |
|
|
|
font-size: 28rpx; |
|
|
|
color: #000; |
|
|
|
margin-bottom: 16rpx; |
|
|
|
font-weight: 500; |
|
|
|
} |
|
|
|
|
|
|
|
.package-price { |
|
|
|
font-size: 36rpx; |
|
|
|
color: #FF4800; |
|
|
|
font-weight: 500; |
|
|
|
margin-bottom: 8rpx; |
|
|
|
.package-decimal{ |
|
|
|
font-size: 24rpx; |
|
|
|
|
|
|
|
.coupon-selector { |
|
|
|
background: #fff; |
|
|
|
border-radius: 16rpx; |
|
|
|
padding: 10rpx 0; |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
align-items: center; |
|
|
|
border-bottom: 2rpx solid #f0f0f0; |
|
|
|
|
|
|
|
.coupon-placeholder { |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
align-items: center; |
|
|
|
width: 100%; |
|
|
|
|
|
|
|
.coupon-text { |
|
|
|
font-size: 32rpx; |
|
|
|
color: #C6C6C6; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.package-original { |
|
|
|
font-size: 24rpx; |
|
|
|
color: #8B8B8B; |
|
|
|
line-height: 1.4; |
|
|
|
text-decoration: line-through; |
|
|
|
margin-bottom: 8rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.package-btn { |
|
|
|
background: #E4E7EB; |
|
|
|
color: #191919; |
|
|
|
font-size: 28rpx; |
|
|
|
// padding: 12rpx 20rpx; |
|
|
|
width: 100%; |
|
|
|
// border-radius: 30rpx; |
|
|
|
transition: all 0.3s; |
|
|
|
height: 52rpx; |
|
|
|
line-height: 52rpx; |
|
|
|
border-radius: 0 0 24rpx 24rpx; |
|
|
|
&.active { |
|
|
|
background: $primary-color; |
|
|
|
color: #fff; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.coupon-section { |
|
|
|
.coupon-title { |
|
|
|
font-size: 26rpx; |
|
|
|
color: #181818; |
|
|
|
margin-bottom: 10rpx; |
|
|
|
// font-weight: 500; |
|
|
|
} |
|
|
|
|
|
|
|
.coupon-selector { |
|
|
|
background: #fff; |
|
|
|
border-radius: 16rpx; |
|
|
|
padding: 10rpx 0; |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
align-items: center; |
|
|
|
border-bottom: 2rpx solid #f0f0f0; |
|
|
|
|
|
|
|
.coupon-placeholder { |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
align-items: center; |
|
|
|
width: 100%; |
|
|
|
|
|
|
|
.coupon-text { |
|
|
|
font-size: 32rpx; |
|
|
|
color: #C6C6C6; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.coupon-selected { |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
align-items: center; |
|
|
|
width: 100%; |
|
|
|
|
|
|
|
.coupon-info { |
|
|
|
display: flex; |
|
|
|
// flex-direction: column; |
|
|
|
align-items: center; |
|
|
|
justify-content: space-between; |
|
|
|
.coupon-name { |
|
|
|
font-size: 28rpx; |
|
|
|
color: #181818; |
|
|
|
margin-bottom: 4rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.coupon-amount { |
|
|
|
font-size: 28rpx; |
|
|
|
color: red; |
|
|
|
font-weight: 500; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/* 会员权益样式 */ |
|
|
|
.benefits-section { |
|
|
|
margin-top: 40rpx; |
|
|
|
padding: 0 30rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.benefits-title { |
|
|
|
font-size: 36rpx; |
|
|
|
font-weight: bold; |
|
|
|
color: #191919; |
|
|
|
margin-bottom: 32rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.benefits-list { |
|
|
|
display: flex; |
|
|
|
flex-direction: column; |
|
|
|
gap: 32rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.benefit-item { |
|
|
|
background: #F8F8F8; |
|
|
|
border: 1px solid #FFFFFF; |
|
|
|
border-radius: 48rpx; |
|
|
|
padding: 27rpx 40rpx; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: space-between; |
|
|
|
} |
|
|
|
|
|
|
|
.benefit-content { |
|
|
|
flex: 1; |
|
|
|
margin-right: 40rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.benefit-title { |
|
|
|
font-size: 32rpx; |
|
|
|
font-weight: 600; |
|
|
|
color: #333; |
|
|
|
margin-bottom: 16rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.benefit-desc { |
|
|
|
font-size: 24rpx; |
|
|
|
color: #09B1B3; |
|
|
|
line-height: 36rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.benefit-icon { |
|
|
|
width: 152rpx; |
|
|
|
height: 152rpx; |
|
|
|
// flex-shrink: 0; |
|
|
|
} |
|
|
|
|
|
|
|
.benefit-icon image { |
|
|
|
width: 100%; |
|
|
|
height: 100%; |
|
|
|
} |
|
|
|
|
|
|
|
.coupon-selected { |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
align-items: center; |
|
|
|
width: 100%; |
|
|
|
|
|
|
|
.coupon-info { |
|
|
|
display: flex; |
|
|
|
// flex-direction: column; |
|
|
|
align-items: center; |
|
|
|
justify-content: space-between; |
|
|
|
|
|
|
|
.coupon-name { |
|
|
|
font-size: 28rpx; |
|
|
|
color: #181818; |
|
|
|
margin-bottom: 4rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.coupon-amount { |
|
|
|
font-size: 28rpx; |
|
|
|
color: red; |
|
|
|
font-weight: 500; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/* 会员权益样式 */ |
|
|
|
.benefits-section { |
|
|
|
margin-top: 40rpx; |
|
|
|
padding: 0 30rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.benefits-title { |
|
|
|
font-size: 36rpx; |
|
|
|
font-weight: bold; |
|
|
|
color: #191919; |
|
|
|
margin-bottom: 32rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.benefits-list { |
|
|
|
display: flex; |
|
|
|
flex-direction: column; |
|
|
|
gap: 32rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.benefit-item { |
|
|
|
background: #F8F8F8; |
|
|
|
border: 1px solid #FFFFFF; |
|
|
|
border-radius: 48rpx; |
|
|
|
padding: 27rpx 40rpx; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: space-between; |
|
|
|
} |
|
|
|
|
|
|
|
.benefit-content { |
|
|
|
flex: 1; |
|
|
|
margin-right: 40rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.benefit-title { |
|
|
|
font-size: 32rpx; |
|
|
|
font-weight: 600; |
|
|
|
color: #333; |
|
|
|
margin-bottom: 16rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.benefit-desc { |
|
|
|
font-size: 24rpx; |
|
|
|
color: #09B1B3; |
|
|
|
line-height: 36rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.benefit-icon { |
|
|
|
width: 152rpx; |
|
|
|
height: 152rpx; |
|
|
|
// flex-shrink: 0; |
|
|
|
} |
|
|
|
|
|
|
|
.benefit-icon image { |
|
|
|
width: 100%; |
|
|
|
height: 100%; |
|
|
|
} |
|
|
|
</style> |