|
@@ -11,42 +11,42 @@
|
|
|
</span>
|
|
|
</Row> -->
|
|
|
<Row>
|
|
|
- <span class="component-title" style="margin-top:40px">班级基础数据</span>
|
|
|
+ <span class="component-title" style="margin-top:40px">{{ this.$t('totalAnalysis.classBaseInfo') }}</span>
|
|
|
</Row>
|
|
|
<Row class-name="component-percents">
|
|
|
<div class="percent-item warning-info-item">
|
|
|
<div class="fl-col-center">
|
|
|
- <span class="percent-name">总人数</span>
|
|
|
+ <span class="percent-name">{{ this.$t('totalAnalysis.ach_text11') }}</span>
|
|
|
<span class="percent-value">{{ currentClass.stuCount || 0 }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="percent-item warning-info-item">
|
|
|
<div class="fl-col-center">
|
|
|
- <span class="percent-name">达标人数</span>
|
|
|
+ <span class="percent-name">{{ this.$t('totalAnalysis.ach_text8') }}</span>
|
|
|
<span class="percent-value">{{ currentClass.lineCount || 0 }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="percent-item">
|
|
|
<div class="fl-col-center">
|
|
|
- <span class="percent-name">平均分</span>
|
|
|
- <span class="percent-value">{{ currentClass.totalAverage.toFixed(1) }}</span>
|
|
|
+ <span class="percent-name">{{ this.$t('totalAnalysis.ach_text9') }}</span>
|
|
|
+ <span class="percent-value">{{ ((currentClass.lineCount / currentClass.stuCount) * 100).toFixed(1) }}%</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="percent-item">
|
|
|
<div class="fl-col-center">
|
|
|
- <span class="percent-name">达标率</span>
|
|
|
- <span class="percent-value">{{ ((currentClass.lineCount / currentClass.stuCount) * 100).toFixed(1) }}</span>
|
|
|
+ <span class="percent-name">{{ this.$t('totalAnalysis.ach_table_text3') }}</span>
|
|
|
+ <span class="percent-value">{{ currentClass.totalAverage.toFixed(1) }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="percent-item">
|
|
|
<div class="fl-col-center">
|
|
|
- <span class="percent-name">标准差</span>
|
|
|
+ <span class="percent-name">{{ this.$t('totalAnalysis.ach_table_text4') }}</span>
|
|
|
<span class="percent-value">{{ currentClass.standardDeviation.toFixed(1) }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="percent-item">
|
|
|
<div class="fl-col-center">
|
|
|
- <span class="percent-name">得分率</span>
|
|
|
+ <span class="percent-name">{{ this.$t('totalAnalysis.sca_chart_text1') }}</span>
|
|
|
<span class="percent-value">64.58%</span>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -54,17 +54,21 @@
|
|
|
|
|
|
<!-- 班级均分分析 -->
|
|
|
<Row class-name="averageBarRow">
|
|
|
- <span class="component-title">{{$t('totalAnalysis.ach_title8')}}</span>
|
|
|
- <div class="sort-box">
|
|
|
- <span
|
|
|
- style="font-size:14px;margin-right:10px;color: #a9a9a9;">{{$t('totalAnalysis.ach_chart_text1')}}:</span>
|
|
|
- <Select v-model="sortValue" style="width:120px" @on-change="handleSort">
|
|
|
- <Option v-for="(item,index) in sortArr" :value="index" :label="item" :key="index"></Option>
|
|
|
- </Select>
|
|
|
- </div>
|
|
|
- </Row>
|
|
|
- <Row>
|
|
|
- <div id="stuAverageBar"></div>
|
|
|
+ <Col span="12">
|
|
|
+ <span class="component-title">{{$t('totalAnalysis.ach_title8')}}</span>
|
|
|
+ <div class="sort-box">
|
|
|
+ <!-- <span
|
|
|
+ style="font-size:14px;margin-right:10px;color: #a9a9a9;">{{$t('totalAnalysis.ach_chart_text1')}}:</span> -->
|
|
|
+ <Select v-model="sortValue" style="width:120px" @on-change="handleSort">
|
|
|
+ <Option v-for="(item,index) in sortArr" :value="index" :label="item" :key="index"></Option>
|
|
|
+ </Select>
|
|
|
+ </div>
|
|
|
+ <div id="stuAverageBar"></div>
|
|
|
+ </Col>
|
|
|
+ <Col span="12">
|
|
|
+ <span class="component-title">{{ this.$t('totalAnalysis.scoreRate') }}</span>
|
|
|
+ <BaseScoreRateBar></BaseScoreRateBar>
|
|
|
+ </Col>
|
|
|
</Row>
|
|
|
<!-- PR排名表格 -->
|
|
|
<Row class-name="base-table-row">
|
|
@@ -77,9 +81,10 @@
|
|
|
|
|
|
<script>
|
|
|
import BaseTable from '@/components/student-analysis/total/BaseMyTable.vue'
|
|
|
+ import BaseScoreRateBar from '@/components/student-analysis/total/BaseScoreRateBar.vue'
|
|
|
export default {
|
|
|
components: {
|
|
|
- BaseTable
|
|
|
+ BaseTable,BaseScoreRateBar
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
@@ -179,9 +184,6 @@
|
|
|
}, {
|
|
|
tableRef: 'entryRateTable',
|
|
|
tableName: '进线率统计'
|
|
|
- }, {
|
|
|
- tableRef: 'achievementTable',
|
|
|
- tableName: '预警统计表格'
|
|
|
}])
|
|
|
this.$router.back(-1)
|
|
|
this.$parent.isShowQuestions = false
|
|
@@ -198,19 +200,19 @@
|
|
|
let curClassItem = analysisJson.classes.filter(i => i.className === this.className)[0]
|
|
|
let studentIds = curClassItem.studentIds
|
|
|
this.currentClass = curClassItem
|
|
|
- this.classAverage = curClassItem.subjects[subjectIndex].average
|
|
|
+ this.classAverage = subjectIndex === 0 ? curClassItem.totalAverage.toFixed(1) : curClassItem.subjects[subjectIndex - 1].average
|
|
|
+ // 判断当前选择科目是全科还是单科 赋予不同的值
|
|
|
studentIds.forEach((stuId, stuIndex) => {
|
|
|
let stuItem = analysisJson.students.filter(i => i.id === stuId)[0]
|
|
|
- let stuSubjectItem = analysisJson.students.filter(i => i.id === stuId)[0].subjects[
|
|
|
- subjectIndex]
|
|
|
+ let stuSubjectItem = subjectIndex === 0 ? null : analysisJson.students.filter(i => i.id === stuId)[0].subjects[subjectIndex - 1]
|
|
|
result.push({
|
|
|
name: stuItem.name,
|
|
|
setNo: stuItem.no,
|
|
|
- score: stuSubjectItem.score,
|
|
|
- classPR: stuSubjectItem.cpr,
|
|
|
- classRank: stuSubjectItem.csort,
|
|
|
- gradePR: stuSubjectItem.gpr,
|
|
|
- gradeRank: stuSubjectItem.gsort,
|
|
|
+ score: subjectIndex === 0 ? stuItem.total : stuSubjectItem.score,
|
|
|
+ classPR: subjectIndex === 0 ? stuItem.cpr : stuSubjectItem.cpr,
|
|
|
+ classRank: subjectIndex === 0 ? stuItem.csort : stuSubjectItem.csort,
|
|
|
+ gradePR: subjectIndex === 0 ? stuItem.gpr : stuSubjectItem.gpr,
|
|
|
+ gradeRank: subjectIndex === 0 ? stuItem.gsort : stuSubjectItem.gsort,
|
|
|
areaPR: 0,
|
|
|
areaRank: 0
|
|
|
})
|
|
@@ -228,6 +230,7 @@
|
|
|
let myBar = this.$echarts.init(document.getElementById('stuAverageBar'))
|
|
|
var option = {
|
|
|
legend: {
|
|
|
+ top: 40,
|
|
|
data: [{
|
|
|
name: this.$t('totalAnalysis.ach_table_text2'),
|
|
|
textStyle: {
|
|
@@ -286,10 +289,10 @@
|
|
|
grid: {
|
|
|
show: false,
|
|
|
containLabel: true,
|
|
|
- height: 480,
|
|
|
- width: '90%',
|
|
|
- x2: '5%',
|
|
|
- left: '3%',
|
|
|
+ height: 300,
|
|
|
+ width: '80%',
|
|
|
+ top:'20%',
|
|
|
+ left: '8%',
|
|
|
tooltip: {
|
|
|
show: true,
|
|
|
trigger: 'axis', // 触发类型
|
|
@@ -348,7 +351,11 @@
|
|
|
data: echartData.map(item => item.setNo)
|
|
|
},
|
|
|
yAxis: {
|
|
|
+ name: this.$t('totalAnalysis.ach_table_text2'),
|
|
|
show: true,
|
|
|
+ nameTextStyle: {
|
|
|
+ color: '#a2a2a2'
|
|
|
+ },
|
|
|
type: 'value',
|
|
|
axisLabel: {
|
|
|
show: true,
|
|
@@ -373,7 +380,7 @@
|
|
|
type: 'bar',
|
|
|
itemStyle: {
|
|
|
normal: { // 渐变色
|
|
|
- color: 'rgb(102,204,204)'
|
|
|
+ color: '#07cdd8'
|
|
|
},
|
|
|
},
|
|
|
barMaxWidth: 40,
|
|
@@ -420,52 +427,6 @@
|
|
|
},
|
|
|
data: echartData.map(item => Number(this.classAverage))
|
|
|
},
|
|
|
- // {
|
|
|
- // name: this.$t('totalAnalysis.ach_text5'),
|
|
|
- // type: 'line',
|
|
|
- // itemStyle: {
|
|
|
- // color: '#ff33cc',
|
|
|
- // width: 0
|
|
|
- // },
|
|
|
- // symbol: 'none',
|
|
|
- // lineStyle: {
|
|
|
- // type: 'dashed',
|
|
|
- // width: 0
|
|
|
- // },
|
|
|
- // markLine: {
|
|
|
- // data: [
|
|
|
- // { type: 'average' }
|
|
|
- // ],
|
|
|
- // lineStyle: {
|
|
|
- // color: '#ff33cc',
|
|
|
- // type: 'dashed'
|
|
|
- // }
|
|
|
- // },
|
|
|
- // data: echartData.map(item => Number(this.gradeAverage))
|
|
|
- // },
|
|
|
- // {
|
|
|
- // name: this.$t('totalAnalysis.ach_text6'),
|
|
|
- // type: 'line',
|
|
|
- // itemStyle: {
|
|
|
- // color: '#66ff99',
|
|
|
- // width: 0
|
|
|
- // },
|
|
|
- // symbol: 'none',
|
|
|
- // lineStyle: {
|
|
|
- // type: 'dashed',
|
|
|
- // width: 0
|
|
|
- // },
|
|
|
- // markLine: {
|
|
|
- // data: [
|
|
|
- // { type: 'average' }
|
|
|
- // ],
|
|
|
- // lineStyle: {
|
|
|
- // color: '#66ff99',
|
|
|
- // type: 'dashed'
|
|
|
- // }
|
|
|
- // },
|
|
|
- // data: echartData.map(item => Number(this.areaAverage))
|
|
|
- // }
|
|
|
]
|
|
|
}
|
|
|
|
|
@@ -550,7 +511,7 @@
|
|
|
}
|
|
|
|
|
|
#stuAverageBar {
|
|
|
- height: 600px;
|
|
|
+ height: 500px;
|
|
|
}
|
|
|
|
|
|
.averageBarRow {
|
|
@@ -559,8 +520,11 @@
|
|
|
|
|
|
.sort-box {
|
|
|
position: absolute;
|
|
|
- right: 50px;
|
|
|
- top: 20px;
|
|
|
+ right: 100px;
|
|
|
+ top: 50px;
|
|
|
+ font-size: 12px;
|
|
|
+ z-index: 999;
|
|
|
+
|
|
|
}
|
|
|
</style>
|
|
|
|
|
@@ -570,24 +534,33 @@
|
|
|
}
|
|
|
|
|
|
.sort-box .ivu-select {
|
|
|
- margin: 5px 0;
|
|
|
- height: 34px;
|
|
|
+ height: 25px;
|
|
|
+ line-height: 25px;
|
|
|
+ font-size: 12px;
|
|
|
}
|
|
|
|
|
|
.sort-box .ivu-select-single .ivu-select-selection {
|
|
|
- height: 30px;
|
|
|
+ height: 25px;
|
|
|
+ line-height: 25px;
|
|
|
background: transparent;
|
|
|
border: 1px solid #a9a9a9;
|
|
|
box-shadow: none;
|
|
|
}
|
|
|
+
|
|
|
+ .sort-box .ivu-select-selected-value{
|
|
|
+ line-height: 25px !important;
|
|
|
+ height: 25px !important;
|
|
|
+ font-size: 12px !important;
|
|
|
+ }
|
|
|
|
|
|
.sort-box .ivu-select-single .ivu-select-dropdown {
|
|
|
/*background: #595959;*/
|
|
|
+ font-size: 12px;
|
|
|
}
|
|
|
|
|
|
.sort-box .ivu-select-single .ivu-select-placeholder {
|
|
|
- height: 30px;
|
|
|
- line-height: 26px;
|
|
|
+ height: 25px;
|
|
|
+ line-height: 25px;
|
|
|
font-size: 16px;
|
|
|
}
|
|
|
|