|
@@ -1,14 +1,15 @@
|
|
|
<template>
|
|
|
- <div id="myScoreRateBar"></div>
|
|
|
+ <div class="myScoreRateBar" :id="echartsId"></div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
export default {
|
|
|
name: 'hello',
|
|
|
- props: ['echartsData'],
|
|
|
+ props: ['echartsId','echartsData'],
|
|
|
data() {
|
|
|
return {
|
|
|
-
|
|
|
+ scoreRateCountArr:[],
|
|
|
+ splitArr:[10,20,30,40,50,60,70,80,90,100]
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
@@ -19,7 +20,7 @@
|
|
|
// 执行图表渲染工作
|
|
|
drawLine(data) {
|
|
|
// 基于准备好的dom,初始化echarts实例
|
|
|
- let myBar = this.$echarts.init(document.getElementById('myScoreRateBar'))
|
|
|
+ let myBar = this.$echarts.init(document.getElementById(this.echartsId))
|
|
|
let that = this
|
|
|
|
|
|
// 指定图表的配置项和数据
|
|
@@ -32,6 +33,10 @@
|
|
|
color: '#fff',
|
|
|
fontSize: '26'
|
|
|
},
|
|
|
+ },
|
|
|
+ formatter: function(value) {
|
|
|
+ let range = (that.splitArr[value[0].dataIndex] - 10) + '%-' + that.splitArr[value[0].dataIndex] + '%:'
|
|
|
+ return range + '<br>' + value[0].data + that.$t('unit.text7')
|
|
|
}
|
|
|
},
|
|
|
legend: {
|
|
@@ -50,7 +55,7 @@
|
|
|
height: 300,
|
|
|
width: '75%',
|
|
|
top:'20%',
|
|
|
- left: '6%',
|
|
|
+ left: '8%',
|
|
|
tooltip: {
|
|
|
show: true,
|
|
|
trigger: 'axis', // 触发类型
|
|
@@ -96,6 +101,7 @@
|
|
|
axisLabel: {
|
|
|
color: '#aaaaaa',
|
|
|
margin: 10,
|
|
|
+ align:'left'
|
|
|
},
|
|
|
splitLine: {
|
|
|
show: true,
|
|
@@ -105,7 +111,7 @@
|
|
|
type: 'solid'
|
|
|
}
|
|
|
},
|
|
|
- data: ['10%', '20%', '30%', '40%','50%', '60%', '70%', '80%','90%', '100%'],
|
|
|
+ data: [' 10%', ' 20%', ' 30%', ' 40%',' 50%', ' 60%', ' 70%', ' 80%',' 90%', ' 100%'],
|
|
|
|
|
|
}],
|
|
|
yAxis: [{
|
|
@@ -161,7 +167,7 @@
|
|
|
}]
|
|
|
}
|
|
|
},
|
|
|
- data: [15,8,6,20,0,14,18,22,34,5]
|
|
|
+ data: that.scoreRateCountArr
|
|
|
},
|
|
|
]
|
|
|
};
|
|
@@ -172,36 +178,42 @@
|
|
|
})
|
|
|
},
|
|
|
|
|
|
-
|
|
|
- doRender(val) {
|
|
|
+
|
|
|
+ /* 根据学生总体数据来换取得分率区间分布数据 */
|
|
|
+ doRender(list) {
|
|
|
+ console.log(list)
|
|
|
+ let sRateArr = list.map(i => i.sRate)
|
|
|
+ let splitArr = [...new Array(10).keys()]
|
|
|
+ let result = new Array(10).fill(0)
|
|
|
+ sRateArr.forEach(rate => {
|
|
|
+ splitArr.forEach((j,index) => {
|
|
|
+ if(rate.toString().slice(0,1) === j.toString()){
|
|
|
+ result[index]++
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ this.scoreRateCountArr = result
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
|
+ console.log(this.echartsData)
|
|
|
+ this.doRender(this.echartsData)
|
|
|
this.drawLine()
|
|
|
- if (this.getBaseBarData) {
|
|
|
- console.log('BaseBar接收到的vuex', this.getBaseBarData)
|
|
|
- this.doRender(this.getBaseBarData)
|
|
|
- this.drawLine()
|
|
|
- }
|
|
|
- },
|
|
|
- computed: {
|
|
|
- // 获取最新柱状图数据
|
|
|
- getBaseBarData() {
|
|
|
- return this.$store.state.totalAnalysis.analysisJson
|
|
|
- }
|
|
|
},
|
|
|
watch: {
|
|
|
- getBaseBarData(val) {
|
|
|
- if (!val) return
|
|
|
+ echartsData(val) {
|
|
|
+ console.log(val)
|
|
|
+ this.doRender(val)
|
|
|
this.drawLine()
|
|
|
- console.log('BaseBar接收到watch的vuex', val)
|
|
|
- }
|
|
|
+ },
|
|
|
+ deep:true,
|
|
|
+ immediate:true
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
|
- #myScoreRateBar {
|
|
|
+ .myScoreRateBar {
|
|
|
width: 100%;
|
|
|
height: 500px;
|
|
|
margin: 0 auto;
|