079cb4cf
梁保满
即时测导出
|
1
2
3
4
5
6
7
|
<template>
<div ref="main" class="page-container">
<back-box v-show="!isDetail">
<template slot="title">
<span>即时测-数据报表</span>
</template>
<template slot="btns">
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<el-tooltip
v-if="!code && gdClass"
effect="dark"
content="已归档试卷"
placement="bottom"
>
<el-button
type="primary"
icon="fa fa-archive"
size="mini"
plain
circle
@click="toArchiving"
></el-button>
|
079cb4cf
梁保满
即时测导出
|
22
23
24
25
26
27
|
</el-tooltip>
</template>
</back-box>
<div v-show="!isDetail" class="table-box" v-loading="loading">
<div v-if="!isMultipleClass">
<p class="btn-box">
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
28
29
30
|
<el-button type="primary" round @click="linkToDetail2"
>查看汇总报表</el-button
>
|
079cb4cf
梁保满
即时测导出
|
31
|
</p>
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
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
|
<el-table
:data="tableData"
:max-height="tableMaxHeight"
border
style="width: 100%"
@selection-change="handleSelectionChange"
>
<el-table-column width="40" v-if="role == 'ROLE_BANZHUREN'">
<template slot-scope="scope">
<el-checkbox
v-model="multipleSelection"
:label="scope.row.id"
></el-checkbox>
</template>
</el-table-column>
<el-table-column type="selection" width="40" v-else></el-table-column>
<el-table-column
prop="subjectName"
label="科目"
align="center"
></el-table-column>
<el-table-column
prop="className"
label="班级"
align="center"
></el-table-column>
<el-table-column
prop="title"
label="试卷名称"
align="center"
></el-table-column>
<el-table-column
prop="examPaperScore"
label="卷面分"
align="center"
></el-table-column>
|
079cb4cf
梁保满
即时测导出
|
68
|
<el-table-column label="测验人数/班级人数" align="center">
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
69
70
71
|
<template slot-scope="scoped">{{
`${scoped.row.answeredNum}/${scoped.row.classPersonNum}`
}}</template>
|
079cb4cf
梁保满
即时测导出
|
72
|
</el-table-column>
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
73
74
75
76
77
|
<el-table-column
prop="examStartTime"
label="测验开始时间"
align="center"
></el-table-column>
|
079cb4cf
梁保满
即时测导出
|
78
79
|
<el-table-column label="操作" align="center">
<template slot-scope="scoped">
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
80
81
82
83
84
85
86
87
88
89
90
91
92
|
<el-tooltip
v-if="scoped.row.answerNum != 0 || scoped.row.recordStatus != 0"
effect="dark"
content="详情"
placement="top"
>
<el-button
type="primary"
circle
size="mini"
icon="fa fa-arrow-right"
@click="linkTo(scoped.row)"
></el-button>
|
079cb4cf
梁保满
即时测导出
|
93
94
|
</el-tooltip>
<template v-if="scoped.row.answerNum == 0">
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
95
96
97
98
99
100
101
102
103
104
105
106
107
|
<el-tooltip
v-if="role != 'ROLE_BANZHUREN'"
effect="dark"
content="设置答案"
placement="top"
>
<el-button
type="primary"
circle
size="mini"
icon="fa fa-file-text"
@click="edit(scoped.row)"
></el-button>
|
079cb4cf
梁保满
即时测导出
|
108
109
110
111
112
113
|
</el-tooltip>
<template v-else>未设置答案</template>
</template>
<!-- <el-tooltip v-else effect="dark" content="答卷录分" placement="top">
<el-button type="primary" circle size="mini" @click="openScoreSet(scoped.row)">分</el-button>
</el-tooltip> -->
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
114
115
116
117
118
119
120
121
122
123
124
125
126
|
<el-tooltip
v-else
effect="dark"
content="答卷录分"
placement="top"
>
<el-button
type="primary"
circle
size="mini"
@click="openScoreSet(scoped.row)"
>分</el-button
>
|
079cb4cf
梁保满
即时测导出
|
127
|
</el-tooltip>
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
<el-popconfirm
v-if="role != 'ROLE_BANZHUREN'"
title="确定删除吗?"
@confirm="removeReport(scoped.row, scoped.$index)"
>
<el-button
class="remove-test"
slot="reference"
type="danger"
circle
size="mini"
icon="el-icon-delete"
:loading="scoped.row.loading"
></el-button>
|
a9f5dfcf
梁保满
修改知识点匹配,删除即时测报表
|
142
|
</el-popconfirm>
|
079cb4cf
梁保满
即时测导出
|
143
144
145
146
|
</template>
</el-table-column>
</el-table>
<div class="pagination-box">
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
147
148
149
150
151
152
153
154
155
|
<el-pagination
small=""
layout="total,prev, pager, next"
:hide-on-single-page="true"
:total="total"
@current-change="changePage"
:current-page="page"
:page-size="size"
>
|
079cb4cf
梁保满
即时测导出
|
156
157
|
</el-pagination>
</div>
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
158
159
160
161
162
163
164
165
166
|
<ScoreSet
v-show="diaScoreSet"
:diaScoreSet="diaScoreSet"
:role="role"
:id="examId"
:title="examTitlt"
:examScore="examScore"
@closeScoreSet="closeScoreSet"
/>
|
079cb4cf
梁保满
即时测导出
|
167
168
|
</div>
<div v-else>
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
169
170
171
172
173
174
175
176
177
178
179
|
<el-table
:data="tableData"
:max-height="tableMaxHeight"
border
style="width: 100%"
>
<el-table-column
prop="subjectName"
label="科目"
align="center"
></el-table-column>
|
079cb4cf
梁保满
即时测导出
|
180
|
<el-table-column prop="classList" label="班级" align="center">
|
22095aba
梁保满
接口联调
|
181
|
<template slot-scope="scoped">
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
182
183
184
|
<span v-for="(item, index) in scoped.row.classNames">{{
`${index == 0 ? "" : "/"}` + item
}}</span>
|
22095aba
梁保满
接口联调
|
185
|
</template>
|
079cb4cf
梁保满
即时测导出
|
186
|
</el-table-column>
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
187
188
189
190
191
192
193
194
195
196
|
<el-table-column
prop="title"
label="试卷名称"
align="center"
></el-table-column>
<el-table-column
prop="examPaperScore"
label="卷面分"
align="center"
></el-table-column>
|
079cb4cf
梁保满
即时测导出
|
197
198
|
<el-table-column label="操作" align="center">
<template slot-scope="scoped">
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
199
200
201
202
203
204
205
|
<el-button
type="primary"
circle
size="mini"
icon="el-icon-arrow-right"
@click="linkContrast(scoped.row)"
></el-button>
|
079cb4cf
梁保满
即时测导出
|
206
207
208
209
|
</template>
</el-table-column>
</el-table>
<div class="pagination-box">
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
210
211
212
213
214
215
216
217
218
|
<el-pagination
small=""
layout="total,prev, pager, next"
:hide-on-single-page="true"
:total="total"
@current-change="changePage"
:current-page="page"
:page-size="size"
>
|
079cb4cf
梁保满
即时测导出
|
219
220
221
222
223
224
225
226
227
|
</el-pagination>
</div>
</div>
</div>
<router-view v-show="isDetail"></router-view>
</div>
</template>
<script>
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
228
|
import ScoreSet from "./components/scoreSet.vue";
|
079cb4cf
梁保满
即时测导出
|
229
230
|
export default {
components: {
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
231
|
ScoreSet,
|
079cb4cf
梁保满
即时测导出
|
232
233
234
235
236
237
238
239
240
|
},
data() {
return {
code: "",
gdClass: 0, //已归档班级数量
tableMaxHeight: null,
role: "",
loading: false,
diaScoreSet: false,
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
241
242
243
|
examId: "", //当前操作试卷
examTitlt: "", //当前操作试卷名称
examScore: 0, //当前操作试卷卷面总分
|
079cb4cf
梁保满
即时测导出
|
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
|
query: {
//搜索条件
classId: [],
subjectNames: [],
startDay: "",
endDay: "",
},
multipleSelection: [],
tableData: [],
page: 1,
size: 20,
total: 0,
isMultipleClass: false,
};
},
computed: {
isDetail: function () {
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
261
262
263
|
let bol = this.$route.name == "即时测报表分析" ? true : false;
return bol;
},
|
079cb4cf
梁保满
即时测导出
|
264
265
|
},
async created() {
|
7812e986
梁保满
班主任查看报表添加额外信息
|
266
|
this.code = this.$store.getters.csCode;
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
267
|
this.init();
|
079cb4cf
梁保满
即时测导出
|
268
269
270
271
272
273
274
275
|
},
mounted() {
this.tableMaxHeight = this.$refs.main.offsetHeight;
},
watch: {
"$route.query.params": function (nVal) {
let isFromTestDetail = sessionStorage.getItem("isFromTestDetail");
if (!isFromTestDetail && nVal) {
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
276
|
this.init();
|
079cb4cf
梁保满
即时测导出
|
277
|
}
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
278
|
},
|
079cb4cf
梁保满
即时测导出
|
279
280
281
282
|
},
methods: {
//初始化
init() {
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
283
284
285
286
287
288
289
|
const queryData = this.$route.query.params;
queryData
? (this.query = { ...this.query, ...JSON.parse(queryData) })
: "";
console.log(this.query);
this.$store.commit("setClasses", this.query.classId.join(","));
this.isMultipleClass = false;
|
079cb4cf
梁保满
即时测导出
|
290
291
292
293
|
this.role =
this.$store.getters.info.showRole ||
this.$store.getters.info.permissions[0].role;
if (this.role != "ROLE_PERSONAL") {
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
294
|
this._QueryGdClass();
|
079cb4cf
梁保满
即时测导出
|
295
|
}
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
296
297
298
299
|
this.page = 1;
this.total = 0;
this.tableData = [];
this._QueryData();
|
079cb4cf
梁保满
即时测导出
|
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
|
},
//归档列表
toArchiving() {
this.$router.push({
path: "/testArchiving",
});
},
//跳转单卷分析
linkTo(obj) {
//去详情
this.$router.push({
path: "/testAnalysis",
query: {
id: obj.id,
title: obj.title,
score: obj.examPaperScore || 0,
type: 1,
|
22095aba
梁保满
接口联调
|
317
318
|
subjectName: obj.subjectName,
classId: this.query.classId[0],
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
319
|
params: this.$route.query.params,
|
079cb4cf
梁保满
即时测导出
|
320
321
322
323
324
325
|
},
});
},
//汇总跳转-多卷
linkToDetail2() {
if (this.multipleSelection.length == 0) {
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
326
327
328
329
330
331
332
333
334
335
|
this.$message.warning("请选择试卷!");
return;
}
let subjectArr = [];
const ids = this.multipleSelection.map((item) => {
subjectArr.push(item.subjectName);
return item.id;
});
subjectArr = [...new Set(subjectArr)];
console.log(subjectArr);
|
079cb4cf
梁保满
即时测导出
|
336
337
338
339
340
341
342
343
|
if (ids.length == 1) {
this.$router.push({
path: "/testAnalysis",
query: {
id: ids[0],
title: this.multipleSelection[0].title,
score: this.multipleSelection[0].examPaperScore || 0,
type: 1,
|
22095aba
梁保满
接口联调
|
344
345
|
subjectName: subjectArr.join(),
classId: this.query.classId[0],
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
346
|
params: this.$route.query.params,
|
079cb4cf
梁保满
即时测导出
|
347
348
349
350
351
352
353
354
355
356
|
},
});
} else {
//去详情
this.$router.push({
path: "/testAnalysis",
query: {
ids: ids.join(),
classId: this.query.classId[0],
type: subjectArr.length == 1 ? 2 : 3,
|
22095aba
梁保满
接口联调
|
357
|
subjectName: subjectArr.join(),
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
358
|
params: this.$route.query.params,
|
079cb4cf
梁保满
即时测导出
|
359
360
361
362
363
364
|
},
});
}
},
// 多班对比
linkContrast(obj) {
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
365
|
console.log(obj);
|
079cb4cf
梁保满
即时测导出
|
366
367
368
|
this.$router.push({
path: "/testAnalysis",
query: {
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
369
370
|
ids: obj.ids.join(","),
classId: obj.classIds.join(","),
|
079cb4cf
梁保满
即时测导出
|
371
372
|
subjectName: obj.subjectName,
title: obj.title,
|
049db2b2
梁保满
接口联调
|
373
|
type: 4,
|
c7461233
梁保满
多班对比传递页面总分
|
374
|
examPaperScore: obj.examPaperScore,
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
375
|
params: this.$route.query.params,
|
079cb4cf
梁保满
即时测导出
|
376
377
378
379
380
381
382
383
|
},
});
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
//打开答卷录分
openScoreSet(obj) {
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
384
|
console.log(obj);
|
77da338a
梁保满
自测问题修改
|
385
|
this.examId = String(obj.id);
|
079cb4cf
梁保满
即时测导出
|
386
|
this.examTitlt = obj.title;
|
384a2a54
梁保满
请求头添加班主任信息,bug修改
|
387
|
this.examScore = obj.examPaperScore;
|
079cb4cf
梁保满
即时测导出
|
388
389
390
391
|
this.diaScoreSet = true;
},
//关闭设置分数
closeScoreSet() {
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
392
|
this.diaScoreSet = false;
|
079cb4cf
梁保满
即时测导出
|
393
394
395
396
397
398
399
400
401
402
403
404
|
},
//修改答案
edit(item) {
this.$router.push({
path: "/examinationPaperEdit",
query: {
paperId: item.id,
title: item.title,
type: 2,
},
});
},
|
a9f5dfcf
梁保满
修改知识点匹配,删除即时测报表
|
405
406
407
408
409
410
411
412
413
414
415
416
417
|
//删除即时测考试
async removeReport(obj, index) {
this.tableData[index].loading = true;
const { data, status, info } = await this.$request.deleteReport({
id: obj.id,
});
if (status === 0) {
this.$message.success("删除成功!");
this.tableData.splice(index, 1);
} else {
this.$message.error(info);
}
},
|
079cb4cf
梁保满
即时测导出
|
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
|
async _QueryGdClass() {
const fetchClassList =
this.role == "ROLE_BANZHUREN"
? this.$request.cTClassList
: this.$request.tClassList;
const { data, status, info } = await fetchClassList({ status: 1 });
if (status === 0) {
this.gdClass = data?.list?.length || 0;
} else {
this.$message.error(info);
}
},
changePage(page) {
this.page = page;
this._QueryData();
},
async _QueryData() {
this.loading = true;
let query = {};
for (let key in this.query) {
if (this.query[key] != "") {
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
440
|
if (key == "classId") {
|
7812e986
梁保满
班主任查看报表添加额外信息
|
441
|
if (this.query.classId?.length == 1) {
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
442
|
query.classId = this.query[key][0];
|
22095aba
梁保满
接口联调
|
443
|
} else {
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
444
|
query.classIds = [...this.query[key]];
|
22095aba
梁保满
接口联调
|
445
446
447
448
|
}
} else {
query[key] = this.query[key];
}
|
079cb4cf
梁保满
即时测导出
|
449
450
|
}
}
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
451
452
453
454
|
const examReportList =
this.role == "ROLE_PERSONAL"
? this.$request.pExamReportList
: this.$request.examReportList;
|
079cb4cf
梁保满
即时测导出
|
455
456
457
458
459
460
461
|
const { data, status, info } = await examReportList({
...query,
page: this.page,
size: this.size,
});
this.loading = false;
if (status === 0) {
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
462
463
464
465
466
467
|
if (this.role == "ROLE_BANZHUREN") {
this.tableData = (data?.list && [...data?.list]) || [];
this.total = data?.count || 0;
} else {
this.isMultipleClass = true;
let classArr = [];
|
7812e986
梁保满
班主任查看报表添加额外信息
|
468
|
data?.list?.map((item) => {
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
|
if (!classArr.includes(item.classId)) {
classArr.push(item.classId);
}
});
if (classArr.length > 1) {
//多班级
let tableObj = {};
data?.list?.map((item) => {
if (tableObj[item.examPaperId]) {
// 没有班级考试的添加
if (
!tableObj[item.examPaperId].classIds.includes(item.classId)
) {
tableObj[item.examPaperId].ids.push(item.id);
tableObj[item.examPaperId].classIds.push(item.classId);
tableObj[item.examPaperId].classNames.push(item.className);
} else {
//已经考过班级的新的替换老的
let idx = tableObj[item.examPaperId].classIds.indexOf(
item.classId
);
if (tableObj[item.examPaperId].ids[idx] < item.id) {
tableObj[item.examPaperId].ids[idx] = [item.id];
tableObj[item.examPaperId].title = item.title;
}
|
384a2a54
梁保满
请求头添加班主任信息,bug修改
|
494
|
}
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
495
496
497
498
499
500
501
502
503
504
|
} else {
tableObj[item.examPaperId] = {
ids: [item.id],
examPaperId: item.examPaperId,
classIds: [item.classId],
classNames: [item.className],
title: item.title,
examPaperScore: item.examPaperScore,
subjectName: item.subjectName,
};
|
384a2a54
梁保满
请求头添加班主任信息,bug修改
|
505
|
}
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
506
507
508
509
|
});
Object.keys(tableObj).map((keys) => {
if (tableObj[keys].classIds.length > 1) {
this.tableData.push(tableObj[keys]);
|
7812e986
梁保满
班主任查看报表添加额外信息
|
510
|
}
|
58744c8c
梁保满
即时测多班淡斑逻辑修改
|
511
512
513
514
515
|
});
} else {
this.tableData = (data?.list && [...data?.list]) || [];
this.total = data?.count || 0;
}
|
7812e986
梁保满
班主任查看报表添加额外信息
|
516
|
}
|
079cb4cf
梁保满
即时测导出
|
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
|
} else {
this.$message.error(info);
}
},
},
};
</script>
<style>
div::-webkit-scrollbar {
width: 3px;
height: 10px;
}
div::-webkit-scrollbar-thumb {
border-radius: 10px;
background-color: #ccc;
}
</style>
<style lang="scss" scoped>
|
a9f5dfcf
梁保满
修改知识点匹配,删除即时测报表
|
537
538
539
540
|
.remove-test {
margin-left: 10px;
}
|
079cb4cf
梁保满
即时测导出
|
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
|
.page-container {
position: relative;
height: 100%;
&.active {
overflow: hidden;
}
}
.table-box {
margin: 20px;
border-radius: 5px;
:deep(.fa-arrow-right) {
padding-left: 2px;
}
:deep(.fa-file-text) {
padding-left: 2px;
}
}
.down {
padding-top: 16px;
}
.click-b {
cursor: pointer;
color: #409eff;
text-decoration: underline;
}
.btn-box {
text-align: right;
padding: 0 12px 16px;
}
</style>
|