vip功能修改
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
{
|
||||
"path": "pages/mine/vip/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "VIP定制",
|
||||
"navigationBarTitleText": "VIP",
|
||||
"enablePullDownRefresh": true,
|
||||
"onReachBottomDistance": 100,
|
||||
"app-plus": {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<z-nav-bar title="课程介绍"></z-nav-bar>
|
||||
<view class="contentBox commonPageContentBox">
|
||||
<view v-if="goBuyTitle && isAndorid" class="describe_block">
|
||||
<view style=" display: flex; justify-content: center;">
|
||||
<view style=" display: flex;">
|
||||
<uni-icons type="info" size="20" color="#fff"></uni-icons>
|
||||
<text>{{goBuyTitle}}</text>
|
||||
</view>
|
||||
@@ -13,7 +13,7 @@
|
||||
立即购买
|
||||
</button>
|
||||
</view>
|
||||
<view class="curseImg" style="padding-top: 80rpx">
|
||||
<view class="curseImg" :style="isAndorid?'padding-top:80rpx;':''">
|
||||
<image v-if="!course.image" src="/static/nobg.jpg" mode="widthFix"></image>
|
||||
<image v-else :src="course.image" mode="widthFix"></image>
|
||||
</view>
|
||||
@@ -554,7 +554,9 @@
|
||||
newPaymentProList:[],
|
||||
isFudu:false, // 是否复读
|
||||
//是否有vip
|
||||
userVip: null
|
||||
userVip: null,
|
||||
courseVipModule: [], //该课程需要什么类型的vip
|
||||
textList: [], //转化文字集合
|
||||
};
|
||||
},
|
||||
//第一次加载
|
||||
@@ -920,7 +922,6 @@
|
||||
}
|
||||
},
|
||||
haveSelected(data) {
|
||||
console.log(data, " 选择的是");
|
||||
if (data.index == 0) {
|
||||
// 分享到好友
|
||||
uni.share({
|
||||
@@ -1182,15 +1183,51 @@
|
||||
this.goBuyTitle = '尊贵的'+role+'VIP,您的有效期到'+res.userVip.endTime;
|
||||
this.goBuyType = 1;
|
||||
}else{ //否则没有开通vip
|
||||
this.goBuyTitle = '购买VIP,即可畅享更多专属权益';
|
||||
this.goBuyTitle = '';
|
||||
this.goBuyType = 0;
|
||||
this.getCourseVipModule();
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
//判断需要什么类型的vip
|
||||
getCourseVipModule(){
|
||||
this.$http.request({
|
||||
url: 'common/userVip/getCourseVipModule',
|
||||
method: "POST",
|
||||
data: {
|
||||
courseId: this.courseId,
|
||||
},
|
||||
header: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.courseVipModule = res.list;
|
||||
let text = '';
|
||||
this.courseVipModule.forEach((item, index) => {
|
||||
if(item=='4'){
|
||||
text = '中医学';
|
||||
}else if(item=='5'){
|
||||
text = '针灸学';
|
||||
}else if(item=='6'){
|
||||
text = '肿瘤学';
|
||||
}else if(item=='7'){
|
||||
text = '国学';
|
||||
}else if(item=='8'){
|
||||
text = '心理学';
|
||||
}
|
||||
this.textList.push(text);
|
||||
});
|
||||
|
||||
const joinedText = this.textList.join('/');
|
||||
this.goBuyTitle = '购买'+joinedText+'VIP,即可畅享更多专属权益';
|
||||
}
|
||||
})
|
||||
},
|
||||
// 评论
|
||||
showSayModule(data) {
|
||||
console.log(data, "父级收到值了");
|
||||
this.fatherSay = data.item;
|
||||
this.fatherIndex = data.index;
|
||||
console.log(this.fatherSay, this.fatherIndex, "父级收到值了");
|
||||
@@ -3028,13 +3065,15 @@
|
||||
}
|
||||
.describe_block text{
|
||||
display: block;
|
||||
font-size: 28rpx;
|
||||
font-size: 26rpx;
|
||||
padding-right: 10rpx;
|
||||
}
|
||||
.describe_block button{
|
||||
font-size: 26rpx;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
width: 150rpx;
|
||||
font-size: 24rpx;
|
||||
color: #fff;
|
||||
padding: 0 15rpx;
|
||||
border-radius: 10rpx;
|
||||
line-height: 50rpx;
|
||||
height: 50rpx;
|
||||
|
||||
@@ -17,30 +17,31 @@
|
||||
<view style="width: 120rpx; height: 120rpx; display: inline-block;">
|
||||
<image @click="goUserInfo" :src="userMes.avatar" v-if="userMes.avatar"
|
||||
class="per_mes_img color_shandow"></image>
|
||||
<image src="@/static/icon/home_icon_logo.png" v-else="userMes.avatar"
|
||||
<image src="@/static/icon/home_icon_logo.png" v-else
|
||||
class="per_mes_img color_shandow"></image>
|
||||
</view>
|
||||
<view class="user_vip_box" v-if="hasVipType1 || hasVipType2">
|
||||
<view class="user_vip_box" v-if="isAndorid&&hasVipType1 || isAndorid&&hasVipType2">
|
||||
<view class="user_vip super" :style="hasVipType2?'width: 170rpx;':''">
|
||||
<view class="user_vip_item" v-if="hasVipType1"><text>医学</text><image src="@/static/icon/chao_svip.png"></image></view>
|
||||
<view class="user_vip_item" v-if="hasVipType2"><text>国学心理学</text><image src="@/static/icon/chao_svip.png"></image></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="userInfoBox" style="width: calc(100% - 180rpx)" :style="hasVipType2?'margin-left: 30rpx;':''">
|
||||
<view class="userInfoBox" style="margin-left: 30rpx;">
|
||||
<template>
|
||||
<view class="name">{{ userMes.nickname ? userMes.nickname : "未设置" }}</view>
|
||||
</template>
|
||||
<template v-if="userMes.tel">
|
||||
<view class="phone">手机号:({{ userMes.tel }})</view>
|
||||
</template>
|
||||
<template v-if="textList.length>0">
|
||||
<template v-if="isAndorid&&textList.length>0">
|
||||
<view class="vip_type">
|
||||
<view class="vip_type_item" v-for="(item,index) in textList" :key="index">{{item}}<image src="@/static/icon/chao_vip.png"></image></view>
|
||||
<view class="vip_type_item" v-for="(item,index) in textList" :key="index">
|
||||
{{item}}<image src="@/static/icon/chao_vip.png"></image>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
<br clear="both" />
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@@ -53,25 +54,21 @@
|
||||
<view v-if="isAndorid" class="chong_zhi boxShadow box_fillet vip_box"
|
||||
@click="onPageJump('/pages/mine/vip/index')">
|
||||
<view class="noVip">
|
||||
<view style="display: flex; align-items: center;">
|
||||
<view class="zhanghu PM_font" style="text-align: left">
|
||||
<image class="vip_image" style="margin-left: 10rpx;" src="@/static/vip.png" mode="aspectFit">
|
||||
</image>
|
||||
<image class="vip_image" style="width:80rpx;height:80rpx;margin-left: 10rpx;" src="@/static/vip.png" mode="aspectFit"></image>
|
||||
<text style="color: #fff; font-size: 60rpx;" v-if="vipList.length==0">VIP</text>
|
||||
</view>
|
||||
<view class="vip_infor" style="width:calc(100% - 200rpx);" v-if="vipList&&vipList.length>0">
|
||||
<!-- <text class="vip_infor_item" v-if="vipList.includes(1)">医学SVIP()</text>
|
||||
<text class="vip_infor_item" v-if="vipList.includes(2)">国学心理学SVIP()</text>
|
||||
<view class="vip_infor_item" v-for="(item, index) in textList" :key="index">
|
||||
<text>{{item}}VIP</text>({{vipList[index].endTime.split(' ')[0]}} 到期)
|
||||
</view> -->
|
||||
|
||||
|
||||
<view class="vip_infor_item" v-for="(item, index) in vipList" :key="index">
|
||||
<text>{{item.text}}VIP</text>({{item.endTime.split(' ')[0]}} 到期)
|
||||
<view class="vip_infor" v-if="vipList&&vipList.length>0">
|
||||
<view class="vip_infor_item" v-for="(item, index) in vipList" :key="index" :class="{expired: isExpired(item.endTime.split(' ')[0])}">
|
||||
<text>{{item.text}}VIP</text>
|
||||
<text v-if="isExpired(item.endTime.split(' ')[0])">({{item.endTime.split(' ')[0]}} 已到期)</text>
|
||||
<text v-else>(有效期到 {{item.endTime.split(' ')[0]}})</text>
|
||||
</view>
|
||||
</view>
|
||||
<view v-else class="vip_null">定制VIP,畅享更多专属权益</view>
|
||||
<view class="vip_btn"><button>定制</button></view>
|
||||
<view v-else class="vip_null" style=" padding-left: 30rpx;">办理VIP,畅享更多专属权益</view>
|
||||
</view>
|
||||
<view class="vip_btn"><button v-if="vipList.length==0">办理</button><button v-else>续费</button></view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- end -->
|
||||
@@ -251,10 +248,8 @@
|
||||
onLoad(e) {
|
||||
// 隐藏原生的tabbar
|
||||
uni.hideTabBar();
|
||||
// #ifdef APP-PLUS
|
||||
this.getOS();
|
||||
this.platform = uni.getSystemInfoSync().platform;
|
||||
// #endif
|
||||
},
|
||||
computed: {
|
||||
...mapState(["userInfo"]),
|
||||
@@ -388,6 +383,12 @@
|
||||
url: url,
|
||||
});
|
||||
},
|
||||
//判断过期的vip
|
||||
isExpired(dateString){
|
||||
const date = new Date(dateString);
|
||||
const now = new Date();
|
||||
return date < now;
|
||||
},
|
||||
// 获取用户的角色信息
|
||||
getUserRole() {
|
||||
this.$http.post("common/class/getRoleType").then((res) => {
|
||||
@@ -532,10 +533,29 @@
|
||||
this.vipList = res.list;
|
||||
this.hasVipType1 = this.vipList.some(item => item.type === 1);
|
||||
this.hasVipType2 = this.vipList.some(item => item.type === 2);
|
||||
//普通 vip 角色展示逻辑
|
||||
let text = '';
|
||||
if(this.vipList.length>0){
|
||||
this.vipList.forEach((item, index) => {
|
||||
|
||||
//筛选出来已过期的
|
||||
let listAll = this.vipList;
|
||||
let list = this.vipList.filter(item => !this.isExpired(item.endTime.split(' ')[0]));
|
||||
|
||||
//全部的 vip模块展示
|
||||
if(listAll.length>0){
|
||||
listAll = this.showDataList(listAll);
|
||||
}
|
||||
|
||||
console.log('-------listAll',listAll)
|
||||
//筛选过期以后的 昵称模块展示需要
|
||||
if(list.length>0){
|
||||
list = this.showDataList(list);
|
||||
}
|
||||
console.log('-------list',list)
|
||||
}
|
||||
});
|
||||
},
|
||||
//分情况展示逻辑
|
||||
showDataList(list){
|
||||
this.textList = [];
|
||||
list.forEach((item, index) => {
|
||||
if(item.type=='4'){
|
||||
item.text = '中医学';
|
||||
this.textList.push(item.text);
|
||||
@@ -557,11 +577,10 @@
|
||||
item.text = '国学心理学S';
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
return this.textList;
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@@ -579,7 +598,6 @@
|
||||
align-items: center;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
.per_mes_img {
|
||||
width: 120rpx;
|
||||
@@ -831,7 +849,7 @@
|
||||
background-color: transparent !important;
|
||||
}
|
||||
.bg_top {
|
||||
padding: 0 30rpx;
|
||||
padding: 0 20rpx;
|
||||
padding-top: 80rpx;
|
||||
margin-bottom: 60rpx;
|
||||
}
|
||||
@@ -960,7 +978,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 0 12rpx;
|
||||
padding: 0 10rpx;
|
||||
background: linear-gradient(90deg, #258feb 0%, #00e1ec 100%);
|
||||
border-radius: 20rpx;
|
||||
font-size: 20rpx;
|
||||
@@ -970,17 +988,20 @@
|
||||
color: #fff;
|
||||
margin-right: 10rpx;
|
||||
}
|
||||
.vip_type_item:last-child{
|
||||
margin-right: 0;
|
||||
}
|
||||
.vip_type_item image{
|
||||
width: 34rpx;
|
||||
height: 24rpx;
|
||||
}
|
||||
.vip_infor{
|
||||
padding-left: 22rpx;
|
||||
padding-left: 20rpx;
|
||||
}
|
||||
.vip_infor_item{
|
||||
display: block;
|
||||
color: #fff;
|
||||
font-size: 27rpx;
|
||||
font-size: 26rpx;
|
||||
line-height: 36rpx;
|
||||
font-family: PangMenZhengDaoBiaoTiTiMianFeiBan;
|
||||
font-weight: normal;
|
||||
@@ -989,17 +1010,16 @@
|
||||
color: #fff;
|
||||
}
|
||||
.vip_btn{
|
||||
margin-right: 20rpx;
|
||||
margin-right: 15rpx;
|
||||
height: 50rpx;
|
||||
}
|
||||
.vip_btn button{
|
||||
background: none;
|
||||
border: 2rpx solid #f9ae3d;
|
||||
border-radius: 40rpx;
|
||||
font-size: 26rpx;
|
||||
width: 90rpx;
|
||||
height: 45rpx;
|
||||
line-height: 45rpx;
|
||||
font-size: 24rpx;
|
||||
width: 82rpx;
|
||||
line-height: 42rpx;
|
||||
color: #f9ae3d;
|
||||
font-weight: bold;
|
||||
}
|
||||
@@ -1008,4 +1028,7 @@
|
||||
font-size: 26rpx;
|
||||
line-height: 34rpx;
|
||||
}
|
||||
.expired{
|
||||
opacity: 0.55;
|
||||
}
|
||||
</style>
|
||||
@@ -1,22 +1,39 @@
|
||||
<template>
|
||||
<view class="commonPageBox">
|
||||
<z-nav-bar title="VIP定制" bgColor="rgb(67, 131, 208)" fontColor="#fff"></z-nav-bar>
|
||||
<z-nav-bar title="VIP"></z-nav-bar>
|
||||
<view class="vip_block">
|
||||
<view class="vip_item" :class="item.type==1||item.type==2?'vip_item_special':''" v-for="(item, index) in list" :key="index">
|
||||
<view class="vip_item"
|
||||
:class="[item.type==1||item.type==2?'vip_item_special':'',
|
||||
item.state==1?'vip_item_overdue':'',
|
||||
item.type==1&&item.state==0||item.type==2&&item.state==0?'vip_item_bg_1':'',
|
||||
item.type!=1&&item.type!=2&&item.state==0?'vip_item_bg_2':'']"
|
||||
v-for="(item, index) in list" :key="index">
|
||||
<view>
|
||||
<text class="vip_item_title">{{item.title}}</text>
|
||||
<text class="vip_item_used" v-if="item.UserVip">已定制</text>
|
||||
<!-- <text class="vip_item_btn" v-if="item.UserVip" @click="onHandleClickBuy(item)">续费</text>
|
||||
<text class="vip_item_btn" v-else @click="onHandleClickBuy(item)">定制</text> -->
|
||||
<view class="vip_price" v-if="!item.UserVip">
|
||||
<text class="vip_item_tip" v-if="item.tip&&item.tip<100"><uni-icons type="info" size="17" color="#ff1f00"></uni-icons>还有{{item.tip}}天到期</text>
|
||||
<text class="vip_item_flag" v-if="item.state==1">
|
||||
<uni-icons type="info" size="17" color="#999"></uni-icons>已过期
|
||||
</text>
|
||||
</view>
|
||||
|
||||
<view class="vip_price" style=" padding-top: 10rpx;">
|
||||
<text class="font_bold">课程价格:</text>
|
||||
<view class="vip_qx_v">一年<text class="vip_fee line">{{item.originalPrice||0}}</text>元</view>
|
||||
</view>
|
||||
|
||||
<text class="vip_item_btn" v-if="item.state==null" @click="openorderModal(item,0)">去办理</text>
|
||||
<text class="vip_item_btn" v-else @click="openorderModal(item,0)">去续费</text>
|
||||
|
||||
<view class="vip_price" v-if="item.vcbList&&item.vcbList.length>0">
|
||||
<text class="font_bold" v-if="item.type==1||item.type==2">超级VIP价格:</text>
|
||||
<text class="font_bold" v-else>VIP价格:</text>
|
||||
<text class="vip_price_v" v-for="(item_price, index_price) in item.vcbList" :key="index_price" @click="openorderModal(item_price)">
|
||||
{{item_price.year}}年<text>{{item_price.rebateFee}}</text>元
|
||||
</text>
|
||||
</view>
|
||||
<view class="vip_price" v-else>
|
||||
<view class="vip_price" v-if="item.yanqiList&&item.yanqiList.length>0">
|
||||
<text class="font_bold">延期价格:</text>
|
||||
<text class="vip_price_yq" v-for="(item_yq, index_yq) in item.yanqiList" :key="index_yq" @click="openorderModal(item_yq,0)">
|
||||
<text class="vip_price_v" v-for="(item_yq, index_yq) in item.yanqiList" :key="index_yq" @click="openorderModal(item_yq,1)">
|
||||
{{item_yq.year}}年<text>{{item_yq.rebateFee}}</text>元
|
||||
</text>
|
||||
</view>
|
||||
@@ -95,13 +112,29 @@ export default{
|
||||
//点击购买
|
||||
openorderModal(item,type) {
|
||||
let text = '';
|
||||
//如果是右侧按钮点击展示
|
||||
//判断点击类型是vip价格还是延期价格
|
||||
if(type==0){
|
||||
text = '(续费)';
|
||||
if(item.state==null){ //没有vip
|
||||
this.selectVipData.list = item.vcbList;
|
||||
this.selectVipData.id = item.vcbList[0].id;
|
||||
}else{
|
||||
this.selectVipData.list = item.yanqiList;
|
||||
this.selectVipData.id = item.yanqiList[0].id;
|
||||
}
|
||||
}else{
|
||||
this.selectVipData.id = item.id;
|
||||
this.selectVipData.title = item.title + '-' + item.year + '年'+text;
|
||||
}
|
||||
|
||||
if(type){
|
||||
this.selectVipData.type = type;
|
||||
}
|
||||
|
||||
this.selectVipData.title = item.title + '-' + item.year + '年';
|
||||
this.selectVipData.lastFee = item.rebateFee;
|
||||
|
||||
this.orderModalShow = true;
|
||||
console.log('-----selectVipData-----',this.selectVipData)
|
||||
this.$nextTick(() => {
|
||||
this.$refs.orderPay.initPrepareOrder();
|
||||
});
|
||||
@@ -118,20 +151,16 @@ export default{
|
||||
<style>
|
||||
.commonPageBox {
|
||||
height: 100% !important;
|
||||
background-color: rgb(57, 110, 191);
|
||||
}
|
||||
.vip_block{
|
||||
padding: 20rpx;
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100% 100%;
|
||||
background-image: url("@/static/icon/vipbg.png");
|
||||
}
|
||||
.vip_item{
|
||||
width: 100%;
|
||||
padding: 30rpx 20rpx;
|
||||
background-color: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0px 0px 10px 0px #a7bbe4;
|
||||
box-shadow: 0px 0px 5px 0px #a7bbe4;
|
||||
margin-bottom: 20rpx;
|
||||
position: relative;
|
||||
}
|
||||
@@ -153,7 +182,7 @@ export default{
|
||||
background-image: linear-gradient(90deg, #ff1f00 0%, #fa9f93 100%);
|
||||
}
|
||||
.vip_price{
|
||||
padding-top: 15rpx;
|
||||
margin-top: 5rpx;
|
||||
}
|
||||
.vip_price text,.vip_qx text,.vip_qx_v{
|
||||
display: inline-block;
|
||||
@@ -172,14 +201,13 @@ export default{
|
||||
position: absolute;
|
||||
right: 20rpx;
|
||||
top: 30rpx;
|
||||
font-size: 24rpx;
|
||||
height: 44rpx;
|
||||
line-height: 44rpx;
|
||||
border: 1rpx solid #f29b2b;
|
||||
color: #f29b2b;
|
||||
padding: 0 15rpx;
|
||||
font-size: 23rpx;
|
||||
line-height: 40rpx;
|
||||
border: 1rpx solid #ff1f00;
|
||||
color: #ff1f00;
|
||||
padding: 0 12rpx;
|
||||
border-radius: 15rpx;
|
||||
font-weight: bold;
|
||||
opacity: 0.8;
|
||||
}
|
||||
.font_bold{
|
||||
font-weight: bold;
|
||||
@@ -208,4 +236,43 @@ export default{
|
||||
margin-bottom: 10rpx;
|
||||
padding: 0 10rpx;
|
||||
}
|
||||
.line{
|
||||
text-decoration: line-through;
|
||||
color: #258feb;
|
||||
font-style: italic;
|
||||
}
|
||||
.vip_item_flag{
|
||||
font-size: 26rpx;
|
||||
color: #666;
|
||||
padding-left: 20rpx;
|
||||
}
|
||||
.vip_item_flag text{
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
|
||||
.vip_item_overdue{
|
||||
background: rgba(220, 223, 225, 0.9) !important;
|
||||
opacity: 0.75;
|
||||
}
|
||||
.vip_item_overdue .vip_item_title{
|
||||
background-image: none;
|
||||
font-size: 32rpx;
|
||||
color: #000;
|
||||
padding: 0;
|
||||
}
|
||||
.vip_item_bg_1{
|
||||
background: rgba(227, 120, 125, 0.3) !important;
|
||||
}
|
||||
.vip_item_bg_2{
|
||||
background: rgba(64, 148, 222, 0.3) !important;
|
||||
}
|
||||
.vip_item_tip{
|
||||
color: #ff1f00;
|
||||
font-size: 26rpx;
|
||||
padding-left: 20rpx;
|
||||
}
|
||||
.vip_item_tip text{
|
||||
vertical-align: bottom;
|
||||
}
|
||||
</style>
|
||||
@@ -1,926 +0,0 @@
|
||||
<template>
|
||||
<view class="container commonPageBox vipBox" style="height: 100vh !important">
|
||||
<!-- 公共组件-每个页面必须引入 -->
|
||||
<public-module></public-module>
|
||||
<z-nav-bar title="" bgColor="" fontColor="#2d38f4">
|
||||
</z-nav-bar>
|
||||
|
||||
<view class="contentBox commonPageContentBox">
|
||||
<view class="flash_sale_content">
|
||||
<scroll-view scroll-y="true" class="scroll-Y" style="">
|
||||
<view class="scroll-view-item flash_sale_content_item color_shandow" v-for="(v, i) in dataList"
|
||||
:style="`background:${v.background ? v.background : '#f6f6f6'};`">
|
||||
<view class="book_name PM_font" v-html="v.title" :style="`background: ${v.color};
|
||||
;-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
`"></view>
|
||||
|
||||
<view class="vip_content">
|
||||
<view class="vip_image_box">
|
||||
<image class="vip_image" src="@/static/icon/quanyi.png" mode="aspectFit">
|
||||
</image>
|
||||
</view>
|
||||
<view class="qunyi_box">
|
||||
<view style="height: auto">
|
||||
<view v-for="(item, index1) in v.quanyi" :style="item.style" v-html="item.name">
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- buttonbg -->
|
||||
</view>
|
||||
<view class="vip_list vip_button_list">
|
||||
<view @click="openorderModal(item)" v-for="(item, index) in v.list" class="vip_button"
|
||||
:style="`background:${v.buttonbg ? v.buttonbg : '#f6f6f6'};height:${v.list.length>2?`calc(100% / ${v.list.length}) !important`:'80rpx !important'}`">
|
||||
<view style="max-width: 200rpx">{{ item.title }}</view>
|
||||
<view style="margin: 0 5rpx">¥{{ item.lastFee }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
</view>
|
||||
<u-popup :show="orderModalShow" mode="bottom" :round="20">
|
||||
<view class="orderModalShow popup_box">
|
||||
<u-icon name="close" color="#333" size="18" @click="closeOrderModalShow" style="
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
right: 20rpx;
|
||||
top: 20rpx;
|
||||
"></u-icon>
|
||||
<orderPay ref="orderPay" :dataInfo="selectVipData"></orderPay>
|
||||
</view>
|
||||
</u-popup>
|
||||
<z-navigation></z-navigation>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import list from "@/pages/component/commonComponents/list";
|
||||
import orderPay from "./order.vue";
|
||||
import $http from "@/config/requestConfig.js";
|
||||
import {
|
||||
mapState
|
||||
} from "vuex";
|
||||
export default {
|
||||
components: {
|
||||
list,
|
||||
orderPay,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
selectVipData: {},
|
||||
orderModalShow: false,
|
||||
superQuanyi: [{
|
||||
name: "众妙之门视频",
|
||||
style: {
|
||||
color: "#2D38F4",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "吴门医述视频",
|
||||
|
||||
},
|
||||
{
|
||||
name: "专属视频视听"
|
||||
},
|
||||
{
|
||||
name: "读书相关权益",
|
||||
style: {
|
||||
color: "#2D38F4",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "活动报名折扣价<text style='color:red'>(更优惠)</text>"
|
||||
},
|
||||
],
|
||||
sociologyQuanyi: [{
|
||||
name: "-",
|
||||
style: {
|
||||
color: "#fafafa",
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "吴门医述视频"
|
||||
},
|
||||
{
|
||||
name: "专属视频视听"
|
||||
},
|
||||
|
||||
{
|
||||
name: "-",
|
||||
style: {
|
||||
color: "#fafafa",
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
name: "活动报名折扣价"
|
||||
},
|
||||
],
|
||||
|
||||
isLoadingHide: false,
|
||||
playData: {},
|
||||
options: {},
|
||||
searchValue: "",
|
||||
pagination: {
|
||||
// 请求参数
|
||||
page: 1, //页码
|
||||
limit: 20, //每页显示
|
||||
total: 0, //总条数
|
||||
},
|
||||
twoCateList: [], // 二级分类标题
|
||||
titleList: [], // 方剂标题
|
||||
curOneCateIndex: 0, // 当前选中的一级分类
|
||||
curTwoCateIndex: 0, // 当前选中的二级分类
|
||||
searchList: [], // 搜索结果数组
|
||||
showSearchList: false,
|
||||
userMes: {}, // 用户信息
|
||||
searchDisable: false, // 搜索不可用
|
||||
limitShow: false,
|
||||
limitTitle: "提示",
|
||||
limitContent: "",
|
||||
scrollViewHeight: 0,
|
||||
dataList: [],
|
||||
urlList: {
|
||||
list: "medical/user/getVipProductForUser",
|
||||
},
|
||||
};
|
||||
},
|
||||
onLoad(options) {
|
||||
console.log(options, "989");
|
||||
this.options = options;
|
||||
this.getUserInfo();
|
||||
this.getData();
|
||||
},
|
||||
computed: {
|
||||
...mapState(["userInfo"]),
|
||||
},
|
||||
methods: {
|
||||
closeOrderModalShow() {
|
||||
this.orderModalShow = false;
|
||||
this.selectVipData = {};
|
||||
},
|
||||
openorderModal(data) {
|
||||
this.selectVipData = data;
|
||||
this.orderModalShow = true;
|
||||
this.$nextTick(() => {
|
||||
this.$refs.orderPay.initPrepareOrder();
|
||||
});
|
||||
},
|
||||
onReachBottom1() {
|
||||
// 上拉加载
|
||||
// 当列表数量不大于或等于总数量,则再次调用接口请求数据
|
||||
if (this.dataList.length >= this.pagination.total) return;
|
||||
this.pagination.page++;
|
||||
this.getData();
|
||||
},
|
||||
|
||||
// 检查是有权限使用搜索功能
|
||||
checkDisable() {
|
||||
console.log("点击了");
|
||||
},
|
||||
// 获取用户详情
|
||||
getUserInfo() {
|
||||
// 用户详情
|
||||
if (this.userInfo.id != undefined) {
|
||||
this.$http.post("book/user/info/" + this.userInfo.id).then((res) => {
|
||||
this.userMes = res.user;
|
||||
this.getCateList();
|
||||
console.log(this.userMes, "呼呼");
|
||||
});
|
||||
}
|
||||
},
|
||||
// 详情
|
||||
gotoDetail(v) {
|
||||
console.log(v);
|
||||
uni.navigateTo({
|
||||
url: `/pages/curriculum/order/curriculum/index?navTitle=${v.title}&title=${v.title}&id=${v.id}`,
|
||||
});
|
||||
},
|
||||
|
||||
getData() {
|
||||
this.isLoadingHide = false;
|
||||
this.$http
|
||||
.request({
|
||||
url: this.urlList.list,
|
||||
method: "POST",
|
||||
data: {},
|
||||
header: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("res at line 144:", res.list);
|
||||
if (res.code == 0) {
|
||||
for (let i in res.list) {
|
||||
if (res.list[i].length > 0) {
|
||||
var type =
|
||||
i == "super_hd" || i == "sociology_hd" ? "hd" : "normal";
|
||||
if (i == "super" || i == "super_hd") {
|
||||
this.dataList.push({
|
||||
title: "超级VIP",
|
||||
key: "super",
|
||||
type: type,
|
||||
titleStyle: {
|
||||
width: "120rpx",
|
||||
},
|
||||
background: "rgb(255 255 255 / 85%)",
|
||||
buttonbg: "linear-gradient(to right, #3F7FC9 0%,#D3EEFC 100%) ",
|
||||
color: "linear-gradient(130deg,rgb(45, 56, 244) 0%, #72AD92 100%)",
|
||||
list: res.list[i],
|
||||
quanyi: this.superQuanyi,
|
||||
});
|
||||
} else if (i == "sociology" || i == "sociology_hd") {
|
||||
console.log('i+++++++++++++++++', i)
|
||||
this.dataList.push({
|
||||
title: "吴门医述VIP",
|
||||
key: "sociology",
|
||||
type: type,
|
||||
list: res.list[i],
|
||||
background: "#c3e7f7c7",
|
||||
buttonbg: "rgba(255, 255, 255, 0.85)",
|
||||
color: "linear-gradient(130deg,#1ECEDE 0%, #72AD92 100%)",
|
||||
quanyi: this.sociologyQuanyi,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log(' this.dataList++++++++', this.dataList)
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 获取名称
|
||||
getTitles(dictType) {
|
||||
console.log("dictType", dictType);
|
||||
if (this.curOneCateIndex == 0) {
|
||||
if (dictType == 2) {
|
||||
uni.navigateTo({
|
||||
url: "./zhuanzhuchuban",
|
||||
});
|
||||
return;
|
||||
}
|
||||
$http
|
||||
.request({
|
||||
url: "book/generalArticle/articleByPage",
|
||||
method: "POST",
|
||||
data: {
|
||||
type: dictType == 1 ? "1" : "2",
|
||||
limit: 1000,
|
||||
current: 1,
|
||||
},
|
||||
header: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, "内容获取成功");
|
||||
if (res.code == 0 && res.result && res.result.records.length > 0) {
|
||||
this.titleList = res.result.records;
|
||||
} else {
|
||||
this.titleList = [];
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
this.titleList = [];
|
||||
console.log(e);
|
||||
});
|
||||
}
|
||||
if (this.curOneCateIndex == 1) {
|
||||
$http
|
||||
.request({
|
||||
url: "book/medicaldes/inheritListByPage",
|
||||
method: "POST",
|
||||
data: {
|
||||
dictType: dictType,
|
||||
limit: 1000,
|
||||
current: 1,
|
||||
},
|
||||
header: {
|
||||
//默认 无 说明:请求头
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, "内容获取成功");
|
||||
if (res.code == 0 && res.result.records.length > 0) {
|
||||
this.titleList = res.result.records;
|
||||
for (let i = 0; i < this.titleList.length; i++) {
|
||||
this.titleList[i].imageslist = [];
|
||||
this.titleList[i].imageslist = this.titleList[i].img.split(";");
|
||||
}
|
||||
} else {
|
||||
this.titleList = [];
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
this.titleList = [];
|
||||
console.log(e);
|
||||
});
|
||||
}
|
||||
if (this.curOneCateIndex == 2) {
|
||||
$http
|
||||
.request({
|
||||
url: "book/medicaldes/lightListByType?type=" + dictType,
|
||||
method: "POST",
|
||||
data: {
|
||||
// loadAnimate: 'none', // 请求加载动画
|
||||
limit: 1000,
|
||||
page: 1,
|
||||
},
|
||||
header: {
|
||||
//默认 无 说明:请求头
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, "内容获取成功");
|
||||
if (res.code == 0 && res.result.length > 0) {
|
||||
this.titleList = res.result;
|
||||
} else {
|
||||
this.titleList = [];
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
this.titleList = [];
|
||||
console.log(e);
|
||||
});
|
||||
}
|
||||
if (this.curOneCateIndex == 3) {
|
||||
$http
|
||||
.request({
|
||||
url: "book/medicaldes/recordByType?type=" + dictType,
|
||||
method: "POST",
|
||||
data: {
|
||||
// loadAnimate: 'none', // 请求加载动画
|
||||
limit: 1000,
|
||||
page: 1,
|
||||
},
|
||||
header: {
|
||||
//默认 无 说明:请求头
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, "内容获取成功");
|
||||
if (res.code == 0 && res.result.length > 0) {
|
||||
this.titleList = res.result;
|
||||
} else {
|
||||
this.titleList = [];
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
this.titleList = [];
|
||||
console.log(e);
|
||||
});
|
||||
}
|
||||
},
|
||||
setTwoCateIndex(item, index) {
|
||||
let dictType = item.dictType;
|
||||
this.curTwoCateIndex = index;
|
||||
this.getTitles(dictType);
|
||||
},
|
||||
async setOneCateIndex(item, index) {
|
||||
console.log(index, 99999);
|
||||
var that = this;
|
||||
|
||||
// if(this.userMes.tgdzPower == 0){
|
||||
// let that = this
|
||||
// uni.showModal({
|
||||
// content: "购买 针灸六经法要上册和下册 后方可使用此功能",
|
||||
// confirmText: '好的',
|
||||
// showCancel: false,
|
||||
// success: function(res) {
|
||||
// if (res.confirm) {
|
||||
// // console.log('用户点击确定');
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
// if(item.title == "时辰取穴"){
|
||||
// uni.navigateTo({
|
||||
// url: "../timeAcupoint/timeAcupoint"
|
||||
// })
|
||||
// return
|
||||
// }
|
||||
let type = item.type;
|
||||
this.curOneCateIndex = index;
|
||||
this.curTwoCateIndex = 0;
|
||||
this.searchValue = "";
|
||||
this.searchList = [];
|
||||
this.showSearchList = false;
|
||||
// if (index != 2) {
|
||||
await this.getTowCateList(type);
|
||||
|
||||
// uni.createSelectorQuery().select('.oneCateList').boundingClientRect(function (rect) {
|
||||
// var height = rect.height
|
||||
// console.log('元素高度:',);
|
||||
|
||||
// }).exec();
|
||||
|
||||
// } else {
|
||||
// this.getJFList(dictType)
|
||||
// }
|
||||
},
|
||||
async getTowCateList(type) {
|
||||
var that = this;
|
||||
$http
|
||||
.request({
|
||||
url: "book/medicaldes/typeList?label=" + type,
|
||||
method: "POST", // POST、GET、PUT、DELETE,具体说明查看官方文档
|
||||
data: {
|
||||
loadAnimate: "none", // 请求加载动画
|
||||
// 'categoryId': id
|
||||
},
|
||||
// header: { //默认 无 说明:请求头
|
||||
// 'Content-Type': 'application/json'
|
||||
// },
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, "二级分类获取成功");
|
||||
if (res.code == 0 && res.result.length >= 0) {
|
||||
this.twoCateList = res.result;
|
||||
if (this.curOneCateIndex == 0) {
|
||||
this.twoCateList = [{
|
||||
dictType: "1",
|
||||
dictValue: "学术思想",
|
||||
},
|
||||
{
|
||||
dictType: "2",
|
||||
dictValue: "出版专著",
|
||||
},
|
||||
{
|
||||
dictType: "3",
|
||||
dictValue: "学术平台",
|
||||
},
|
||||
];
|
||||
}
|
||||
if (this.curOneCateIndex == 2) {
|
||||
this.twoCateList = [{
|
||||
dictType: "1",
|
||||
dictValue: "吴门之歌",
|
||||
},
|
||||
{
|
||||
dictType: "2",
|
||||
dictValue: "巴山夜语",
|
||||
},
|
||||
{
|
||||
dictType: "3",
|
||||
dictValue: "吴门之徽",
|
||||
},
|
||||
];
|
||||
}
|
||||
if (this.curOneCateIndex == 3) {
|
||||
this.twoCateList = [{
|
||||
dictType: "1",
|
||||
dictValue: "学术贡献",
|
||||
},
|
||||
{
|
||||
dictType: "2",
|
||||
dictValue: "抗疫纪实",
|
||||
},
|
||||
{
|
||||
dictType: "3",
|
||||
dictValue: "吴门公益",
|
||||
},
|
||||
];
|
||||
}
|
||||
this.getTitles(this.twoCateList[0].dictType);
|
||||
|
||||
this.$nextTick(async () => {
|
||||
// await uni.createSelectorQuery().select('.uni-tabbar').boundingClientRect(function (rect) {
|
||||
// console.log(rect.height, '3333')
|
||||
|
||||
// // var height = 42 + rect.height + 10;
|
||||
// // that.scrollViewHeight = height;
|
||||
// // console.log(that.scrollViewHeight, '111111')
|
||||
// // that.$forceUpdate()
|
||||
// // console.log('元素高度2:', height);
|
||||
// }).exec();
|
||||
await uni
|
||||
.createSelectorQuery()
|
||||
.select(".cateList")
|
||||
.boundingClientRect(function(rect) {
|
||||
console.log(rect.height, "22222");
|
||||
|
||||
var height = 42 + rect.height + 20;
|
||||
that.scrollViewHeight = height;
|
||||
console.log(that.scrollViewHeight, "111111");
|
||||
that.$forceUpdate();
|
||||
console.log("元素高度2:", height);
|
||||
})
|
||||
.exec();
|
||||
});
|
||||
} else {
|
||||
this.twoCateList = [];
|
||||
this.titleList = [];
|
||||
}
|
||||
})
|
||||
.catch((e) => {
|
||||
this.twoCateList = [];
|
||||
this.titleList = [];
|
||||
console.log(e);
|
||||
});
|
||||
},
|
||||
transformData(inputData) {
|
||||
const result = {};
|
||||
inputData.forEach((item) => {
|
||||
const {
|
||||
letter
|
||||
} = item;
|
||||
if (!result[letter]) {
|
||||
result[letter] = [];
|
||||
}
|
||||
result[letter].push(item);
|
||||
});
|
||||
// const finalResult = Object.keys(result).map(key => ({ [key]: result[key] }));
|
||||
return result;
|
||||
},
|
||||
// getJFList(id) {
|
||||
// $http.request({
|
||||
// url: "book/prescript/prescriptListForJF",
|
||||
// method: "POST", // POST、GET、PUT、DELETE,具体说明查看官方文档
|
||||
// data: {
|
||||
// loadAnimate: 'none', // 请求加载动画
|
||||
// 'categoryId': id
|
||||
// },
|
||||
// header: { //默认 无 说明:请求头
|
||||
// 'Content-Type': 'application/json'
|
||||
// },
|
||||
// }).then(res => {
|
||||
// if (res.code == 0 && res.list.length > 0) {
|
||||
// this.twoCateList = []
|
||||
// this.titleList = this.transformData(res.list)
|
||||
// console.log('JF经方', this.titleList)
|
||||
// } else {
|
||||
// this.twoCateList = []
|
||||
// this.titleList = []
|
||||
// }
|
||||
// }).catch(e => {
|
||||
// this.twoCateList = []
|
||||
// this.titleList = []
|
||||
// console.log(e)
|
||||
// })
|
||||
// },
|
||||
getCateList(id) {
|
||||
id ? "" : (id = 0);
|
||||
this.twoCateList = [];
|
||||
this.curTwoCateIndex = 0;
|
||||
// 0为获取顶级分类,其他为搜索下级分类,目前的逻辑,顶级是写死的,所以可能只会涉及到搜索第二级
|
||||
// $http.request({
|
||||
// url: "book/prescript/prescriptCategoryList",
|
||||
// method: "POST", // POST、GET、PUT、DELETE,具体说明查看官方文档
|
||||
// data: {
|
||||
// loadAnimate: 'none', // 请求加载动画
|
||||
// 'categoryId': id
|
||||
// },
|
||||
// header: { //默认 无 说明:请求头
|
||||
// 'Content-Type': 'application/json'
|
||||
// },
|
||||
// }).then(res => {
|
||||
// console.log(res, '脉穴分类获取成功')
|
||||
// if (res.code == 0 && res.list.length > 0) {
|
||||
// this.oneCateList = res.list
|
||||
// this.getTowCateList(this.oneCateList[0].type);
|
||||
// } else {
|
||||
// this.oneCateList = []
|
||||
// }
|
||||
// }).catch(e => {
|
||||
// this.oneCateList = []
|
||||
// console.log(e)
|
||||
// })
|
||||
},
|
||||
|
||||
// 放大图片
|
||||
previewImage(url) {
|
||||
console.log(url);
|
||||
uni.previewImage({
|
||||
urls: [url],
|
||||
longPressActions: {
|
||||
itemList: ["很抱歉,暂不支持保存图片到本地"],
|
||||
success: function(res) {
|
||||
// console.log(res,'+++++')
|
||||
},
|
||||
},
|
||||
});
|
||||
},
|
||||
// getSearch() {
|
||||
// $http.request({
|
||||
// url: "book/prescript/searchPrescript",
|
||||
// method: "POST", // POST、GET、PUT、DELETE,具体说明查看官方文档
|
||||
// data: {
|
||||
// loadAnimate: 'none', // 请求加载动画
|
||||
// 'keywords': this.searchValue,
|
||||
// type: this.curOneCateIndex + 1
|
||||
// },
|
||||
// header: { //默认 无 说明:请求头
|
||||
// 'Content-Type': 'application/json'
|
||||
// },
|
||||
// }).then(res => {
|
||||
// console.log(res, '搜索结果')
|
||||
// if (res.code == 0 && res.list.length >= 0) {
|
||||
// this.showSearchList = true
|
||||
// this.searchList = res.list
|
||||
// } else {
|
||||
// this.searchList = []
|
||||
// }
|
||||
// }).catch(e => {
|
||||
// // this.titleList = []
|
||||
// this.searchList = []
|
||||
// console.log(e)
|
||||
// })
|
||||
// },
|
||||
// search(res) {
|
||||
// console.log(res, 'res')
|
||||
// // uni.showToast({
|
||||
// // title: '搜索:' + res,
|
||||
// // icon: 'none'
|
||||
// // })
|
||||
// if (res == '') {
|
||||
// this.showSearchList = false
|
||||
// this.searchList = []
|
||||
// } else {
|
||||
// this.getSearch()
|
||||
// }
|
||||
|
||||
// },
|
||||
// input(res) {
|
||||
// console.log('----input:', res)
|
||||
// if (res == '') {
|
||||
// this.searchList = []
|
||||
// } else {
|
||||
// this.getSearch()
|
||||
// }
|
||||
// },
|
||||
// clear(res) {
|
||||
// console.log('----clear:', res)
|
||||
// // uni.showToast({
|
||||
// // title: 'clear事件,清除值为:',
|
||||
// // icon: 'none'
|
||||
// // })
|
||||
// this.searchValue = ''
|
||||
// this.showSearchList = false
|
||||
// },
|
||||
// blur(res) {
|
||||
// // console.log('----blur:', res)
|
||||
// // if (res == '') {
|
||||
// // this.showSearchList = false
|
||||
// // this.searchList = []
|
||||
// // } else {
|
||||
// // this.getSearch()
|
||||
// // }
|
||||
// },
|
||||
// focus(e) {
|
||||
// console.log('----focus:')
|
||||
// // uni.showToast({
|
||||
// // title: 'focus事件,输出值为:' + e.value,
|
||||
// // icon: 'none'
|
||||
// // })
|
||||
// // 等于1 就是有权限
|
||||
// // this.showSearchList = true
|
||||
|
||||
// },
|
||||
// cancel(res) {
|
||||
// uni.showToast({
|
||||
// title: '点击取消,输入值为:' + res.value,
|
||||
// icon: 'none'
|
||||
// })
|
||||
// }
|
||||
},
|
||||
onBackPress() {
|
||||
// #ifdef APP-PLUS
|
||||
plus.key.hideSoftKeybord();
|
||||
// #endif
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "@/style/mixin.scss";
|
||||
|
||||
.commonPageBox {
|
||||
height: 100vh !important;
|
||||
}
|
||||
|
||||
.vipBox {
|
||||
font-size: 28rpx !important;
|
||||
background-repeat: no-repeat;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
overflow: hidden;
|
||||
background-size: 100% 100%;
|
||||
background-image: url("@/static/icon/vipbg.png");
|
||||
}
|
||||
|
||||
.searchList {
|
||||
.item {
|
||||
font-size: 28rpx;
|
||||
padding: 20rpx;
|
||||
border-bottom: 1px solid #dadbde;
|
||||
}
|
||||
}
|
||||
|
||||
.scroll-view_H {
|
||||
background-color: #fff;
|
||||
white-space: nowrap;
|
||||
padding: 10rpx;
|
||||
}
|
||||
|
||||
.scroll-Y {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.scroll-view_H {
|
||||
white-space: nowrap;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.scroll-view-item {
|
||||
display: inline-block;
|
||||
// height: 300rpx;
|
||||
// line-height: 300rpx;
|
||||
// text-align: center;
|
||||
// font-size: 36rpx;
|
||||
}
|
||||
|
||||
.scroll-view-item_H {
|
||||
display: inline-block;
|
||||
width: 100%;
|
||||
// height: 300rpx;
|
||||
// line-height: 300rpx;
|
||||
// text-align: center;
|
||||
// font-size: 36rpx;
|
||||
}
|
||||
|
||||
.titleList {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.titleList2 {
|
||||
height: calc(100% - 170rpx);
|
||||
}
|
||||
|
||||
.commonPageContentBox {
|
||||
// min-height: 100% !important;
|
||||
}
|
||||
|
||||
.related_courses_name {
|
||||
display: inline-block;
|
||||
float: left;
|
||||
line-height: 60rpx;
|
||||
width: calc(100% - 90rpx) !important;
|
||||
padding-left: 20rpx;
|
||||
font-weight: 700;
|
||||
|
||||
.aui-text-danger {
|
||||
display: inline-block;
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
|
||||
.vip_image_box {
|
||||
@include themFlex(center, center);
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.vip_image {
|
||||
width: 60rpx;
|
||||
height: 60rpx;
|
||||
// float: left;
|
||||
}
|
||||
|
||||
/deep/.list_item {
|
||||
.rightArrow {
|
||||
margin-top: 10rpx !important;
|
||||
}
|
||||
}
|
||||
|
||||
.flash_sale_content {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
overflow: hidden;
|
||||
height: 100%;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
.flash_sale_content_item {
|
||||
width: auto;
|
||||
min-width: 47%;
|
||||
min-height: 48%;
|
||||
margin: 10rpx !important;
|
||||
border-radius: 20rpx;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
|
||||
.vip_content {
|
||||
width: 100%;
|
||||
height: calc(100% - 80rpx);
|
||||
// padding: 20rpx;
|
||||
padding-top: 0;
|
||||
// display: flex;
|
||||
// align-items: center;
|
||||
// justify-content: center;
|
||||
// flex-direction: column;
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
.book_image {
|
||||
width: 165rpx;
|
||||
height: 192rpx;
|
||||
border-radius: 10rpx;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
.book_name {
|
||||
border-radius: 20rpx;
|
||||
padding: 10rpx 20rpx;
|
||||
padding-top: 20rpx;
|
||||
// height: 80rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-weight: bold;
|
||||
font-size: 46rpx;
|
||||
line-height: 48rpx;
|
||||
color: #64bec5;
|
||||
text-align: center;
|
||||
// margin-bottom: 10rpx;
|
||||
overflow: hidden;
|
||||
// text-overflow: ellipsis;
|
||||
white-space: wrap;
|
||||
}
|
||||
}
|
||||
|
||||
.vip_button_list {
|
||||
width: 100%;
|
||||
max-height: 450rpx;
|
||||
// @include themFlex(center, space-between);
|
||||
// flex-direction: column;
|
||||
padding-top: 0;
|
||||
// display: flex;
|
||||
padding: 20rpx 10rpx;
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
bottom: 20rpx;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
|
||||
// justify-content: center;
|
||||
// flex-direction: column;
|
||||
.vip_button {
|
||||
color: #265354;
|
||||
width: 100%;
|
||||
height: 80rpx !important;
|
||||
// line-height: 80rpx;
|
||||
display: flex;
|
||||
// align-items: center;
|
||||
justify-content: space-around;
|
||||
padding: 0 0rpx;
|
||||
font-size: 26rpx;
|
||||
font-weight: bold;
|
||||
width: 100%;
|
||||
border-radius: 40rpx;
|
||||
// line-height: 80rpx;
|
||||
margin-top: 20rpx;
|
||||
white-space: wrap;
|
||||
|
||||
view {
|
||||
display: flex;
|
||||
line-height: 30rpx;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
.vip_button:first-child {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.qunyi_box {
|
||||
height: calc(100% - 280rpx);
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
padding-left: 10rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.item {
|
||||
line-height: 60rpx;
|
||||
text-align: center;
|
||||
padding: 0 10rpx;
|
||||
border: 1px solid #64bec5;
|
||||
border-radius: 50rpx;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.popup_box {
|
||||
max-height: 95vh;
|
||||
overflow: auto;
|
||||
}
|
||||
</style>
|
||||
@@ -6,10 +6,19 @@
|
||||
<view class="order_top goods_box pay_box">
|
||||
<view class="pay_title">支付方式</view>
|
||||
|
||||
<view style="margin-bottom: 20rpx">
|
||||
<view style="margin-bottom: 20rpx" v-if="!dataInfo.list">
|
||||
<u-tag :text="`已选:${dataInfo.title}`" bgColor="#DCF2FA" borderColor="#DCF2FA" color="#258feb"
|
||||
plain></u-tag>
|
||||
</view>
|
||||
<view v-if="dataInfo.list&&dataInfo.list.length>0" style="margin: 20rpx 0 40rpx;">
|
||||
{{dataInfo.list[0].title}}价格:<text v-if="dataInfo.title.includes('国学与心理学')"><br/></text>
|
||||
<text v-for="(item,index) in dataInfo.list" :key="index"
|
||||
class="list_choose"
|
||||
:class="activeIndex==index?'list_choose_active':''"
|
||||
@click="chooseYear(item, index)">{{item.year}}年</text>
|
||||
</view>
|
||||
|
||||
|
||||
<view class="curriulum_title_box goods_item pay_item" v-for="(v, i) in payList">
|
||||
<view :class="isDefaultCurrency && i != 2 ? 'bgGrey top' : 'top'">
|
||||
<view class="left">
|
||||
@@ -139,6 +148,14 @@
|
||||
this.$forceUpdate();
|
||||
},
|
||||
},
|
||||
lastFee:{
|
||||
immediate: true,
|
||||
handler(newRoute) {
|
||||
if(this.dataInfo.list&&this.dataInfo.list.length>0){
|
||||
this.dataInfo.lastFee = this.dataInfo.list[0].rebateFee
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
@@ -247,6 +264,7 @@
|
||||
backgroundColor: "linear-gradient(90deg, #3C77BE 0%,#258feb 100%)",
|
||||
color: "#fff",
|
||||
}, ],
|
||||
activeIndex: 0, //选择付款 下标
|
||||
};
|
||||
},
|
||||
async onLoad(options) {
|
||||
@@ -526,7 +544,14 @@
|
||||
}
|
||||
});
|
||||
},
|
||||
//切换年份选项
|
||||
chooseYear(item,index){
|
||||
this.activeIndex = index;
|
||||
this.dataInfo.lastFee = item.rebateFee;
|
||||
|
||||
|
||||
console.log('----this.dataInfo',this.dataInfo);
|
||||
},
|
||||
radioChange(index) {
|
||||
this.selectPayIndex = index;
|
||||
this.payType = this.payList[this.selectPayIndex].type;
|
||||
@@ -1281,4 +1306,19 @@
|
||||
/deep/.commonDetailPage {
|
||||
height: 100vh !important;
|
||||
}
|
||||
|
||||
.list_choose{
|
||||
display: inline-block;
|
||||
border:1rpx solid #999;
|
||||
color: #999;
|
||||
border-radius: 10rpx;
|
||||
margin: 20rpx 30rpx 20rpx 0;
|
||||
padding: 0 30rpx;
|
||||
font-size: 28rpx;
|
||||
line-height: 50rpx;
|
||||
}
|
||||
.list_choose_active{
|
||||
border:1rpx solid #ff1f00;
|
||||
color: #ff1f00;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user