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.
 
 
 

140 lines
2.9 KiB

<template>
<view class="card card2">
<view class="chartTab">
<view class="h3">{{ tit }}</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次科目{{ subject==1? '一': '四'}}模拟考试成绩</view>
<view class="" v-if="listData.length">
<view class="con" v-if="currentChart==1">
<columnChart :chartData="chartData" :key="tit"></columnChart>
<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" v-for="(item,index) in listData" :key="index">
<view class="item">{{item.score}}</view>
<view class="item">{{item.useTime}}</view>
<view class="item">{{item.startTime}}</view>
</view>
</view>
</view>
</view>
<view class="" v-else>
<nodata>暂无考试记录</nodata>
<view class="btnE">
<oneBtn text="去考试" @oneBtnClick="$goPage(url)"></oneBtn>
</view>
</view>
</view>
</template>
<script setup>
import { ref } from 'vue'
defineProps({
tit: {
type: String,
default: ''
},
chartData: {
type: Object,
default: {}
},
listData: {
type: Array,
default: []
},
subject: {
type: Number,
default: 1
},
url: {
type: String,
default: '/pages/exercises/examSubjiect1/examSubjiect1'
}
})
const currentChart = ref(1)
function changeChart(num) {
currentChart.value = num
}
</script>
<style scoped lang="scss">
.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>