gradeAnalysis.vue
4.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<template>
<el-container class="default-body">
<el-header>
<div class="default-title">即时测报表</div>
</el-header>
<div class="default-filter">
<!-- <el-input v-model="query.paper" placeholder="搜索试卷" suffix-icon="el-icon-search" class="filter-input"
type="number" clearable /> -->
<el-select v-model="query.grade" class="filter-select" placeholder="选择年级">
<el-option v-for="item in classList" :key="item.grade" :label="item.gradeName" :value="item.grade" />
</el-select>
<el-select v-model="query.subject" placeholder="选择科目" class="filter-select">
<el-option v-for="item in subjectList" :key="item.subjectName" :label="item.subjectName"
:value="item.subjectName" />
</el-select>
<el-date-picker value-format="yyyy-MM-dd" class="filter-datePicker" v-model="query.dateRange"
type="daterange" range-separator="-">
</el-date-picker>
<el-button type="primary" @click="_serach">
筛选
</el-button>
</div>
<el-main>
<div class="default-main">
<el-table :data="examList" class="default-table">
<el-table-column prop="subjectName" label="科目" width="200" />
<el-table-column prop="paperName" label="试卷名称" />
<el-table-column label="已考班级">
<template slot-scope="scope">
{{ scope.row?.classInfos?.map(item => item.className)?.join("/") }}
</template>
</el-table-column>
<el-table-column prop="score" label="卷面分" width="200" />
<el-table-column width="100" label="操作">
<template slot-scope="scope">
<el-button @click="_linkToDetail(scope.row)" type="text" size="small">查看</el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-main>
</el-container>
</template>
<script>
export default {
data() {
return {
classList: [],
subjectList: [],
examList: [],
query: {
examName: "",
paper: null,
grade: null,
subject: null,
dateRange: [
"2021-03-01", "2025-05-01"
]
},
}
},
async created() {
await this._loadQueryDatas();
await this._serach();
},
methods: {
async _serach() {
const examResponse = await this.$request.gExamListReport({
end: this.query.dateRange ? this.query.dateRange[1] : null,
examName: this.query.examName,
start: this.query.dateRange ? this.query.dateRange[0] : null,
grade: this.query.grade,
subjects: [this.query.subject],
})
if (examResponse.status != 0) {
this.$message.error(examResponse.info);
return;
}
this.examList = examResponse.data;
},
async _loadQueryDatas() {
this.$loading.open();
this.$loading.close();
const classReponse = await this.$request.gClass();
if (classReponse.status != 0) {
this.$loading.close();
this.$message.error(classReponse.info);
return;
}
this.classList = classReponse.data.list;
this.query.grade = this.classList[0]?.grade;
const subjectReponse = await this.$request.gSubjectList("?grade=" + this.query.grade + "&classType=0&status=0")
if (subjectReponse.status != 0) {
this.$loading.close();
this.$message.error(subjectReponse.info);
return;
}
this.subjectList = subjectReponse.data;
this.query.subject = this.subjectList[0]?.subjectName;
this.$loading.close();
},
_linkToDetail(currentRow) {
if (!currentRow || !currentRow?.classInfos) {
this.$message.error('选择对象考试班级为空,请刷新列表');
return;
}
var classListStr = JSON.stringify(currentRow.classInfos);
var paperId = currentRow.paperId;
var title = currentRow.paperName;
let routerItem = {
path: "/testGradeReportDetail",
query: {
classListStr: classListStr, paperId: paperId, title: title,
examIds: currentRow.examIds.join(",")
},
};
this.$router.push(routerItem);
}
}
}
</script>
<style></style>