提交 fd08c714 authored 作者: zfl's avatar zfl

新增一致性功能

上级 b354214f
...@@ -92,6 +92,16 @@ export function viewExamResults(id) { ...@@ -92,6 +92,16 @@ export function viewExamResults(id) {
}) })
} }
//考试结果查看
export function consistency_evaluation_data_api(data) {
return request({
url: `/student/test_results/getUserconsistency_evaluation_data/${data.id}`,
method: 'post',
data
})
}
//注册 //注册
export function userLogon(data) { export function userLogon(data) {
return request({ return request({
......
...@@ -87,9 +87,11 @@ ...@@ -87,9 +87,11 @@
trigger="click" trigger="click"
v-if="item[e.key].length > 0" v-if="item[e.key].length > 0"
> >
<div style="max-height: 40vh; overflow:auto">
<div v-for="(h, j) in item[e.key]" :key="j"> <div v-for="(h, j) in item[e.key]" :key="j">
{{ h }} {{ h }}
</div> </div>
</div>
<el-button slot="reference" type="text" size="mini" <el-button slot="reference" type="text" size="mini"
>...</el-button >...</el-button
> >
......
...@@ -31,6 +31,9 @@ ...@@ -31,6 +31,9 @@
</el-row> </el-row>
</div> </div>
<div class="content_container" v-if="original_data.type == 'table'"> <div class="content_container" v-if="original_data.type == 'table'">
<el-select style="width: 100%;" v-if="original_data.use_user" v-model="original_data.student_id" @change="selectChange_suser">
<el-option v-for="(e, i) in original_data.use_user" :label="e.type?'第一名':e.name" :value="e.student_id" :key="i"></el-option>
</el-select>
<Table <Table
:merge_fields="original_data.merge_fields" :merge_fields="original_data.merge_fields"
:table_data="original_data.list" :table_data="original_data.list"
...@@ -139,6 +142,9 @@ export default { ...@@ -139,6 +142,9 @@ export default {
selectChange(val) { selectChange(val) {
this.position_data = val; this.position_data = val;
}, },
selectChange_suser(){
this.$emit('selectChange_suser', this.original_data.student_id);
}
}, },
}; };
</script> </script>
......
...@@ -46,6 +46,9 @@ export function toPercent(num, total) { ...@@ -46,6 +46,9 @@ export function toPercent(num, total) {
export function countOccurrences(arr) { export function countOccurrences(arr) {
// 创建一个空对象用于存储每个数据的出现次数 // 创建一个空对象用于存储每个数据的出现次数
const result = {}; const result = {};
if(!arr){
return result;
}
// 遍历数组 // 遍历数组
for (let i = 0; i < arr.length; i++) { for (let i = 0; i < arr.length; i++) {
// 获取当前数据 // 获取当前数据
......
...@@ -187,6 +187,22 @@ ...@@ -187,6 +187,22 @@
</AnalyseModule> </AnalyseModule>
</div> </div>
</el-col> </el-col>
<el-col
:span="12"
:xs="24"
v-if="review_conditions"
class="unit_container"
>
<div class="centenr_container">
<AnalyseModule
:module_data="consistency_evaluation_data"
:key="consistency_evaluation_data.key"
@selectChange_suser="selectChange_suser"
v-if="consistency_evaluation_data"
>
</AnalyseModule>
</div>
</el-col>
</el-row> </el-row>
</div> </div>
</div> </div>
...@@ -204,7 +220,7 @@ ...@@ -204,7 +220,7 @@
<script> <script>
import { toPercent, countOccurrences } from '@/utils/tool'; import { toPercent, countOccurrences } from '@/utils/tool';
import AnalyseModule from '@/components/AnalyseModule/index.vue'; import AnalyseModule from '@/components/AnalyseModule/index.vue';
import { consistency_evaluation_data_api } from '@/api/user';
export default { export default {
props: ['summary_data'], props: ['summary_data'],
data() { data() {
...@@ -240,8 +256,12 @@ export default { ...@@ -240,8 +256,12 @@ export default {
wrongG_group_data: null, wrongG_group_data: null,
//学员得分 //学员得分
transcript_data: null, transcript_data: null,
// 一致性评价
consistency_evaluation_data:null,
//老师点评 //老师点评
found_remark: null, found_remark: null,
UserbList:[],
}; };
}, },
...@@ -256,6 +276,15 @@ export default { ...@@ -256,6 +276,15 @@ export default {
}, },
methods: { methods: {
selectChange_suser(student_id){
// this.consistency_evaluation_data=null
consistency_evaluation_data_api({
"student_id":student_id,
'id':this.$route.query.id
}).then((res) => {
this.consistency_evaluation_data=this.consistency_evaluation_dataHandle(res);
})
},
//获取批阅试题列表-详情 //获取批阅试题列表-详情
getReadOverDetail() { getReadOverDetail() {
this.is_loading = true; this.is_loading = true;
...@@ -307,10 +336,86 @@ export default { ...@@ -307,10 +336,86 @@ export default {
this.wrongG_group_data = this.changeWrongGroup( this.wrongG_group_data = this.changeWrongGroup(
this.summary_data.WrongGroup this.summary_data.WrongGroup
); //错误组别 ); //错误组别
this.consistency_evaluation_data=this.consistency_evaluation_dataHandle(this.summary_data.consistency_evaluation_data);
// console.log('处理好的数据'); // console.log('处理好的数据');
// console.log(this.wrong_position_data); // console.log(this.wrong_position_data);
}, },
consistency_evaluation_dataHandle(data){
let list=[]
let info=[]
if(data.data && data.data.consistency_evaluation){
info=[]
for(let i of data.data.consistency_evaluation){
info.push(`${i.num}:${i.my}`)
}
list.push({
p:'一致性',
score:((data.data.consistency_evaluation.length/data.num)*100).toFixed(2)+'%',
info:info,
});
}
if(data.data && data.data.no_consistency_evaluation && data.data.no_consistency_evaluation.err_color){
info=[`题号:我的结果-比较人`]
for(let i of data.data.no_consistency_evaluation.err_color){
info.push(`${i.num}:${i.my}-${i.ther}`)
}
list.push({
p:'错颜色情况',
score:((data.data.no_consistency_evaluation.err_color.length/data.num)*100).toFixed(2)+'%',
info:info,
});
}
if(data.data && data.data.no_consistency_evaluation && data.data.no_consistency_evaluation.err_level){
info=[`题号:我的结果-比较人`]
for(let i of data.data.no_consistency_evaluation.err_level){
info.push(`${i.num}:${i.my}-${i.ther}`)
}
list.push({
p:'错颜色情况',
score:((data.data.no_consistency_evaluation.err_level.length/data.num)*100).toFixed(2)+'%',
info:info,
});
}
if(data.data && data.data.no_consistency_evaluation && data.data.no_consistency_evaluation.err_position){
info=[`题号:我的结果-比较人`]
for(let i of data.data.no_consistency_evaluation.err_position){
info.push(`${i.num}:${i.my}-${i.ther}`)
}
list.push({
p:'错颜色情况',
score:((data.data.no_consistency_evaluation.err_position.length/data.num)*100).toFixed(2)+'%',
info:info,
});
}
if(data.data && data.data.no_consistency_evaluation && data.data.no_consistency_evaluation.other){
info=[`题号:我的结果-比较人`]
for(let i of data.data.no_consistency_evaluation.other){
info.push(`${i.num}:${i.my}-${i.ther}`)
}
list.push({
p:'其他情况',
score:((data.data.no_consistency_evaluation.other.length/data.num)*100).toFixed(2)+'%',
info:info,
});
}
let labers = [
{ label: '项目', key: 'p' },
{ label: '得分(%)', key: 'score' },
{ label: '详情', key: 'info' },
];
this.UserbList=data.use_list?data.use_list:this.UserbList
return {
key:Math.random(),
type: 'table',
chart_id: 'consistency_evaluation_data',
color: '#99A9BF',
title: '一致性评价',
use_user:this.UserbList,
student_id:data.student_id,
labers,
list,
};
},
//计算百分比 //计算百分比
toPercent, toPercent,
//处理分段值 //处理分段值
...@@ -574,16 +679,21 @@ export default { ...@@ -574,16 +679,21 @@ export default {
{ label: '错误答案内容', key: 'distribute' }, { label: '错误答案内容', key: 'distribute' },
]; ];
keys.forEach((element, index) => { keys.forEach((element, index) => {
list.push({ for (let s in datas[element]) {
position: element, for (let i in datas[element][s]) {
answer: datas[element].answer, list.push({
wrong_num: datas[element].wrong_num, position: element,
// distribute: datas[element].distribute, wrong_position: s,
distribute: countOccurrences(datas[element].distribute), answer: datas[element][s][i].answer,
}); wrong_num: datas[element][s][i].wrong_num,
distribute: countOccurrences(datas[element][s][i].distribute),
});
}
}
}); });
return { return {
type: 'table', type: 'table',
merge_fields: ['position'],
chart_id: 'wrong_position', chart_id: 'wrong_position',
color: '#E6A23C', color: '#E6A23C',
title: '错误部位', title: '错误部位',
...@@ -603,16 +713,25 @@ export default { ...@@ -603,16 +713,25 @@ export default {
{ label: '错误答案内容', key: 'distribute' }, { label: '错误答案内容', key: 'distribute' },
]; ];
keys.forEach((element, index) => { keys.forEach((element, index) => {
list.push({ for (let s in datas[element]) {
level: element, list.push({
answer: datas[element].answer, level: element,
wrong_num: datas[element].wrong_num, answer: datas[element][s].answer,
// distribute: datas[element].distribute, wrong_num: datas[element][s].wrong_num,
distribute: countOccurrences(datas[element].distribute), distribute: countOccurrences(datas[element][s].distribute),
}); });
}
//list.push({
// level: element,
// answer: datas[element].answer,
// wrong_num: datas[element].wrong_num,
// // distribute: datas[element].distribute,
// distribute: countOccurrences(datas[element].distribute),
//});
}); });
return { return {
type: 'table', type: 'table',
merge_fields: ['level'],
chart_id: 'wrong_level', chart_id: 'wrong_level',
color: '#505F79', color: '#505F79',
title: '错误上下一级', title: '错误上下一级',
...@@ -632,16 +751,25 @@ export default { ...@@ -632,16 +751,25 @@ export default {
{ label: '错误答案内容', key: 'distribute' }, { label: '错误答案内容', key: 'distribute' },
]; ];
keys.forEach((element, index) => { keys.forEach((element, index) => {
list.push({ for (let s in datas[element]) {
color: element, list.push({
answer: datas[element].answer, color: element,
wrong_num: datas[element].wrong_num, answer: datas[element][s].answer,
// distribute: datas[element].distribute, wrong_num: datas[element][s].wrong_num,
distribute: countOccurrences(datas[element].distribute), distribute: countOccurrences(datas[element][s].distribute),
}); });
}
//list.push({
// color: element,
// answer: datas[element].answer,
// wrong_num: datas[element].wrong_num,
// // distribute: datas[element].distribute,
// distribute: countOccurrences(datas[element].distribute),
//});
}); });
return { return {
type: 'table', type: 'table',
merge_fields: ['color'],
chart_id: 'wrong_color', chart_id: 'wrong_color',
color: '#99A9BF', color: '#99A9BF',
title: '错误颜色', title: '错误颜色',
...@@ -661,15 +789,18 @@ export default { ...@@ -661,15 +789,18 @@ export default {
{ label: '错误答案内容', key: 'distribute' }, { label: '错误答案内容', key: 'distribute' },
]; ];
keys.forEach((element, index) => { keys.forEach((element, index) => {
list.push({ for (let s in datas[element]) {
group: element, list.push({
answer: datas[element].answer, group: element,
wrong_num: datas[element].wrong_num, answer: datas[element][s].answer,
// distribute: datas[element].distribute, wrong_num: datas[element][s].wrong_num,
distribute: countOccurrences(datas[element].distribute), distribute: countOccurrences(datas[element][s].distribute),
}); });
}
}); });
return { return {
merge_fields: ['group'],
type: 'table', type: 'table',
chart_id: 'wrong_group', chart_id: 'wrong_group',
color: '#529B2E', color: '#529B2E',
......
Markdown 格式
0% 或
您添加了 0 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论