{{item.name}}
</div>
</div>
</div>
<div class="form-item">
<div class="label flex-row-center">再选科目<span class="tips">(四选二)</span></div>
<div class="check-box-group">
<div class="check-box "
v-for="(item, index) in secondSubjectRequirement" key="index" @click="toggleRequirement(item.value, secondRequirement, 2)"
class="{'active': inList(secondRequirement, item.value)}"
{{item.name}}
</div>
</div>
</div>
<div class="btn-wrap" v-if="!firstRequirementLength">
<div class="btn " >确定</div>
</div>
<div class="btn-wrap" v-else>
<div class="btn blue" @click="submit">确定</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
subjectTypeList: {},
firstSubjectRequirement: [],
secondSubjectRequirement: [],
firstRequirement: [],
secondRequirement: [],
}
},
computed: {
firstRequirementLength() {
/ 是否选取完整 /
return this.firstRequirement.length && this.secondRequirement.length==2
}
},
onLoad() {
let temp = uni.getStorageSync('student-list') || '{}'
temp = JSON.parse(temp)
let first = new Array()
if(temp.firstSubject) {
first.push(temp.firstSubject)
}
this.firstRequirement = first
this.secondRequirement = temp.secondSubject || []
this.querySubjectType()
},
methods: {
toggleRequirement(val, list, max) {
let index = list.findIndex(item => item == val)
if (index != -1) {
list.splice(index,1)
return
}
if (list.length >= max) {
// this.secondRequirement = this.secondRequirement.slice(0,1)
list.pop()
}
list.push(val)
},
inList(list, val) {
let index = list.findIndex(item => item == val)
if (index != -1) {
return true
}
return false
},
async querySubjectType() {
const {
data,
code
} = await this.$api.request({
data: {
},
method: 'GET',
})
if (code == 200) {
this.subjectTypeList = data || {}
this.firstSubjectRequirement = this.subjectTypeList.firstSubjectRequirement || []
this.secondSubjectRequirement = this.subjectTypeList.secondSubjectRequirement || []
}
},
submit() {
console.log('submit')
let temp = uni.getStorageSync('student-list') || '{}'
temp = JSON.parse(temp)
temp.firstSubject = this.firstRequirement[0]
temp.secondSubject = this.secondRequirement
// #ifdef MP-WEIXIN
wx.setStorageSync('student-list',JSON.stringify(temp))
// #endif
// #ifndef MP-WEIXIN
uni.setStorageSync('student-list',JSON.stringify(temp))
// #endif
// uni.navigateTo({
// url:'./page'
// })
// this.toPage(/pages/student/grade
,1)
uni.navigateBack({
delta:1
})
}
}
}
</script>
<style lang="scss" scoped>
.component-subject-score {
padding-bottom: 100rpx;
.txt-center {
text-align: center;
}
.form {
margin: 36rpx 24rpx;
.form-item {
padding-bottom: 40rpx;
.label {
font-size: 32rpx;
font-weight: bold;
line-height: 44rpx;
color: #333333;
margin-bottom: 24rpx;
.tips {
font-size: 26rpx;
font-weight: bold;
line-height: 36rpx;
color: #FF6060;
}
}
.input {
padding: 20rpx;
border-radius: 10rpx;
background: #F6F7F9;
font-size: 28rpx;
line-height: 40rpx;
color: #333333;
}
}
.btn-wrap {
margin-top: 20rpx;
.btn {
margin: 0 auto 36rpx;
height: 92rpx;
background: rgba(153, 153, 153, 0.5);
border-radius: 20rpx;
font-size: 28rpx;
line-height: 92rpx;
color: #FFFFFF;
text-align: center;
&.blue {
background: rgba(53, 134, 255, 1);
}
&.orange {
background: rgba(254, 173, 51, 1);
}
}
}
}
.check-box-group {
display: flex;
flex-direction: row;
flex-wrap: wrap;
.check-box {
margin-right: 36rpx;
margin-bottom: 20rpx;
padding: 20rpx 32rpx;
background: #FFFFFF;
border-radius: 10rpx;
font-size: 28rpx;
line-height: 40rpx;
color: #333333;
&:last-child {
margin-left: 0rpx;
}
&.active {
color: rgba(255, 255, 255, 1);
background: rgba(53, 134, 255, 1);
}
}
}
}
</style>
<template>
<div class="page-grade">
<div class="tabBar">
<div class="item" v-for="(item, index) in tabList" :key="index"
@click="setTab(index)" :class="{'active': tabIndex==index}">
{{ item }}
</div>
</div>
<div class="tab-score" v-if="tabIndex==0">
<div class="score-tabBar">
<div class="item" v-for="(item, index) in scoreTabList" :key="index"
@click="scoreTabIndex=index,scoreForm.ifToChoose=index==0?false: true" :class="{'active': scoreTabIndex==index}">
{{ item }}
</div>
</div>
<div class="score-form" v-if="scoreTabIndex==0">
<div class="form-item one">
<div class="label">学期选择</div>
<div class="val select" @click="showTermPicker=true" v-if="terms.length">
{{ termSelected[0] || '暂无'}}
</div>
</div>
<div class="form-item one">
<div class="label">考试时间</div>
<div class="val select" @click="showTermPicker2=true">
{{ termSelected2[0] || '暂无'}}
</div>
</div>
<div class="form-item one">
<div class="label">考试类型</div>
<div class="val select" @click="showTermPicker3=true">
{{ termSelected3[0] || '暂无'}}
</div>
</div>
<div class="form-item one">
<div class="label">考试名称</div>
<div class="val">
<div class="input" v-if="scoreForm.examType=='其他'">
<input type="text" v-model="scoreForm.name" placeholder="请输入考试名称" />
</div>
<div class="disabled" v-else>{{ scoreForm.name || '暂无' }}</div>
</div>
</div>
<div class="form-item" v-for="(i,idx) in scoreForm.scoreReqs" :key="idx">
<div class="label">{{ i.subject }}</div>
<div class="val">
<div class="input">
<input type="number" v-model="i.score" @blur="formatNumber(i)"/>
</div>
</div>
<image class="add-icon" :src="'/static/pages/student/icon_add@2x.png' | serverImg" @click="toEdit(i.subject,idx)" alt=""></image>
</div>
<div class="form-btn" :class="{'active': isComplete}" @click="submit">确认</div>
</div>
<div class="score-form" v-if="scoreTabIndex==1">
<div class="form-item one">
<div class="label">学期选择</div>
<div class="val select" @click="showTermPicker=true" v-if="terms.length">
{{ termSelected[0] || '暂无'}}
</div>
</div>
<div class="form-item one">
<div class="label">科目选择</div>
<div class="val" @click="toEdit()">
{{ subjectSelect || '暂无' }}
<image class="more-icon" :src="'/static/pages/student/icon_more_def@2x.png' | serverImg" alt=""></image>
</div>
</div>
<div class="form-item one">
<div class="label">考试时间</div>
<div class="val select" @click="showTermPicker2=true">
{{ termSelected2[0] || '暂无'}}
</div>
</div>
<div class="form-item one">
<div class="label">考试类型</div>
<div class="val select" @click="showTermPicker3=true">
{{ termSelected3[0] || '暂无'}}
</div>
</div>
<div class="form-item one">
<div class="label">考试名称</div>
<div class="val">
<div class="input" v-if="scoreForm.examType=='其他'">
<input type="text" v-model="scoreForm.name" placeholder="请输入考试名称" />
</div>
<div class="disabled" v-else>{{ scoreForm.name || '暂无' }}</div>
</div>
</div>
<block v-for="(i,idx) in scoreForm.scoreReqs" :key="idx">
<div class="form-item" v-if="showSubject(i.subject)">
<div class="label">{{ i.subject }}</div>
<div class="val">
<div class="input">
<input type="number" v-model="i.score" @blur="formatNumber(i)"/>
</div>
</div>
<image class="add-icon" :src="'/static/pages/student/icon_add@2x.png' | serverImg" @click="toEdit(i.subject)" alt=""></image>
</div>
</block>
<div class="form-btn" :class="{'active': isComplete}" @click="submit">确认</div>
</div>
</div>
<div class="tab-grade" v-if="tabIndex==1">
<div class="no-data" v-if="terms2.length<=1">
<div class="desc">
<image class="noData-bg" :src="'/static/pages/student/quesheng@2x.png' | serverImg" alt=""></image>
<div>暂无成绩数据</div>
</div>
<div class="btn" @click="tabIndex=0">前往填写</div>
</div>
<block v-else>
<div class="grade-result">
<div class="term-select">
<div class="label">学期选择</div>
<div class="select" @click="getTerm" v-if="terms.length">
{{ termSelected4[0] || '暂无'}}
</div>
</div>
<echarts class="term-echarts" :formData="echartsRecord" v-show="!showSelect"/>
</div>
<div class="grade-list">
<div class="item" v-for="(item, index) in subjectRecord" :key="index">
<div class="header">
<div class="title">
<image class="log" :src="'/static/pages/student/icon_gaosan@2x.png' | serverImg" alt=""></image>
<div>{{ item.name }}</div>
</div>
<div class="view" @click="toPage(`/pages/student/detail?id=${item.id}`)">
<div>查看学科分析</div>
<image class="more_icon" :src="'/static/pages/index/v3/icon_combo_def@2x.png' | serverImg" alt=""></image>
</div>
</div>
<div class="cont">
<div class="num">
<div class="label">总分</div>
<div>{{ item.totalScore }}</div>
</div>
<div class="row">
<div class="cont-item" v-for="(i, idx) in item.scoreRsps" :key="idx">
<div class="label">{{ `${i.subject}:` }}</div>
<div>{{ i.score }}</div>
</div>
</div>
</div>
</div>
</div>
</block>
</div>
<custom-picker :show.sync="showTermPicker" :selected.sync="termSelected" :cols="[terms]" label="name" val="name" @confirm="e=>getSelect(e,'grade')"></custom-picker>
<date-picker :show.sync="showTermPicker2" :selected.sync="termSelected2" label="name" val="name" @confirm="e=>getSelect(e,'examTime')"></date-picker>
<custom-picker :show.sync="showTermPicker3" :selected.sync="termSelected3" :cols="[examType]" label="name" val="name" @confirm="e=>getSelect(e,'examType')"></custom-picker>
<custom-picker :show.sync="showTermPicker4" :selected.sync="termSelected4" :cols="[terms2]" label="name" val="name" @confirm="querySubjectRecord"></custom-picker>
<!-- <TabBar current="student"></TabBar> -->
</div>
</template>
<script>
import CustomPicker from '@/components/common/CustomPicker.vue'
import DatePicker from '@/components/common/DatePicker.vue'
import echarts from '@/pages/student/echarts'
// import TabBar from '@/components/tabbar/TabBar'
export default {
components: {
CustomPicker,
DatePicker,
echarts,
// TabBar
},
data() {
return {
tabList: ['分数填写', '成绩数据'],
tabIndex: 0,
scoreTabList: ['未选科', '已选科'],
scoreTabIndex: 0,
scoreForm: {},
subjectSelect: '',
subjectDetails:[
{
name: '语文',
subject: ['现代文阅读','古代诗文阅读','语言文字运用','写作']
},
{
name: '数学',
subject: ['选择题','填空题','解答题']
},
{
name: '英语',
subject: ['听力','阅读','语言运用','写作']
},
{
name: '物理',
subject: ['单选题','多选题','非选择题']
},
{
name: '化学',
subject: ['选择题','非选择题']
},
{
name: '生物',
subject: ['选择题','非选择题']
},
{
name: '历史',
subject: ['选择题','非选择题']
},
{
name: '地理',
subject: ['选择题','非选择题']
},
{
name: '政治',
subject: ['选择题','非选择题']
}
],
subjectRecord: [],
/ 展示图表(最近五条) /
echartsRecord: [],
terms: [
{ name: '高一上半学期' },
{ name: '高一下半学期' },
{ name: '高二上半学期' },
{ name: '高二下半学期' },
{ name: '高三上半学期' },
{ name: '高三下半学期' }
],
examType: [
{ name: '期中考' },
{ name: '期末考' },
{ name: '月考' },
{ name: '模拟考' },
{ name: '高考' },
{ name: '其他' }
],
termSelected: [''],
termSelected2: [''],
termSelected3: [''],
termSelected4: [''],
terms2: [],
showTermPicker: false,
showTermPicker2: false,
showTermPicker3: false,
showTermPicker4: false,
showSelect: false,
userInfo: {}
}
},
computed: {
/ 是否信息完善 /
isComplete() {
let flag = false
let data = this.scoreForm
let arr = this.subjectSelect.split('/')
if(JSON.stringify(data)=='{}') {
return flag
}
if(this.scoreTabIndex==0) {
flag = data.scoreReqs.find(i=>!i.score)? true: false
}
if(this.scoreTabIndex==1) {
data.scoreReqs.forEach(i=> {
arr.forEach(ii=>{
if(i.subject==ii || i.subject=='语文' || i.subject=='数学' || i.subject=='英语') {
flag = !i.score? true:false
}
})
})
}
if(!data.grade || !data.name || !data.examTime || !this.termSelected2[0] ) {
flag = true
}
if((!data.firstSubject || !data.secondSubject.length) && this.scoreTabIndex==1) {
/* 科目选择 */
flag = true
}
return !flag
}
},
onLoad() {
this.reset(true)
this.getSemesterClassify()
},
onShow() {
this.initData()
if(uni.getStorageSync('subject-score')){
let i = uni.getStorageSync('subject-index')
this.scoreForm.scoreReqs[i].score = uni.getStorageSync('subject-score');
this.$forceUpdate()
uni.removeStorageSync('subject-score')
uni.removeStorageSync('subject-index')
}
},
methods: {
reset(isFirst=false, isSubmit=false) {
/* 默认当前时间 */
let curTime = []
let date = new Date()
let YY = date.getFullYear()
let MM = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
curTime.push(YY,MM)
let temp = {
grade: '高一上半学期',
firstSubject: '',
secondSubject: [],
name: '',
ifToChoose: false,
scoreReqs: [
{ subject: '语文', score: '' },
{ subject: '数学', score: '' },
{ subject: '英语', score: '' },
{ subject: '物理', score: '' },
{ subject: '化学', score: '' },
{ subject: '生物', score: '' },
{ subject: '历史', score: '' },
{ subject: '地理', score: '' },
{ subject: '政治', score: '' },
],
scoringDetailesReq: [],
examTime: curTime.join('-'),
examType: ''
}
/* 提交后 递增下一个学期 */
if(isSubmit) {
let index = this.terms.findIndex(i=>i.name==this.scoreForm.grade)
index +=1
if(this.terms.length-1<index || isFirst) {
index = 0
}
let arr = new Array()
arr.push(this.terms[index].name)
this.termSelected = arr
temp.grade = this.terms[index].name
}
let arr2 = new Array()
arr2.push(temp.examTime)
this.termSelected2 = arr2
this.termSelected3 = ['']
this.subjectSelect = ''
this.scoreForm = Object.assign(temp, {})
},
setTab(index) {
// if(index==1 && !this.terms2.length) {
// this.$api.msg('暂无成绩数据')
// return
// }
if(index==1) {
/* 重置分数填写 */
this.reset()
}
this.tabIndex = index
},
initData() {
let arr = []
// #ifdef MP-WEIXIN
let temp = wx.getStorageSync('student-list') || '{}';
// #endif
// #ifndef MP-WEIXIN
let temp = uni.getStorageSync('student-list') || '{}';
// #endif
if(temp!='{}') {
temp = JSON.parse(temp)
this.scoreForm = temp
}else {
temp = this.scoreForm
}
if(!temp.scoringDetailesReq.length) {
let scoringDetailesReq = []
this.subjectDetails.forEach(i=>{
let itemArr = []
i.subject.forEach(ii=>{
itemArr.push({
title: ii,
score: '',
totalScore: '',
rate: ''
})
})
scoringDetailesReq.push({
subject: i.name,
scoreDetails: itemArr
})
})
this.scoreForm.scoringDetailesReq = scoringDetailesReq
}
/* 选科 */
if(temp.firstSubject) {
let first = []
first.push(temp.firstSubject)
arr = [...first, ...temp.secondSubject]
}
this.termSelected[0] = temp.grade
this.termSelected2[0] = temp.examTime
this.subjectSelect = arr.join('/')
this.scoreForm.ifToChoose = this.scoreTabIndex==1? true:false
// #ifdef MP-WEIXIN
wx.removeStorageSync('student-list')
// #endif
// #ifndef MP-WEIXIN
uni.removeStorageSync('student-list')
// #endif
if(this.tabIndex == 1) {
/* 成绩数据 */
this.getSemesterClassify()
}
},
getTerm() {
if(!this.terms2.length) {
this.$api.msg('暂无学期选择')
return
}
this.showTermPicker4 = true
},
/* 学科 (已选科) */
showSubject(type) {
let flag = false
let arr = this.subjectSelect.split('/')
if(arr.length) {
arr.forEach(i=>{
if(i==type || type=='语文' || type=='数学' || type=='英语') {
flag = true
}
})
}
return flag
},
/* 前往编辑页 */
toEdit(subject,idx) {
/* 科目选择 */
let url = `/pages/student/subject`
if(subject) {
/* 单科详情 */
url = `/pages/student/addSubject?subject=${subject}`
}
/* 保存信息 */
// #ifdef MP-WEIXIN
wx.setStorageSync('student-list', JSON.stringify(this.scoreForm))
// #endif
// #ifndef MP-WEIXIN
uni.setStorageSync('student-list', JSON.stringify(this.scoreForm))
// #endif
uni.setStorageSync('subject-index',idx)
this.toPage(url)
},
/* 学期分类 */
async getSemesterClassify(type) {
let {code, data} = await this.$api.request({
data: {},
method: 'GET',
})
if (code == 200) {
let arr = data || []
let newArr = [{ name: '全部' }]
/* 排序 */
this.terms.forEach(i=>{
arr.forEach(ii=> {
if(i.name==ii) {
newArr.push(i)
}
})
})
this.terms2 = newArr
if(!newArr.length) {
return
}
this.termSelected4[0] = type? type: newArr[0].name
if(arr.length) {
this.tabIndex = 1
}
this.querySubjectRecord(this.termSelected4)
}
},
/* 成绩记录 */
async querySubjectRecord(res) {
uni.showLoading()
let {code, data} = await this.$api.request({
data: {
grade: res[0]!='全部'? res[0]:''
},
method: 'GET',
})
if (code == 200) {
this.subjectRecord = data || []
/* 图表 */
let arr = new Array()
data.forEach((i,idx)=>{
if(idx<5) {
arr.push(i)
}
})
this.echartsRecord = arr.reverse()
}
setTimeout(_ => {
uni.hideLoading()
}, 200)
},
/* 提交 */
async submit() {
let form = this.scoreForm,
formBak = JSON.stringify(form)
if(!this.isComplete) {
this.$api.msg('请完善信息填写')
return
}
/* 考试时间默认一日(不显示,只传给后台) */
let date = form.examTime.split('-'),
MM = date[1]
if(date.length<3) {
date[1] = MM.length == 1? '0'+MM: MM
date.push('01')
form.examTime = date.join('-')
}
if(this.scoreTabIndex==1) {
let arr = []
let arr2 = []
form.scoreReqs.forEach((i, idx)=>{
let flag = this.showSubject(i.subject)
if(flag) {
arr.push(i)
arr2.push(form.scoringDetailesReq[idx])
}
})
form.scoreReqs = arr
form.scoringDetailesReq = arr2
}
let {code, data} = await this.$api.request({
data: form,
method: 'POST',
})
if (code == 200) {
this.$api.msg('填写成功')
setTimeout(()=>{
this.reset(false, true)
this.getSemesterClassify(form.grade)
// #ifdef MP-WEIXIN
wx.removeStorageSync('student-list')
// #endif
// #ifndef MP-WEIXIN
uni.removeStorageSync('student-list')
// #endif
},1000)
} else {
this.scoreForm = JSON.parse(formBak)
}
},
/* 格式化分数输入框 */
formatNumber(item) {
let max = 100
let temp = item.score.split('.')
if(item.subject=='语文' || item.subject=='数学' ||item.subject=='英语') {
max = 150
}
if(item.score<1 || item.score==0 || item.score>max) {
this.$set(item, 'score', '')
this.$api.msg(`<${item.subject}>的在0-${max}分内`)
}
if(temp.length>1) {
/* 小数点 后续调整 */
/* input type="digit" */
// this.$set(item, 'score', Number(item.score).toFixed(1))
this.$set(item, 'score', Number(item.score).toFixed(0))
}
},
/* 下拉选择 */
getSelect(e,type) {
this.scoreForm[type]=e[0]
if(this.scoreForm.grade && this.scoreForm.examTime && this.scoreForm.examType) {
/* 考试名称 */
let time = this.scoreForm.examTime.split('-')
this.scoreForm.name = `${time[0]}年${time[1]}月${this.scoreForm.grade}${this.scoreForm.examType}`
}
}
},
}
</script>
<style lang="scss">
page { background: #FAFAFD;}
</style>
<style lang="scss" scoped>
.page-grade {
// position: fixed;
position: relative;
top: 0;
left: 0;
width: 100%;
// padding-bottom: 130rpx;
.tabBar {
display: flex;
justify-content: space-between;
padding: 28rpx 120rpx 24rpx;
background: #3586FF;
.item {
font-size: 32rpx;
font-weight: bold;
line-height: 44rpx;
color: #F9FAFB;
&.active {
position: relative;
&::after {
content: '';
position: absolute;
bottom: -10rpx;
left: 50%;
transform: translateX(-50%);
width: 56rpx;
height: 6rpx;
background: #FFFFFF;
border-radius: 20rpx;
}
}
}
}
.tab-score {
display: flex;
flex-direction: column;
justify-content: center;
margin: 30rpx 24rpx;
background: #FFFFFF;
.score-tabBar {
display: flex;
justify-content: space-between;
width: 422rpx;
box-sizing: border-box;
margin: 30rpx auto 48rpx;
padding: 10rpx;
background: #EAF3FF;
border-radius: 10rpx;
.item {
display: flex;
align-items: center;
justify-content: center;
width: 194rpx;
height: 70rpx;
border-radius: 10rpx;
font-size: 30rpx;
font-weight: bold;
line-height: 42rpx;
color: #3586FF;
&.active {
background: #3586FF;
color: #FFFFFF;
}
}
}
.score-form {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
padding: 0 30rpx;
.form-item {
display: flex;
align-items: center;
margin-bottom: 36rpx;
font-size: 28rpx;
line-height: 40rpx;
color: #333333;
.label { margin-right: 24rpx; }
.val {
display: flex;
align-items: center;
height: 76rpx;
width: 170rpx;
background: #F6F7F9;
border-radius: 10rpx;
padding-left: 24rpx;
padding-right: 52rpx;
box-sizing: border-box;
position: relative;
&::after {
content: '分';
position: absolute;
top: 50%;
right: 24rpx;
transform: translateY(-50%);
}
.input { width: 100%; }
.disabled { color: #9B9B9B; }
&.select {
position: relative;
&:after {
content: '';
margin-left: 12rpx;
border-top: 8rpx solid #666666;
border-left: 8rpx solid transparent;
border-right: 8rpx solid transparent;
border-bottom: 8rpx solid transparent;
position: absolute;
top: 50%;
right: 24rpx;
}
}
}
&.one {
.label { width: 112rpx; }
.val {
width: 506rpx;
padding: 18rpx 30rpx;
&::after { content: '';}
}
}
.add-icon {
width: 36rpx;
height: 36rpx;
margin-left: 10rpx;
}
.more-icon {
width: 24rpx;
height: 24rpx;
position: absolute;
top: 50%;
right: 18rpx;
transform: translateY(-50%);
}
}
.form-btn {
display: flex;
justify-content: center;
align-items: center;
width: 512rpx;
height: 80rpx;
background: #84B6FF;
border-radius: 44rpx;
font-size: 28rpx;
font-weight: bold;
line-height: 40rpx;
color: #FFFFFF;
margin: 28rpx auto 30rpx;
&.active { background: #3586FF; }
}
}
}
.tab-grade {
.no-data {
display: flex;
flex-direction: column;
align-items: center;
background: #FFFFFF;
padding: 114rpx 32rpx 0;
margin: 30rpx 24rpx;
height: 750rpx;
.desc {
display: flex;
flex-direction: column;
align-items: center;
font-size: 30rpx;
line-height: 42rpx;
color: #333333;
.noData-bg {
width: 638rpx;
height: 354rpx;
margin-bottom: 6rpx;
}
}
.btn {
display: flex;
align-items: center;
justify-content: center;
width: 276rpx;
height: 80rpx;
border: 2rpx solid #3586FF;
border-radius: 44rpx;
font-size: 28rpx;
font-weight: bold;
line-height: 40rpx;
color: #3586FF;
margin-top: 82rpx;
}
}
.grade-result {
width: 100%;
height: 532rpx;
background: #FFFFFF;
margin: 30rpx 0;
.term-select {
display: flex;
align-items: center;
font-size: 28rpx;
line-height: 40rpx;
color: #333333;
padding: 30rpx 54rpx 60rpx;
.label { width: 116rpx; }
.select {
position: relative;
display: flex;
align-items: center;
width: 460rpx;
background: #F6F7F9;
border-radius: 10rpx;
margin-left: 24rpx;
padding: 18rpx 30rpx;
&:after {
content: '';
margin-left: 12rpx;
border-top: 8rpx solid #666666;
border-left: 8rpx solid transparent;
border-right: 8rpx solid transparent;
border-bottom: 8rpx solid transparent;
position: absolute;
top: 50%;
right: 24rpx;
}
}
}
}
.grade-list {
padding: 0 24rpx;
.item {
background: #FFFFFF;
padding: 30rpx 24rpx;
margin-bottom: 30rpx;
.header {
display: flex;
justify-content: space-between;
margin-bottom: 16rpx;
.title {
display: flex;
align-items: center;
font-size: 28rpx;
line-height: 40rpx;
color: #333333;
.log {
width: 36rpx;
height: 40rpx;
margin-right: 2rpx;
}
}
.view {
display: flex;
align-items: center;
font-size: 24rpx;
line-height: 34rpx;
color: #3586FF;
.more_icon {
width: 18rpx;
height: 22rpx;
margin-left: 4rpx;
}
}
}
.cont {
display: flex;
flex-wrap: wrap;
width: 654rpx;
height: 248rpx;
padding: 24rpx 30rpx 6rpx;
background: rgba(246, 247, 249, 0.5);
border-radius: 10rpx;
font-size: 26rpx;
line-height: 36rpx;
color: #666666;
box-sizing: border-box;
.num {
display: flex;
justify-content: center;
width: 100%;
font-weight: bold;
margin-bottom: 24rpx;
.label { margin-right: 16rpx; }
}
.row {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
width: 100%;
margin-bottom: 16rpx;
.cont-item {
display: flex;
width: calc((100% - 60rpx)/3);
.label { margin-right: 4rpx; }
}
}
}
}
}
}
}
</style>
1 个回复
DCloud_UNI_Anne
请找出来具体原因后提供可复现bug的最小化demo(上传附件),让我们及时定位问题,及时修复。
【bug优先处理规则】https://ask.dcloud.net.cn/article/38139