86201e49
梁保满
即时测模块
|
1
2
3
|
<template>
<div class="table-box" ref="main" v-loading="loading">
<div id="print-content">
|
b0cd2598
梁保满
fix:测试问题
|
4
5
6
7
8
9
10
11
12
13
14
15
|
<el-table
:max-height="tableMaxHeight"
:data="tableData"
border
style="width: 100%"
>
<el-table-column
prop="studentCode"
label="学号"
align="center"
fixed
></el-table-column>
|
86201e49
梁保满
即时测模块
|
16
|
<el-table-column prop="studentName" label="姓名" fixed align="center">
|
7222c2eb
梁保满
汇总前置条件修改,教学,行政可汇总
|
17
18
19
|
<template slot-scope="scoped">
{{ scoped.row.studentName }}
</template></el-table-column
|
b0cd2598
梁保满
fix:测试问题
|
20
21
22
23
24
25
26
27
28
29
30
31
|
>
<el-table-column
align="center"
v-for="(item, index) in answerList"
:key="index"
:label="item.title"
>
<el-table-column
:prop="'score' + index"
:label="index == 0 ? '总分' : '成绩'"
align="center"
:class-name="index % 2 == 0 ? 'bg' : ''"
|
6b3dde63
梁保满
随堂问,即时测没有数据显示-,其他...
|
32
33
34
35
36
37
38
39
|
>
<template slot-scope="scoped">{{
scoped.row["score" + index] ||
Number(scoped.row["score" + index]) === 0
? scoped.row["score" + index]
: "-"
}}</template>
</el-table-column>
|
b0cd2598
梁保满
fix:测试问题
|
40
41
42
43
44
45
|
<el-table-column
:prop="'classRank' + index"
label="班名"
align="center"
sortable
:class-name="index % 2 == 0 ? 'bg' : ''"
|
6b3dde63
梁保满
随堂问,即时测没有数据显示-,其他...
|
46
47
48
49
50
51
52
53
|
>
<template slot-scope="scoped">{{
scoped.row["classRank" + index] ||
Number(scoped.row["classRank" + index]) === 0
? scoped.row["classRank" + index]
: "-"
}}</template>
</el-table-column>
|
86201e49
梁保满
即时测模块
|
54
55
56
|
</el-table-column>
<el-table-column label="查看折线图" align="center">
<template slot-scope="scoped">
|
b0cd2598
梁保满
fix:测试问题
|
57
58
59
60
61
62
63
|
<el-button
@click="openChart(scoped.row)"
type="primary"
size="mini"
circle
icon="el-icon-arrow-right"
></el-button>
|
86201e49
梁保满
即时测模块
|
64
65
66
67
68
|
</template>
</el-table-column>
</el-table>
</div>
<div class="down">
|
b0cd2598
梁保满
fix:测试问题
|
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
<el-button
@click="openDown"
type="primary"
plain
round
icon="fa fa-cloud-download"
>导出报表</el-button
>
<el-button
v-if="!this.$store.getters.code"
@click="print"
type="primary"
plain
round
icon="el-icon-printer"
>打印</el-button
>
|
86201e49
梁保满
即时测模块
|
86
|
</div>
|
b0cd2598
梁保满
fix:测试问题
|
87
88
89
90
91
92
|
<el-dialog
class="chart-dia"
:visible.sync="chartDia"
:title="chartTitle"
width="800"
>
|
86201e49
梁保满
即时测模块
|
93
|
<div class="chart-box">
|
b0cd2598
梁保满
fix:测试问题
|
94
95
96
97
98
99
|
<LineChart
id="lineChart"
:params="chartData"
:xAxis="xAxis"
:formatterYAxis="false"
/>
|
86201e49
梁保满
即时测模块
|
100
101
|
</div>
</el-dialog>
|
b0cd2598
梁保满
fix:测试问题
|
102
103
104
105
106
107
108
|
<ExportDia
:exportStudent="exportStudent"
:diaShow="diaShow"
@cancel="cancel"
@exportData="exportData"
lastLabel="总分"
/>
|
86201e49
梁保满
即时测模块
|
109
110
111
112
|
</div>
<!-- 单科多卷 -->
</template>
<script>
|
b0cd2598
梁保满
fix:测试问题
|
113
|
import LineChart from "@/components/charts/lineChart";
|
86201e49
梁保满
即时测模块
|
114
115
116
117
118
119
|
import { downloadFile, tablePrint } from "@/utils";
export default {
components: { LineChart },
props: {
role: "",
ids: Array,
|
7222c2eb
梁保满
汇总前置条件修改,教学,行政可汇总
|
120
|
classIds: Array,
|
86201e49
梁保满
即时测模块
|
121
122
123
124
125
126
127
128
129
130
131
132
133
|
subjectName: String,
},
data() {
return {
tableMaxHeight: null,
answerList: [], //设置多卷内容供tableStage表格数据用
tableData: [],
loading: false,
exportLoading: false,
chartDia: false,
studentName: "",
xAxis: [],
chartData: [],
|
e17ec739
梁保满
随堂问,即时测导出爆表修改
|
134
135
136
|
//导出相关
diaShow: false,
|
b0cd2598
梁保满
fix:测试问题
|
137
138
|
exportStudent: [],
};
|
86201e49
梁保满
即时测模块
|
139
140
141
|
},
computed: {
chartTitle: function () {
|
b0cd2598
梁保满
fix:测试问题
|
142
143
|
return `${this.studentName}-${this.subjectName}-多课时作答表现图`;
},
|
86201e49
梁保满
即时测模块
|
144
145
|
},
created() {
|
b0cd2598
梁保满
fix:测试问题
|
146
|
this.phaseExamReport();
|
86201e49
梁保满
即时测模块
|
147
148
149
150
151
152
|
},
mounted() {
this.tableMaxHeight = this.$refs.main.offsetHeight;
},
methods: {
print() {
|
b0cd2598
梁保满
fix:测试问题
|
153
|
tablePrint("print-content", this.subjectName + "汇总报表");
|
86201e49
梁保满
即时测模块
|
154
|
},
|
86201e49
梁保满
即时测模块
|
155
156
|
//查看折线图
openChart(obj) {
|
b0cd2598
梁保满
fix:测试问题
|
157
158
159
160
161
162
163
164
165
166
167
168
|
this.studentName = obj.studentName;
this.chartDia = true;
let score = [];
let classRank = [];
let avgScore = [];
const examList = obj.examList.slice(1, obj.examList.length);
this.xAxis = examList.map((item) => {
score.push(item.score);
classRank.push(item.classRank);
avgScore.push(item.avgScore);
return item.title;
});
|
86201e49
梁保满
即时测模块
|
169
170
|
this.chartData = [
{
|
22095aba
梁保满
接口联调
|
171
|
name: "班级排名",
|
b0cd2598
梁保满
fix:测试问题
|
172
|
value: classRank,
|
86201e49
梁保满
即时测模块
|
173
174
|
},
{
|
22095aba
梁保满
接口联调
|
175
|
name: "班平均分",
|
b0cd2598
梁保满
fix:测试问题
|
176
|
value: avgScore,
|
86201e49
梁保满
即时测模块
|
177
178
|
},
{
|
22095aba
梁保满
接口联调
|
179
|
name: "个人成绩",
|
b0cd2598
梁保满
fix:测试问题
|
180
|
value: score,
|
86201e49
梁保满
即时测模块
|
181
|
},
|
b0cd2598
梁保满
fix:测试问题
|
182
|
];
|
86201e49
梁保满
即时测模块
|
183
184
185
186
187
188
189
190
|
},
async phaseExamReport() {
this.loading = true;
const phaseExamReport =
this.role == "ROLE_PERSONAL"
? this.$request.pPhaseExamReport
: this.$request.phaseExamReport;
const { data, status, info } = await phaseExamReport({
|
7222c2eb
梁保满
汇总前置条件修改,教学,行政可汇总
|
191
|
classIds: this.classIds,
|
86201e49
梁保满
即时测模块
|
192
|
examIds: this.ids,
|
b0cd2598
梁保满
fix:测试问题
|
193
|
subjectName: this.subjectName,
|
86201e49
梁保满
即时测模块
|
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
|
});
this.loading = false;
if (status === 0) {
this.total = data.count;
let dataIdsList = [],
dataList = [];
data?.list.map((item) => {
item.examList.map((items) => {
if (!dataIdsList.includes(items.title)) {
dataIdsList.push(items.title);
dataList.push(items);
}
});
});
this.tableData = data?.list.map((item) => {
let params = {};
dataIdsList.map((ids, index) => {
params["score" + index] = "--";
params["classRank" + index] = "--";
item.examList.map((items) => {
if (items.title == ids) {
|
384a2a54
梁保满
请求头添加班主任信息,bug修改
|
215
|
params["score" + index] = Number(items.score);
|
86201e49
梁保满
即时测模块
|
216
217
218
219
220
221
222
223
224
225
|
params["classRank" + index] = items.classRank;
}
});
});
return {
...item,
...params,
};
});
this.answerList = dataList;
|
e17ec739
梁保满
随堂问,即时测导出爆表修改
|
226
|
|
b0cd2598
梁保满
fix:测试问题
|
227
|
this.exportStudent = [...this.tableData];
|
86201e49
梁保满
即时测模块
|
228
229
230
231
232
|
} else {
this.$message.error(info);
}
},
//导出
|
e17ec739
梁保满
随堂问,即时测导出爆表修改
|
233
234
235
236
237
238
239
|
openDown() {
this.diaShow = true;
},
cancel() {
this.diaShow = false;
},
async exportData(arr) {
|
86201e49
梁保满
即时测模块
|
240
241
|
if (this.exportLoading == true) return;
this.exportLoading = true;
|
b0cd2598
梁保满
fix:测试问题
|
242
|
let studentIds = arr;
|
e17ec739
梁保满
随堂问,即时测导出爆表修改
|
243
|
let query = {};
|
b0cd2598
梁保满
fix:测试问题
|
244
|
if (studentIds != null) {
|
ce278878
梁保满
2-2 bugfix
|
245
|
if (studentIds.length > 0) {
|
b0cd2598
梁保满
fix:测试问题
|
246
|
query.studentIds = studentIds;
|
ce278878
梁保满
2-2 bugfix
|
247
|
} else {
|
b0cd2598
梁保满
fix:测试问题
|
248
|
query.studentIds = [];
|
ce278878
梁保满
2-2 bugfix
|
249
|
}
|
e17ec739
梁保满
随堂问,即时测导出爆表修改
|
250
|
}
|
b0cd2598
梁保满
fix:测试问题
|
251
252
253
254
|
const exportPhaseExamReport =
this.role == "ROLE_PERSONAL"
? this.$request.pExportPhaseExamReport
: this.$request.exportPhaseExamReport;
|
86201e49
梁保满
即时测模块
|
255
|
const data = await exportPhaseExamReport({
|
7222c2eb
梁保满
汇总前置条件修改,教学,行政可汇总
|
256
|
classIds: this.classIds,
|
049db2b2
梁保满
接口联调
|
257
|
examIds: this.ids,
|
b0cd2598
梁保满
fix:测试问题
|
258
|
...query,
|
86201e49
梁保满
即时测模块
|
259
260
261
262
263
264
265
|
});
this.exportLoading = false;
if (data) {
let blob = new Blob([data], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
});
downloadFile("即时测-单科多卷报表.xlsx", blob);
|
f9916d4c
梁保满
导出摸板
|
266
|
this.$message.success("下载成功");
|
b0cd2598
梁保满
fix:测试问题
|
267
|
this.cancel();
|
86201e49
梁保满
即时测模块
|
268
269
270
271
|
} else {
this.$message.error("下载失败");
}
},
|
b0cd2598
梁保满
fix:测试问题
|
272
|
},
|
86201e49
梁保满
即时测模块
|
273
274
275
276
277
278
279
280
281
282
283
284
285
286
|
};
</script>
<style lang="scss" scoped>
.table-box {
padding: 20px;
}
.down {
padding-top: 20px;
width: 100%;
display: flex;
justify-content: space-between;
}
|
86201e49
梁保满
即时测模块
|
287
288
289
290
291
292
293
294
295
296
297
|
.chart-dia {
.chart-box {
width: 100%;
height: 300px;
}
:deep(.el-dialog__body) {
padding: 0 0 20px 0;
}
}
</style>
|