|
|
@@ -134,6 +134,142 @@ export default Vue.extend({
|
|
|
return prev + cur
|
|
|
}
|
|
|
)
|
|
|
+
|
|
|
+ getPersonalReport(examId).then(({ data }) => {
|
|
|
+ let rank = data.result.rank
|
|
|
+ let score = data.result.score
|
|
|
+
|
|
|
+ this.skillOption = {
|
|
|
+ title: {
|
|
|
+ text: '知识点掌握情况'
|
|
|
+ },
|
|
|
+ tooltip: {
|
|
|
+ trigger: 'axis',
|
|
|
+ axisPointer: {
|
|
|
+ type: 'shadow'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ legend: {
|
|
|
+ data: ['个人正确率', '平均正确率']
|
|
|
+ },
|
|
|
+ grid: {
|
|
|
+ left: '3%',
|
|
|
+ right: '4%',
|
|
|
+ bottom: '3%',
|
|
|
+ containLabel: true
|
|
|
+ },
|
|
|
+ xAxis: [
|
|
|
+ {
|
|
|
+ type: 'category',
|
|
|
+ data: ['数据结构', '网络', '操作系统', '测试', '设计模式']
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ yAxis: [
|
|
|
+ {
|
|
|
+ type: 'value'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ name: '个人正确率',
|
|
|
+ type: 'bar',
|
|
|
+ data: [50, 33, 31, 34, 39]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '平均正确率',
|
|
|
+ type: 'bar',
|
|
|
+ data: [12, 13, 10, 14, 90]
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+
|
|
|
+ this.gradeOption = {
|
|
|
+ tooltip: {
|
|
|
+ trigger: 'item',
|
|
|
+ formatter: '{a}{b}: {c} ({d}%)'
|
|
|
+ },
|
|
|
+ title: {
|
|
|
+ text: '得分 ',
|
|
|
+ left: 'right'
|
|
|
+ },
|
|
|
+ legend: {
|
|
|
+ orient: 'vertical',
|
|
|
+ left: 10,
|
|
|
+ data: ['错误', '正确']
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ name: '',
|
|
|
+ type: 'pie',
|
|
|
+ radius: ['50%', '70%'],
|
|
|
+ avoidLabelOverlap: false,
|
|
|
+ label: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ emphasis: {
|
|
|
+ label: {
|
|
|
+ show: true,
|
|
|
+ fontSize: '15',
|
|
|
+ fontWeight: 'bold'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ labelLine: {
|
|
|
+ show: false
|
|
|
+ },
|
|
|
+ data: [
|
|
|
+ { value: this.totalScore - score, name: '错误' },
|
|
|
+ { value: score, name: '正确' }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+
|
|
|
+ this.rankOption = {
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ type: 'gauge',
|
|
|
+ startAngle: 180,
|
|
|
+ endAngle: 0,
|
|
|
+ min: 100,
|
|
|
+ max: 0,
|
|
|
+ splitNumber: 5,
|
|
|
+ axisLabel: {
|
|
|
+ distance: 15,
|
|
|
+ fontSize: 10
|
|
|
+ },
|
|
|
+
|
|
|
+ progress: {
|
|
|
+ show: true,
|
|
|
+ roundCap: true,
|
|
|
+ width: 10
|
|
|
+ },
|
|
|
+
|
|
|
+ detail: {
|
|
|
+ formatter: function(value) {
|
|
|
+ return '排名前 {value|' + value.toFixed(0) + '}{unit|%}'
|
|
|
+ },
|
|
|
+ rich: {
|
|
|
+ value: {
|
|
|
+ fontSize: 20,
|
|
|
+ fontWeight: 'bolder',
|
|
|
+ color: '#777'
|
|
|
+ },
|
|
|
+ unit: {
|
|
|
+ fontSize: 20,
|
|
|
+ color: '#999'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data: [
|
|
|
+ {
|
|
|
+ value: rank
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ })
|
|
|
+
|
|
|
let questionsPromises: Promise<
|
|
|
AxiosResponse<ReceivedData<TeacherQuestionSerializer, 0>>
|
|
|
>[] = []
|
|
|
@@ -149,141 +285,6 @@ export default Vue.extend({
|
|
|
this.fetching = false
|
|
|
})
|
|
|
})
|
|
|
-
|
|
|
- getPersonalReport(examId).then(({ data }) => {
|
|
|
- let rank = data.result.rank
|
|
|
- let score = data.result.score
|
|
|
-
|
|
|
- this.skillOption = {
|
|
|
- title: {
|
|
|
- text: '知识点掌握情况'
|
|
|
- },
|
|
|
- tooltip: {
|
|
|
- trigger: 'axis',
|
|
|
- axisPointer: {
|
|
|
- type: 'shadow'
|
|
|
- }
|
|
|
- },
|
|
|
- legend: {
|
|
|
- data: ['个人正确率', '平均正确率']
|
|
|
- },
|
|
|
- grid: {
|
|
|
- left: '3%',
|
|
|
- right: '4%',
|
|
|
- bottom: '3%',
|
|
|
- containLabel: true
|
|
|
- },
|
|
|
- xAxis: [
|
|
|
- {
|
|
|
- type: 'category',
|
|
|
- data: ['数据结构', '网络', '操作系统', '测试', '设计模式']
|
|
|
- }
|
|
|
- ],
|
|
|
- yAxis: [
|
|
|
- {
|
|
|
- type: 'value'
|
|
|
- }
|
|
|
- ],
|
|
|
- series: [
|
|
|
- {
|
|
|
- name: '个人正确率',
|
|
|
- type: 'bar',
|
|
|
- data: [50, 33, 31, 34, 39]
|
|
|
- },
|
|
|
- {
|
|
|
- name: '平均正确率',
|
|
|
- type: 'bar',
|
|
|
- data: [12, 13, 10, 14, 90]
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
-
|
|
|
- this.gradeOption = {
|
|
|
- tooltip: {
|
|
|
- trigger: 'item',
|
|
|
- formatter: '{a}{b}: {c} ({d}%)'
|
|
|
- },
|
|
|
- title: {
|
|
|
- text: '得分 ',
|
|
|
- left: 'right'
|
|
|
- },
|
|
|
- legend: {
|
|
|
- orient: 'vertical',
|
|
|
- left: 10,
|
|
|
- data: ['错误', '正确']
|
|
|
- },
|
|
|
- series: [
|
|
|
- {
|
|
|
- name: '',
|
|
|
- type: 'pie',
|
|
|
- radius: ['50%', '70%'],
|
|
|
- avoidLabelOverlap: false,
|
|
|
- label: {
|
|
|
- show: false
|
|
|
- },
|
|
|
- emphasis: {
|
|
|
- label: {
|
|
|
- show: true,
|
|
|
- fontSize: '15',
|
|
|
- fontWeight: 'bold'
|
|
|
- }
|
|
|
- },
|
|
|
- labelLine: {
|
|
|
- show: false
|
|
|
- },
|
|
|
- data: [
|
|
|
- { value: this.totalScore - score, name: '错误' },
|
|
|
- { value: score, name: '正确' }
|
|
|
- ]
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
-
|
|
|
- this.rankOption = {
|
|
|
- series: [
|
|
|
- {
|
|
|
- type: 'gauge',
|
|
|
- startAngle: 180,
|
|
|
- endAngle: 0,
|
|
|
- min: 100,
|
|
|
- max: 0,
|
|
|
- splitNumber: 5,
|
|
|
- axisLabel: {
|
|
|
- distance: 15,
|
|
|
- fontSize: 10
|
|
|
- },
|
|
|
-
|
|
|
- progress: {
|
|
|
- show: true,
|
|
|
- roundCap: true,
|
|
|
- width: 10
|
|
|
- },
|
|
|
-
|
|
|
- detail: {
|
|
|
- formatter: function(value) {
|
|
|
- return '排名前 {value|' + value.toFixed(0) + '}{unit|%}'
|
|
|
- },
|
|
|
- rich: {
|
|
|
- value: {
|
|
|
- fontSize: 20,
|
|
|
- fontWeight: 'bolder',
|
|
|
- color: '#777'
|
|
|
- },
|
|
|
- unit: {
|
|
|
- fontSize: 20,
|
|
|
- color: '#999'
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- data: [
|
|
|
- {
|
|
|
- value: rank
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- ]
|
|
|
- }
|
|
|
- })
|
|
|
}
|
|
|
})
|
|
|
</script>
|