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.
303 lines
6.7 KiB
303 lines
6.7 KiB
<template>
|
|
<view class="content">
|
|
<up-navbar leftText=" " :leftIconColor="'#fff'" :safeAreaInsetTop="true" :autoBack="true" title="我的学习" :bgColor="'transparent'" :titleStyle="{color: '#fff'}">
|
|
</up-navbar>
|
|
<view class="studyDay">已坚持学习8天</view>
|
|
<view class="card">
|
|
<view class="tabs">
|
|
<view class="tab" @click="changeNav(1)" :class="{active: currentNav==1}">科一</view>
|
|
<view class="tab" @click="changeNav(2)" :class="{active: currentNav==2}">科四</view>
|
|
</view>
|
|
<view class="pd20">
|
|
<view class="statistics">
|
|
<view class="statisticsItem" v-for="(item,index) in statisticsData" :key="index">
|
|
<view class="num">{{ item.num }}</view>
|
|
<view class="text">{{ item.name }}</view>
|
|
</view>
|
|
</view>
|
|
<view class="h3">刷题进度</view>
|
|
<view class="bgCard_row">
|
|
<view class="bgCard">
|
|
<view class="lab">顺序练习</view>
|
|
<view class="tps">已完成(题)</view>
|
|
<view class="num">140/500</view>
|
|
</view>
|
|
<view class="bgCard">
|
|
<view class="lab">精选试题</view>
|
|
<view class="tps">已完成(题)</view>
|
|
<view class="num">110/500</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="card card2">
|
|
<view class="chartTab">
|
|
<view class="h3">刷题进度</view>
|
|
<view class="btn_row">
|
|
<view class="btn" @click="changeChart(1)" :class="{bg: currentChart==1}">曲线</view>
|
|
<view class="btn" @click="changeChart(2)" :class="{bg: currentChart==2}">明细</view>
|
|
</view>
|
|
</view>
|
|
<view class="tip">近30次科目一模拟考试成绩</view>
|
|
<view class="con" v-if="currentChart==1">
|
|
图表
|
|
<view class="tips">按住可左右滑动查看更多成绩</view>
|
|
</view>
|
|
<view class="con" v-if="currentChart==2">
|
|
<view class="tables">
|
|
<view class="fristTab li">
|
|
<view class="item">考试成绩</view>
|
|
<view class="item">考试用时</view>
|
|
<view class="item">考试时间</view>
|
|
</view>
|
|
<view class="li">
|
|
<view class="item">90分</view>
|
|
<view class="item">10分30秒</view>
|
|
<view class="item">2024-8-28</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 如果是科目四,并且没有数据 -->
|
|
<view class="subject4 card2 card" v-if="currentNav==2">
|
|
<view class="h3">模拟考试</view>
|
|
<nodata>暂无考试记录</nodata>
|
|
<view class="btnE">
|
|
<oneBtn text="去考试" @oneBtnClick="$goPage('/pages/exercises/beforeExam/beforeExam')"></oneBtn>
|
|
</view>
|
|
</view>
|
|
|
|
</view>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { ref } from 'vue'
|
|
import nodata from '@/components/nodata/nodata.vue'
|
|
const value = ref(false)
|
|
const currentNav = ref(1)
|
|
|
|
function changeNav(val) {
|
|
currentNav.value = val
|
|
}
|
|
const statisticsData = ref([
|
|
{name: '我的收藏', num: 0},
|
|
{name: '我的错题', num: 1},
|
|
{name: '考试记录', num: 2},
|
|
{name: '预计合格率', num: '100%'},
|
|
])
|
|
|
|
const currentChart = ref(1)
|
|
function changeChart(num) {
|
|
currentChart.value = num
|
|
}
|
|
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.u-nav-slot {
|
|
display: flex;
|
|
.btn {
|
|
color: #fff;
|
|
position: relative;
|
|
padding: 0 20rpx;
|
|
&.active {
|
|
&::before {
|
|
content: '';
|
|
position: absolute;
|
|
left: 50%;
|
|
bottom: -20rpx;
|
|
width: 30rpx;
|
|
height: 4rpx;
|
|
background: #F6F7F8;
|
|
border-radius: 2rpx;
|
|
transform: translateX(-50%);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.content {
|
|
width: 100%;
|
|
// background-color: #F6F7FA;
|
|
min-height: 100vh;
|
|
padding: 100rpx 30rpx 30rpx 30rpx;
|
|
background: url('../../../static/images/topbg.png') #F6F7FA no-repeat;
|
|
background-size: 100% 410rpx;
|
|
.studyDay {
|
|
font-weight: bold;
|
|
font-size: 36rpx;
|
|
color: #FFFFFF;
|
|
padding: 40rpx 0;
|
|
}
|
|
.card {
|
|
background: #FFFFFF;
|
|
border-radius: 20rpx;
|
|
overflow: hidden;
|
|
margin-top: 20rpx;
|
|
&.card2 {
|
|
padding: 20rpx;
|
|
}
|
|
.pd20 {
|
|
padding: 20rpx;
|
|
}
|
|
.tabs {
|
|
height: 84rpx;
|
|
background: #F6F7FA;
|
|
border-radius: 20rpx 20rpx 0px 0px;
|
|
display: flex;
|
|
line-height: 84rpx;
|
|
text-align: center;
|
|
.tab {
|
|
width: 160rpx;
|
|
font-weight: 500;
|
|
font-size: 28rpx;
|
|
&.active {
|
|
background: #fff;
|
|
}
|
|
}
|
|
}
|
|
|
|
.statistics {
|
|
display: flex;
|
|
.statisticsItem {
|
|
width: 25%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
height: 152rpx;
|
|
&:last-child {
|
|
background: linear-gradient(0deg, rgba(55,118,255,0) 0%, #EDF3FF 100%);
|
|
border-radius: 10px;
|
|
color: $themC;
|
|
.text {
|
|
color: $themC;
|
|
}
|
|
}
|
|
.num {
|
|
font-family: DIN;
|
|
font-weight: bold;
|
|
font-size: 38rpx;
|
|
margin-bottom: 6rpx;
|
|
}
|
|
|
|
.text {
|
|
font-size: 24rpx;
|
|
color: #CCCCCC;
|
|
margin-bottom: 16rpx;
|
|
}
|
|
}
|
|
}
|
|
|
|
.h3 {
|
|
font-weight: 500;
|
|
font-size: 30rpx;
|
|
}
|
|
|
|
.bgCard_row {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
margin-top: 20rpx;
|
|
.bgCard {
|
|
|
|
padding: 20rpx 0 0 30rpx;
|
|
height: 172rpx;
|
|
width: 48%;
|
|
&:first-child {
|
|
background: url('../../../static/images/mystudy1.png') no-repeat;
|
|
background-size: 100% 100%;
|
|
color: #24CBBA;
|
|
}
|
|
&:last-child {
|
|
background: url('../../../static/images/mystudy2.png') no-repeat;
|
|
background-size: 100% 100%;
|
|
color: #F07634;
|
|
}
|
|
.lab {
|
|
font-size: 28rpx;
|
|
}
|
|
|
|
.tps {
|
|
font-size: 24rpx;
|
|
opacity: 0.3;
|
|
padding: 6rpx 0;
|
|
}
|
|
|
|
.num {
|
|
font-family: DIN;
|
|
font-weight: bold;
|
|
font-size: 36rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.tip {
|
|
font-size: 24rpx;
|
|
color: #ccc;
|
|
padding: 10rpx 0 30rpx;
|
|
}
|
|
.tips {
|
|
width: 360rpx;
|
|
height: 48rpx;
|
|
background: #DCE7FF;
|
|
border-radius: 24rpx;
|
|
font-size: 24rpx;
|
|
color: $themC;
|
|
text-align: center;
|
|
line-height: 48rpx;
|
|
margin-top: 30rpx;
|
|
}
|
|
.chartTab {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
.btn_row {
|
|
display: flex;
|
|
width: 170rpx;
|
|
height: 44rpx;
|
|
border-radius: 8rpx;
|
|
overflow: hidden;
|
|
border: 1px solid $themC;
|
|
.btn.bg {
|
|
background: #3776FF;
|
|
color: #fff;
|
|
}
|
|
|
|
.btn {
|
|
color: $themC;
|
|
text-align: center;
|
|
font-size: 28rpx;
|
|
flex: 1;
|
|
}
|
|
}
|
|
}
|
|
.tables {
|
|
width: 100%;
|
|
.fristTab.li {
|
|
background: #F4F4F4;
|
|
border-radius: 8rpx 8rpx 0 0;
|
|
.item {
|
|
color: $themC;
|
|
}
|
|
}
|
|
|
|
.li {
|
|
height: 76rpx;
|
|
line-height: 76rpx;
|
|
border-bottom: 1rpx solid #F4F4F4;
|
|
display: flex;
|
|
.item {
|
|
text-align: center;
|
|
flex: 1;
|
|
font-size: 28rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.btnE {
|
|
width: 240rpx;
|
|
margin: 30rpx auto 60rpx auto;
|
|
}
|
|
</style>
|