You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
563 lines
14 KiB
563 lines
14 KiB
<template>
|
|
<view class="content">
|
|
<!-- <up-navbar leftText=" " title="什么东西?" :safeAreaInsetTop="true" :autoBack="true" :fixed="false" :bgColor="'transparent'" ></up-navbar> -->
|
|
<up-navbar leftText=" " :leftIconColor="'#fff'" :safeAreaInsetTop="true" :autoBack="true" title=" " :fixed="true"
|
|
:bgColor="'transparent'">
|
|
</up-navbar>
|
|
<view class="topBg" :class="{bigBg: curVipItem.type=='5'}">
|
|
<view class="tag">XXXX成为VIP会员</view>
|
|
<view class="tag">一次搞定</view>
|
|
<view class="tag">五大特权</view>
|
|
<view class="tag">最低仅需xx元/天</view>
|
|
<view class="tag" @click="$goPage('/pages/vip/vipQuestions/vipQuestions')">常见问题</view>
|
|
|
|
<view class="allSubRow" v-if="curVipItem.type=='5'">
|
|
<view class="allsbItem">
|
|
<view class="icon">
|
|
<image src="@/static/images/vip/allSbu1.png" mode=""></image>
|
|
</view>
|
|
<view class="text">科一VIP</view>
|
|
</view>
|
|
<view class="allsbItem">
|
|
<view class="icon_arrow">
|
|
<image src="@/static/images/vip/allsubR.png" mode=""></image>
|
|
</view>
|
|
</view>
|
|
<view class="allsbItem">
|
|
<view class="icon">
|
|
<image src="@/static/images/vip/allSbu2.png" mode=""></image>
|
|
</view>
|
|
<view class="text">全科VIP</view>
|
|
</view>
|
|
<view class="allsbItem">
|
|
<view class="icon_arrow">
|
|
<image src="@/static/images/vip/allsubL.png" mode=""></image>
|
|
</view>
|
|
</view>
|
|
<view class="allsbItem">
|
|
<view class="icon">
|
|
<image src="@/static/images/vip/allSbu3.png" mode=""></image>
|
|
</view>
|
|
<view class="text">科四VIP</view>
|
|
</view>
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="padding">
|
|
|
|
|
|
<view class="allVip flex-b">
|
|
<view class="vipItem" v-for="(item,index) in vipItemData" :key="index" :class="{active: curVipItem.name==item.name}" @click="chooseVip(item)" >
|
|
<view class="lab">{{item.name}}</view>
|
|
<view class="redT flex">
|
|
<view class="price">¥<text>{{item.price}}/</text></view>
|
|
<view class="day">{{item.days}}天</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="btnBox flex-b">
|
|
<view class="whiteT flex">
|
|
<view class="price">¥<text>{{ curVipItem.price }}/</text></view>
|
|
<view class="day">{{curVipItem.day}}天</view>
|
|
</view>
|
|
<view class="upgra" @click="goPaymentOrder()"></view>
|
|
</view>
|
|
|
|
<view class="h1_row flex-b">
|
|
<view class="h1" ><text class="active">尊享权益</text></view>
|
|
<view class="moreBox">
|
|
<moreRight text="查看全部"/>
|
|
</view>
|
|
</view>
|
|
<view class="card">
|
|
<view class="tit_row flex">
|
|
<view class="round">
|
|
<image src="@/static/images/vip/leftq.png" mode=""></image>
|
|
</view>
|
|
<view class="tit">五大权益助力高效领证</view>
|
|
<view class="round">
|
|
<image src="@/static/images/vip/rightq.png" mode=""></image>
|
|
</view>
|
|
</view>
|
|
<view class="tps">180天内无限使用</view>
|
|
|
|
<view class="ul">
|
|
<view class="li" v-for="(item,index) in tabData" :key="index">
|
|
<view class="icon">
|
|
<image :src="item.icon" mode=""></image>
|
|
</view>
|
|
<view class="txt">{{item.name}}</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="learning">
|
|
<view class="h1_box">
|
|
<view class="h1"> <text class="active">四步高效学习法</text> </view>
|
|
</view>
|
|
<view class="blueBg">
|
|
<view class="blueTxt">拒绝费时费力 高效备考理论</view>
|
|
<view class="ul">
|
|
<view class="li" v-for="(item,index) in stepData" :key="index">
|
|
<view class="flex">
|
|
<view class="step">第{{ item.num }}步</view>
|
|
<view class="unit">{{ item.oneTxt }}</view>
|
|
</view>
|
|
<view class="flex-b">
|
|
<view class="leftImg">
|
|
<image :src="item.icon" mode=""></image>
|
|
</view>
|
|
<view class="rightTxt">
|
|
<view class="lab">精选试题</view>
|
|
<view class="txt">提炼易错、易考试题,减少相似题目练习,缩短备考时间</view>
|
|
</view>
|
|
</view>
|
|
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="comment">
|
|
<view class="h1_row flex-b">
|
|
<view class="h1" ><text class="active">VIP学员之声</text></view>
|
|
<view class="moreBox" @click="lookMore">
|
|
<moreRight text="查看全部" />
|
|
</view>
|
|
</view>
|
|
|
|
<swiper next-margin="60rpx" previous-margin="20rpx">
|
|
<swiper-item v-for="(item,index) in voiceList" :key="index">
|
|
<view style="padding: 0 20rpx;">
|
|
<commentItem :item="item"/>
|
|
</view>
|
|
</swiper-item>
|
|
</swiper>
|
|
</view>
|
|
|
|
<up-popup v-model:show="show" mode="bottom" round="20rpx" @close="show=false" closeable>
|
|
<view class="commentbox">
|
|
<view class="tit">VIP学员之声</view>
|
|
<view class="popComment">
|
|
<commentItem v-for="(item,index) in voiceList" :item="item" :key="index"></commentItem>
|
|
</view>
|
|
</view>
|
|
</up-popup>
|
|
|
|
|
|
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { ref } from 'vue'
|
|
import commentItem from './comp/commentItem.vue'
|
|
import { memberGradelist, memberVoicePage } from '@/config/api.js'
|
|
import carStore from '@/store/modules/car.js'
|
|
let usecarStore = carStore()
|
|
const tabData = ref([
|
|
{name: '精选试题', icon: new URL('@/static/images/vip/vipicon2.png', import.meta.url).href, id: '1'},
|
|
{name: '仿真考试', icon: new URL('@/static/images/vip/vipicon3.png', import.meta.url).href, id: '1'},
|
|
{name: '考前密卷', icon: new URL('@/static/images/vip/vipicon4.png', import.meta.url).href, id: '1'},
|
|
{name: '高频错题', icon: new URL('@/static/images/vip/vipicon5.png', import.meta.url).href, id: '1'},
|
|
{name: '语音讲解', icon: new URL('@/static/images/vip/vipicon1.png', import.meta.url).href, id: '1'}
|
|
])
|
|
|
|
const stepData = ref([
|
|
{name: '精选试题', num: '一', oneTxt: '练', txt: '提炼易错、易考试题,减少相似题目练习,缩短备考时间', icon: new URL('@/static/images/vip/coveb.png', import.meta.url).href, id: '1'},
|
|
{name: '还原真实考场', num: '二', oneTxt: '考', txt: '100%还原考试界面,磨练考试技巧、增强心理素质、提高考试成绩', icon: new URL('@/static/images/vip/covec.png', import.meta.url).href, id: '1'},
|
|
{name: '考前秘卷', num: '三', oneTxt: '冲', txt: '考前精选 高频难题 直击考点 稳上高分', icon: new URL('@/static/images/vip/coved.png', import.meta.url).href, id: '1'},
|
|
{name: '温故高频错题', num: '四', oneTxt: '复', txt: '汇总您的专属高频错题,全力攻破最后的难关', icon: new URL('@/static/images/vip/covea.png', import.meta.url).href, id: '1'},
|
|
])
|
|
const curVipItem = ref({name: '全科VIP', price: 15, day: 180})
|
|
const vipItemData = ref([
|
|
// {name: '全科VIP', price: 15, day: 180},
|
|
// {name: '科目一VIP', price: 10, day: 180},
|
|
// {name: '科目四VIP', price: 10, day: 180},
|
|
])
|
|
let show = ref(false)
|
|
function lookMore() {
|
|
show.value = true
|
|
}
|
|
function chooseVip(item) {
|
|
curVipItem.value = item
|
|
}
|
|
|
|
async function memberGradelistFn() {
|
|
const {data: res} = await memberGradelist(usecarStore.carInfo.carType)
|
|
if(!res.length) return
|
|
vipItemData.value = res
|
|
console.log(res)
|
|
}
|
|
memberGradelistFn()
|
|
|
|
let voiceList = ref([])
|
|
async function memberVoicePageFn() {
|
|
let obj = {
|
|
"carType": usecarStore.carInfo.carType,
|
|
"pageNum": 1,
|
|
"pageSize": 6
|
|
}
|
|
const res = await memberVoicePage(obj)
|
|
console.log(res)
|
|
if(!res.rows.length) return
|
|
voiceList.value = res.rows
|
|
}
|
|
memberVoicePageFn()
|
|
|
|
function goPaymentOrder() {
|
|
if(!curVipItem.value.id) return uni.$u.toast('请先选择要购买的类型')
|
|
|
|
uni.navigateTo({
|
|
url: `/pages/vip/paymentOrder/paymentOrder?name=${curVipItem.value.name}&id=${curVipItem.value.id}&price=${curVipItem.value.price}`
|
|
})
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.allSubRow {
|
|
display: flex;
|
|
position: absolute;
|
|
bottom: 160rpx;
|
|
left: 0;
|
|
width: 100%;
|
|
padding: 0 30px;
|
|
.allsbItem {
|
|
flex: 1;
|
|
display: flex;
|
|
justify-content: center;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
.icon {
|
|
width: 90rpx;
|
|
height: 90rpx;
|
|
|
|
}
|
|
.icon_arrow {
|
|
width: 38rpx;
|
|
height: 36rpx;
|
|
margin: 33rpx auto;
|
|
}
|
|
.text {
|
|
margin-top: 18rpx;
|
|
font-size: 28rpx;
|
|
color: #fff;
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
image {
|
|
display: block;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
.content {
|
|
width: 100%;
|
|
.topBg {
|
|
width: 100%;
|
|
height: 550rpx;
|
|
background: url('../../../static/images/bigImg/vipbg.png') no-repeat;
|
|
background-size: 100% 100%;
|
|
// padding-top: 88rpx;
|
|
position: relative;
|
|
&.bigBg {
|
|
height: 794rpx;
|
|
background: url('../../../static/images/bigImg/vipallBg.png') no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
.tag {
|
|
position: absolute;
|
|
font-size: 24rpx;
|
|
color: #FFF9F3;
|
|
padding: 9rpx;
|
|
background: url('../../../static/images/vip/tagbg.png') no-repeat;
|
|
background-size: 100% 100%;
|
|
&:nth-child(1) {
|
|
left: 50rpx;
|
|
top: 152rpx;
|
|
}
|
|
&:nth-child(2) {
|
|
right: 78rpx;
|
|
top: 182rpx;
|
|
}
|
|
&:nth-child(3) {
|
|
left: 20rpx;
|
|
top: 280rpx;
|
|
}
|
|
&:nth-child(4) {
|
|
right: 20rpx;
|
|
top: 406rpx;
|
|
}
|
|
&:nth-child(5) {
|
|
right: 0;
|
|
top: 215rpx;
|
|
width: 48rpx;
|
|
height: 176rpx;
|
|
padding-top: 20rpx;
|
|
background: url('../../../static/images/vip/qustr.png') no-repeat;
|
|
background-size: 100% 100%;
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
.allVip {
|
|
transform: translateY(-96rpx);
|
|
position: relative;
|
|
z-index: 99;
|
|
// top: -96rpx;
|
|
|
|
.vipItem {
|
|
width: 28%;
|
|
height: 180rpx;
|
|
background: #FFFFFF;
|
|
border-radius: 10rpx;
|
|
border: 2px solid #FDD5B7;
|
|
&.active {
|
|
transform: scale(1.3);
|
|
background-color: #FDF5E4;
|
|
border: 4px solid #EAA270;
|
|
border-radius: 10px;
|
|
}
|
|
.lab {
|
|
height: 96rpx;
|
|
line-height: 96rpx;
|
|
text-align: center;
|
|
font-size: 28rpx;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.redT {
|
|
padding-top: 16rpx;
|
|
text-align: center;
|
|
width: 100%;
|
|
justify-content: center;
|
|
border-top: 1px solid #eee;
|
|
.price {
|
|
color: #DA492D;
|
|
font-size: 24rpx;
|
|
text {
|
|
font-size: 36rpx;
|
|
}
|
|
}
|
|
|
|
.day {
|
|
font-size: 24rpx;
|
|
color: #9E492D;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.btnBox.flex-b {
|
|
width: 100%;
|
|
height: 100rpx;
|
|
background: #3776FF;
|
|
border-radius: 50rpx;
|
|
padding: 10rpx 10rpx 10rpx 32rpx;
|
|
margin-top: -50rpx;
|
|
.whiteT.flex {
|
|
color: #fff;
|
|
.price {
|
|
font-size: 24rpx;
|
|
text {
|
|
font-size: 36rpx;
|
|
font-weight: 700;
|
|
}
|
|
}
|
|
|
|
.day {
|
|
font-size: 24rpx;
|
|
}
|
|
}
|
|
|
|
.upgra {
|
|
width: 230rpx;
|
|
height: 80rpx;
|
|
// background: linear-gradient(0deg, #F7D0A5 0%, #FCEDD1 100%);
|
|
background: url('../../../static/images/vipbtn.png') no-repeat;
|
|
background-size: 100% 100%;
|
|
border-radius: 40rpx;
|
|
font-size: 36rpx;
|
|
line-height: 80rpx;
|
|
text-align: center;
|
|
font-weight: 500;
|
|
}
|
|
}
|
|
|
|
.h1_row {
|
|
height: 118rpx;
|
|
}
|
|
.card {
|
|
background: #FFFFFF;
|
|
box-shadow: 0px 0px 18px 0px rgba(0,0,0,0.04);
|
|
border-radius: 20px;
|
|
padding: 30rpx 20rpx;
|
|
.tit_row.flex {
|
|
width: 100%;
|
|
justify-content: center;
|
|
.round {
|
|
width: 24rpx;
|
|
height: 24rpx;
|
|
}
|
|
|
|
.tit {
|
|
font-size: 28rpx;
|
|
color: #333;
|
|
padding: 0 20rpx;
|
|
}
|
|
}
|
|
|
|
.tps {
|
|
font-size: 24rpx;
|
|
color: #ccc;
|
|
padding: 20rpx 0 32rpx 0;
|
|
text-align: center;
|
|
}
|
|
|
|
.ul {
|
|
display: flex;
|
|
.li {
|
|
width: 20%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
.icon {
|
|
width: 84rpx;
|
|
height: 84rpx;
|
|
}
|
|
|
|
.txt {
|
|
font-size: 28rpx;
|
|
margin-top: 14rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.learning {
|
|
.h1_box {
|
|
padding: 20rpx 0;
|
|
}
|
|
.h1 {
|
|
|
|
}
|
|
|
|
.blueBg {
|
|
background: linear-gradient(180deg, #E3FEFF 0%, #F2FEFF 100%);
|
|
border-radius: 20px;
|
|
padding: 0 20rpx 20rpx 20rpx;
|
|
margin-top: 20rpx;
|
|
.blueTxt {
|
|
line-height: 68rpx;
|
|
text-align: center;
|
|
font-size: 30rpx;
|
|
font-weight: 700;
|
|
color: $themC;
|
|
}
|
|
|
|
.ul {
|
|
width: 100%;
|
|
background: #FFFFFF;
|
|
border-radius: 20px;
|
|
.li {
|
|
width: 100%;
|
|
padding: 30rpx 0rpx;
|
|
border-bottom: 1px solid #F4F4F4;
|
|
.flex {
|
|
.step {
|
|
width: 125rpx;
|
|
height: 50rpx;
|
|
font-size: 28rpx;
|
|
// background: #3776FF;
|
|
// border-radius: 0px 0px 30rpx 0px;
|
|
line-height: 42rpx;
|
|
color: #fff;
|
|
text-align: center;
|
|
background: url('../../../static/images/vip/stepTag.png') no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
|
|
.unit {
|
|
font-family: PingFang SC;
|
|
font-weight: bold;
|
|
font-size: 36rpx;
|
|
color: #333333;
|
|
margin-left: 20rpx;
|
|
}
|
|
}
|
|
|
|
.flex-b {
|
|
padding-top: 30rpx;
|
|
padding: 30rpx 20rpx 0 20rpx;
|
|
.leftImg {
|
|
width: 360rpx;
|
|
height: 200rpx;
|
|
background: #F4EED8;
|
|
border-radius: 20rpx;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.rightTxt {
|
|
padding-left: 20rpx;
|
|
flex: 1;
|
|
width: 0;
|
|
.lab {
|
|
font-weight: bold;
|
|
font-size: 28rpx;
|
|
color: #333333;
|
|
line-height: 66rpx;
|
|
}
|
|
|
|
.txt {
|
|
font-weight: 500;
|
|
font-size: 24rpx;
|
|
color: #666666;
|
|
line-height: 34rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.comment {
|
|
margin-top: 20rpx;
|
|
}
|
|
.commentbox {
|
|
position: relative;
|
|
.tit {
|
|
height: 94rpx;
|
|
line-height: 94rpx;
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
border-bottom: 1px solid #F4F4F4;
|
|
width: 100%;
|
|
padding-left: 40rpx;
|
|
font-weight: 700;
|
|
background-color: #fff;
|
|
z-index: 2;
|
|
}
|
|
.popComment {
|
|
max-height: calc(100vh - 400rpx);
|
|
overflow-y: auto;
|
|
padding: 134rpx 40rpx 40rpx 40rpx;
|
|
}
|
|
}
|
|
.u-popup__content__close {
|
|
z-index: 2;
|
|
}
|
|
:deep .u-popup__content__close--top-right {
|
|
z-index: 20;
|
|
}
|
|
</style>
|