提交 e9f54e1b authored 作者: Yroc's avatar Yroc

合并

上级 f4ff956a
......@@ -32,7 +32,22 @@
</th>
</tr>
<tr v-for="(item, index) in table_data" :key="index">
<td v-for="(e, i) in labers" :key="i">
<td
v-for="(e, i) in labers"
:key="i"
:rowspan="
merge_fields && merge_fields.indexOf(e.key) > -1
? merge_fields_fun(index, e.key, 'sss')
: 1
"
v-if="
merge_fields && merge_fields.indexOf(e.key) > -1
? show_row_key[e.key]
? show_row_key[e.key][index]
: false
: true
"
>
<div v-if="e.key == 'distribute'">
<div
v-if="
......@@ -89,9 +104,12 @@
<script>
export default {
props: ['table_data', 'labers'],
props: ['table_data', 'labers', 'merge_fields'],
data() {
return {
is_show_table: false,
show_row_key: {},
row_data_name: {},
sort_field: null,
sort_type: null,
};
......@@ -101,9 +119,74 @@ export default {
computed: {},
created() {},
mounted() {},
mounted() {
this.data_f();
},
methods: {
data_f() {
this.row_data_name = {};
this.show_row_key = {};
this.is_show_table = false;
let index_list = [];
for (let d in this.merge_fields) {
for (let i in this.table_data) {
let s = 0;
if (this.show_row_key[this.merge_fields[d]]) {
s = this.merge_fields_fun(i, this.merge_fields[d]);
this.show_row_key[this.merge_fields[d]][i] = s ? true : false;
if (!index_list[i] && s) {
index_list[i] = true;
}
} else {
let a = {};
let s = this.merge_fields_fun(i, this.merge_fields[d]);
a[i] = s ? true : false;
this.show_row_key[this.merge_fields[d]] = a;
if (!index_list[i] && s) {
index_list[i] = true;
}
}
}
}
for (let i in index_list) {
for (let d in this.merge_fields) {
if (this.merge_fields[d] == 'wrong_position') {
this.show_row_key[this.merge_fields[d]][i] = true;
}
}
}
// console.log(this.show_row_key);
this.row_data_name = {};
this.is_show_table = true;
},
merge_fields_fun(index, key, a = false) {
let num = 0;
if (
!this.row_data_name[key] ||
(this.row_data_name[key] &&
this.row_data_name[key] != this.table_data[index][key]) ||
this.show_row_key[key][index]
) {
this.row_data_name[key] = this.table_data[index][key];
for (let mf_i in this.table_data) {
if (parseInt(mf_i) >= parseInt(index)) {
if (a && this.show_row_key[key][parseInt(mf_i) + 1]) {
num += 1;
return num;
} else if (
this.table_data[parseInt(index)][key] ==
this.table_data[parseInt(mf_i)][key]
) {
num += 1;
} else {
return num;
}
}
}
}
return num;
},
sort(col, type = 'desc') {
this.sort_field = col;
this.sort_type = type;
......
......@@ -32,6 +32,7 @@
</div>
<div class="content_container" v-if="original_data.type == 'table'">
<Table
:merge_fields="original_data.merge_fields"
:table_data="original_data.list"
:labers="original_data.labers"
></Table>
......
......@@ -755,23 +755,41 @@ export default {
let keys = Object.keys(datas);
let list = [];
let labers = [
{ label: '正确部位', key: 'answer_position' },
{ label: '错误部位', key: 'wrong_position' },
{ label: '题目', key: 'position' },
{ label: '正确答案', key: 'answer' },
{ label: '错题数量', key: 'wrong_num' },
{ label: '错误答案内容', key: 'distribute' },
];
// keys.forEach((element, index) => {
// list.push({
// position: element,
// answer: datas[element].answer,
// wrong_num: datas[element].wrong_num,
// // distribute: datas[element].distribute,
// distribute: countOccurrences(datas[element].distribute),
// });
// });
keys.forEach((element, index) => {
list.push({
position: element,
answer: datas[element].answer,
wrong_num: datas[element].wrong_num,
// distribute: datas[element].distribute,
distribute: countOccurrences(datas[element].distribute),
});
for (let s in datas[element]) {
for (let i in datas[element][s]) {
list.push({
answer_position: element,
wrong_position: s,
position: datas[element][s][i].title,
answer: datas[element][s][i].answer,
wrong_num: datas[element][s][i].wrong_num,
distribute: countOccurrences(datas[element][s][i].distribute),
distribute_student: datas[element][s][i].distribute_student,
});
}
}
});
return {
type: 'table',
chart_id: 'wrong_position',
merge_fields: ['answer_position', 'wrong_position'],
color: '#E6A23C',
title: '错误部位',
labers,
......@@ -784,26 +802,40 @@ export default {
let keys = Object.keys(datas);
let list = [];
let labers = [
{ label: '题目', key: 'level' },
{ label: '错误等级', key: 'level' },
{ label: '题目', key: 'title' },
{ label: '正确答案', key: 'answer' },
{ label: '错题数量', key: 'wrong_num' },
{ label: '错误答案内容', key: 'distribute' },
];
keys.forEach((element, index) => {
list.push({
level: element,
answer: datas[element].answer,
wrong_num: datas[element].wrong_num,
// distribute: datas[element].distribute,
distribute: countOccurrences(datas[element].distribute),
// keys.forEach((element, index) => {
// list.push({
// level: element,
// answer: datas[element].answer,
// wrong_num: datas[element].wrong_num,
// // distribute: datas[element].distribute,
// distribute: countOccurrences(datas[element].distribute),
//countOccurrences(datas[element].distribute)
});
// //countOccurrences(datas[element].distribute)
// });
// });
keys.forEach((element, index) => {
for (let s in datas[element]) {
list.push({
level: element,
title: datas[element][s].title,
answer: datas[element][s].answer,
wrong_num: datas[element][s].wrong_num,
distribute: countOccurrences(datas[element][s].distribute),
distribute_student: datas[element][s].distribute_student,
});
}
});
return {
type: 'table',
chart_id: 'wrong_level',
color: '#505F79',
merge_fields: ['level'],
title: '错误上下一级',
labers,
list,
......@@ -815,26 +847,40 @@ export default {
let keys = Object.keys(datas);
let list = [];
let labers = [
{ label: '题目', key: 'color' },
{ label: '错误颜色', key: 'color' },
{ label: '题目', key: 'title' },
{ label: '正确答案', key: 'answer' },
{ label: '错题数量', key: 'wrong_num' },
{ label: '错误答案内容', key: 'distribute' },
];
keys.forEach((element, index) => {
list.push({
color: element,
answer: datas[element].answer,
wrong_num: datas[element].wrong_num,
// distribute: datas[element].distribute,
distribute: countOccurrences(datas[element].distribute),
// keys.forEach((element, index) => {
// list.push({
// color: element,
// answer: datas[element].answer,
// wrong_num: datas[element].wrong_num,
// // distribute: datas[element].distribute,
// distribute: countOccurrences(datas[element].distribute),
//distribute: countOccurrences(datas[element].distribute),
});
// //distribute: countOccurrences(datas[element].distribute),
// });
// });
keys.forEach((element, index) => {
for (let s in datas[element]) {
list.push({
color: element,
title: datas[element][s].title,
answer: datas[element][s].answer,
wrong_num: datas[element][s].wrong_num,
distribute: countOccurrences(datas[element][s].distribute),
distribute_student: datas[element][s].distribute_student,
});
}
});
return {
type: 'table',
chart_id: 'wrong_color',
color: '#99A9BF',
merge_fields: ['color'],
title: '错误颜色',
labers,
list,
......@@ -846,25 +892,40 @@ export default {
let keys = Object.keys(datas);
let list = [];
let labers = [
{ label: '题目', key: 'group' },
{ label: '组别', key: 'group' },
{ label: '题目', key: 'title' },
{ label: '正确答案', key: 'answer' },
{ label: '错题数量', key: 'wrong_num' },
{ label: '错误答案内容', key: 'distribute' },
];
// keys.forEach((element, index) => {
// list.push({
// group: element,
// answer: datas[element].answer,
// wrong_num: datas[element].wrong_num,
// // distribute: datas[element].distribute,
// distribute: countOccurrences(datas[element].distribute),
// //countOccurrences
// });
// });
keys.forEach((element, index) => {
list.push({
group: element,
answer: datas[element].answer,
wrong_num: datas[element].wrong_num,
// distribute: datas[element].distribute,
distribute: countOccurrences(datas[element].distribute),
//countOccurrences
});
for (let s in datas[element]) {
list.push({
group: element,
title: datas[element][s].title,
answer: datas[element][s].answer,
wrong_num: datas[element][s].wrong_num,
distribute: countOccurrences(datas[element][s].distribute),
distribute_student: datas[element][s].distribute_student,
});
}
});
return {
type: 'table',
chart_id: 'wrong_group',
color: '#529B2E',
merge_fields: ['group'],
title: '错误组别',
labers,
list,
......
Markdown 格式
0% 或
您添加了 0 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论