|
|
@ -2,34 +2,37 @@ |
|
|
|
<view class="flex fld-c p15"> |
|
|
|
<view class="flex fld-c p15"> |
|
|
|
<u-sticky> |
|
|
|
<u-sticky> |
|
|
|
<view class="flex ai-c"> |
|
|
|
<view class="flex ai-c"> |
|
|
|
<view v-for="(item,index) in list" :key="index" class="km-item" :class="{ actived: index==current }" |
|
|
|
<view v-for="(item,index) in vipAllList" :key="index" class="km-item" :class="{ actived: index==current }" |
|
|
|
@click="current=index"> |
|
|
|
@click="current=index"> |
|
|
|
{{ item.name }} |
|
|
|
{{ getKmTitle(item.subjects) }} |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</u-sticky> |
|
|
|
</u-sticky> |
|
|
|
<view class="mt15"> |
|
|
|
<view class="mt15"> |
|
|
|
<swiper class="swiper" :current="current" style="height: 120px;" :autoplay="false" :display-multiple-items="1.45" |
|
|
|
<swiper class="swiper" :current="current" style="height: 120px;" :autoplay="false" :display-multiple-items="1.45" |
|
|
|
:disable-programmatic-animation="true" @change="onChange"> |
|
|
|
:disable-programmatic-animation="true" @change="onChange"> |
|
|
|
<swiper-item v-for="(item,index) in list" :key="index"> |
|
|
|
<swiper-item v-for="(item,index) in vipAllList" :key="index"> |
|
|
|
<view class="relative"> |
|
|
|
<view class="relative"> |
|
|
|
<image src="../../static/image/mine/vip_card.png" mode="widthFix" style="width:95%;"></image> |
|
|
|
<image src="../../static/image/mine/vip_card.png" mode="widthFix" style="width:95%;"></image> |
|
|
|
<view class="vip-info"> |
|
|
|
<view class="vip-info"> |
|
|
|
<u-avatar class="br-p50 overflow-h" style="border: 3px solid #873E1D;" :size="35" mp-avatar></u-avatar> |
|
|
|
<u-avatar class="br-p50 overflow-h" style="border: 3px solid #873E1D;" :size="35" mp-avatar></u-avatar> |
|
|
|
<view class="ml10"> |
|
|
|
<view class="ml10"> |
|
|
|
<view class="fs16 fwb" style="color: #7E4012;line-height: 16px;"> |
|
|
|
<view class="fs16 fwb" style="color: #7E4012;line-height: 16px;"> |
|
|
|
{{item.name}}尊享VIP |
|
|
|
{{item.memberName}} |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="mt5 fs12" style="color: #7E4012;line-height: 12px;"> |
|
|
|
<view class="mt5 fs12" style="color: #7E4012;line-height: 12px;"> |
|
|
|
2024-12-12到期 |
|
|
|
{{getExpireText(item)}} |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="corner"> |
|
|
|
<view v-if="vipHasOpened(item)" class="corner"> |
|
|
|
VIP已开通 |
|
|
|
VIP已开通 |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="renew"> |
|
|
|
<view v-if="vipHasOpened(item)" class="renew"> |
|
|
|
98元立即续费 |
|
|
|
{{item.price}}元立即续费 |
|
|
|
|
|
|
|
</view> |
|
|
|
|
|
|
|
<view v-else class="buy"> |
|
|
|
|
|
|
|
立即充值 |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</swiper-item> |
|
|
|
</swiper-item> |
|
|
@ -40,10 +43,10 @@ |
|
|
|
<view class="mt20"> |
|
|
|
<view class="mt20"> |
|
|
|
<swiper class="swiper" :current="current" style="height: 300px;" :autoplay="false" |
|
|
|
<swiper class="swiper" :current="current" style="height: 300px;" :autoplay="false" |
|
|
|
:disable-programmatic-animation="true" @change="onChange"> |
|
|
|
:disable-programmatic-animation="true" @change="onChange"> |
|
|
|
<swiper-item v-for="(item,index) in list" :key="index"> |
|
|
|
<swiper-item v-for="(item,index) in vipAllList" :key="index"> |
|
|
|
<view v-if="index == 0 || index == 3" class="p15 br8 cor-fff"> |
|
|
|
<view v-if="index == 0 || index == 3" class="p15 br8 cor-fff"> |
|
|
|
<view class="fs18 cor-000 fwb"> |
|
|
|
<view class="fs18 cor-000 fwb"> |
|
|
|
3步轻松学{{item.name}} |
|
|
|
3步轻松学{{getKmTitle(item.subjects)}} |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="mt25 flex ai-c jc-sb"> |
|
|
|
<view class="mt25 flex ai-c jc-sb"> |
|
|
|
<view class="flex ai-c"> |
|
|
|
<view class="flex ai-c"> |
|
|
@ -57,7 +60,7 @@ |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="study"> |
|
|
|
<view class="study" @tap="to500(item)"> |
|
|
|
去学习 |
|
|
|
去学习 |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
@ -73,7 +76,7 @@ |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="study"> |
|
|
|
<view class="study" @tap="toRealExam(item)"> |
|
|
|
去学习 |
|
|
|
去学习 |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
@ -89,7 +92,7 @@ |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="study"> |
|
|
|
<view class="study" @tap="toSpecExam(item)"> |
|
|
|
去学习 |
|
|
|
去学习 |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
@ -104,7 +107,7 @@ |
|
|
|
<image src="../../static/image/index/index_bg.png" mode="widthFix" style="flex: 1;border-radius: 33rpx;"></image> |
|
|
|
<image src="../../static/image/index/index_bg.png" mode="widthFix" style="flex: 1;border-radius: 33rpx;"></image> |
|
|
|
<view class="ml18 text-center"> |
|
|
|
<view class="ml18 text-center"> |
|
|
|
<u-button :customStyle="{width:'200rpx',height:'66rpx',borderRadius: '33rpx'}" iconColor="#fff" |
|
|
|
<u-button :customStyle="{width:'200rpx',height:'66rpx',borderRadius: '33rpx'}" iconColor="#fff" |
|
|
|
text="去看视频" color="linear-gradient(90deg, #E66501 0%, #F8A42C 100%)" icon="play-circle"> |
|
|
|
text="去看视频" color="linear-gradient(90deg, #E66501 0%, #F8A42C 100%)" icon="play-circle" @click="toPlaceLive(item)"> |
|
|
|
</u-button> |
|
|
|
</u-button> |
|
|
|
<view class="cor-333 fs15 mt17">真实考场模拟</view> |
|
|
|
<view class="cor-333 fs15 mt17">真实考场模拟</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
@ -120,24 +123,92 @@ |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
<script> |
|
|
|
|
|
|
|
import useUserStore from '@/jtools/store/user' |
|
|
|
export default { |
|
|
|
export default { |
|
|
|
|
|
|
|
computed: { |
|
|
|
|
|
|
|
vipAllList() { |
|
|
|
|
|
|
|
return useUserStore().vipAllList.filter(it=>[1,2,3,4].includes(Number(it.subjects))) |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
vipOnList() { |
|
|
|
|
|
|
|
return useUserStore().vipOnList |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
data() { |
|
|
|
data() { |
|
|
|
return { |
|
|
|
return { |
|
|
|
list: [{ |
|
|
|
|
|
|
|
name: '科一' |
|
|
|
|
|
|
|
}, { |
|
|
|
|
|
|
|
name: '科二' |
|
|
|
|
|
|
|
}, { |
|
|
|
|
|
|
|
name: '科三' |
|
|
|
|
|
|
|
}, { |
|
|
|
|
|
|
|
name: '科四' |
|
|
|
|
|
|
|
}], |
|
|
|
|
|
|
|
current: 0 |
|
|
|
current: 0 |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
methods: { |
|
|
|
onChange(e) { |
|
|
|
onChange(e) { |
|
|
|
this.current = e.detail.current |
|
|
|
this.current = e.detail.current |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
getKmTitle(km) { |
|
|
|
|
|
|
|
return { |
|
|
|
|
|
|
|
'1': '科一', |
|
|
|
|
|
|
|
'2': '科二', |
|
|
|
|
|
|
|
'3': '科三', |
|
|
|
|
|
|
|
'4': '科四', |
|
|
|
|
|
|
|
}[km] |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
getExpireText(item) { |
|
|
|
|
|
|
|
const vipOn = this.vipOnList.find(it => it.memberId == item.memberId) |
|
|
|
|
|
|
|
if(vipOn) { |
|
|
|
|
|
|
|
return `${vipOn.endDate.split(' ')[0]}到期` |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
return '开通vip助您快速拿证' |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
vipHasOpened(item) { |
|
|
|
|
|
|
|
return !!this.vipOnList.find(it => it.memberId == item.memberId) |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
// 去精选500题 item=> 当前科目vip信息 |
|
|
|
|
|
|
|
to500(item) { |
|
|
|
|
|
|
|
// 当前vip是否已开通 |
|
|
|
|
|
|
|
if(this.vipHasOpened(item)) { |
|
|
|
|
|
|
|
// 跳转 |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
uni.showToast({ |
|
|
|
|
|
|
|
title: `请先充值${this.getKmTitle(item.subjects)}vip`, |
|
|
|
|
|
|
|
icon: 'none' |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
// 去真实考场 item=> 当前科目vip信息 |
|
|
|
|
|
|
|
toRealExam(item) { |
|
|
|
|
|
|
|
// 当前vip是否已开通 |
|
|
|
|
|
|
|
if(this.vipHasOpened(item)) { |
|
|
|
|
|
|
|
// 跳转 |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
uni.showToast({ |
|
|
|
|
|
|
|
title: `请先充值${this.getKmTitle(item.subjects)}vip`, |
|
|
|
|
|
|
|
icon: 'none' |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
// 去秘卷 item=> 当前科目vip信息 |
|
|
|
|
|
|
|
toSpecExam(item) { |
|
|
|
|
|
|
|
// 当前vip是否已开通 |
|
|
|
|
|
|
|
if(this.vipHasOpened(item)) { |
|
|
|
|
|
|
|
// 跳转 |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
uni.showToast({ |
|
|
|
|
|
|
|
title: `请先充值${this.getKmTitle(item.subjects)}vip`, |
|
|
|
|
|
|
|
icon: 'none' |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
// 去考场实况 item=> 当前科目vip信息 |
|
|
|
|
|
|
|
toPlaceLive(item) { |
|
|
|
|
|
|
|
// 当前vip是否已开通 |
|
|
|
|
|
|
|
if(this.vipHasOpened(item)) { |
|
|
|
|
|
|
|
// 跳转 |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
uni.showToast({ |
|
|
|
|
|
|
|
title: `请先充值${this.getKmTitle(item.subjects)}vip`, |
|
|
|
|
|
|
|
icon: 'none' |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -203,6 +274,21 @@ |
|
|
|
font-size: 12px; |
|
|
|
font-size: 12px; |
|
|
|
color: #F6E99F; |
|
|
|
color: #F6E99F; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.buy { |
|
|
|
|
|
|
|
position: absolute; |
|
|
|
|
|
|
|
left: 45%; |
|
|
|
|
|
|
|
transform: translateX(-50%); |
|
|
|
|
|
|
|
bottom: 15px; |
|
|
|
|
|
|
|
display: flex; |
|
|
|
|
|
|
|
align-items: center; |
|
|
|
|
|
|
|
justify-content: center; |
|
|
|
|
|
|
|
width: 200rpx; |
|
|
|
|
|
|
|
height: 60rpx; |
|
|
|
|
|
|
|
background: #873E1D; |
|
|
|
|
|
|
|
border-radius: 30rpx; |
|
|
|
|
|
|
|
font-size: 14px; |
|
|
|
|
|
|
|
color: #F6E99F; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.study { |
|
|
|
.study { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|