风险测评小程序前端代码仓库
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.
 
 
 

153 lines
3.0 KiB

<template>
<view class="page__view">
<view class="bg"></view>
<view class="main">
<view class="swiper">
<uv-swiper
:list="bannerList" keyName="image"
indicator
indicatorMode="dot"
indicatorActiveColor="#62BBFF"
indicatorInactiveColor="#FFFFFF"
height="340rpx"
></uv-swiper>
</view>
<view class="flex flex-column card">
<view class="title">{{ configList.page_index_title }}</view>
<image class="icon" src="@/static/image/icon-index.png" mode="widthFix"></image>
<button class="btn" @click="onStartTest">开始测评</button>
</view>
<unfinishTestPopup ref="unfinishTestPopup"></unfinishTestPopup>
<tabber select="home" />
</view>
</view>
</template>
<script>
import tabber from '@/components/base/tabbar.vue'
import unfinishTestPopup from '@/components/home/unfinishTestPopup.vue'
export default {
components: {
tabber,
unfinishTestPopup,
},
data() {
return {
bannerList: [],
}
},
onLoad() {
if(uni.getStorageSync('token')){
this.$store.commit('getUserInfo')
}
this.fetchBanner()
},
onShow() {
if(uni.getStorageSync('token')){
this.fetchUnfinish()
}
},
methods: {
async fetchBanner() {
try {
this.bannerList = (await this.$fetch('queryBannerList', { type: '0' }))?.records // type:0-首页
} catch (err) {
}
},
async fetchUnfinish() {
// todo: delete
// let data = { id: '001', unfinishCount: 15, current: 18, }
// this.$refs.unfinishTestPopup.open(data)
try {
const { records, total } = await this.$fetch('queryExamLogList', { pageNo: 1, pageSize: 1, isFinished: '0' })
total && this.$refs.unfinishTestPopup.open(records[0])
} catch (err) {
}
},
onStartTest() {
uni.navigateTo({
url: `/pages_order/test/start`
})
},
},
}
</script>
<style scoped lang="scss">
.bg {
width: 100%;
height: 376rpx;
background: linear-gradient(164deg, #014FA2 30%, #4C8FD6);
}
.main {
position: absolute;
top: 0;
left: 0;
width: 100%;
padding: 174rpx 30rpx 0 30rpx;
box-sizing: border-box;
}
.swiper {
border-radius: 10rpx;
overflow: hidden;
/deep/ .uv-swiper-indicator__wrapper__dot,
/deep/ .uv-swiper-indicator__wrapper__dot--active {
width: 5px;
}
}
.card {
margin-top: 32rpx;
justify-content: space-between;
min-height: 803rpx;
padding: 135rpx 0 55rpx 0;
box-sizing: border-box;
background: linear-gradient(rgba($color: #FCFDFE, $alpha: 0.93), rgba($color: #FCFDFE, $alpha: 0.93) 180rpx, rgba($color: #3381D4, $alpha: 0.43));
border-radius: 25rpx;
border: 3rpx solid #FFFFFF;
box-shadow: 0rpx 3rpx 6rpx 0rpx rgba(0,0,0,0.16);
.title {
font-size: 32rpx;
font-weight: 600;
color: #000000;
}
.icon {
margin: 99rpx 0 86rpx;
width: 285rpx;
height: auto;
}
.btn {
padding: 20rpx 212rpx;
font-size: 30rpx;
white-space: nowrap;
color: #FFFFFF;
line-height: 1.4;
background: #014FA2;
border-radius: 42rpx;
}
}
</style>