Blame view

src/views/test/index.vue 23.4 KB
4c4f7640   梁保满   路由表,路由前端文件
1
  <template>
dbbfc6c5   梁保满   飞书优化及bug
2
    <div ref="main" class="page-container" :class="dialogVisible ? 'active' : ''">
f356590c   阿宝   即时测列表,分析页面
3
4
5
6
7
8
9
10
11
12
13
      <back-box>
        <template slot="title">
          <span>即时测-数据报表</span>
        </template>
      </back-box>
      <div class="answer-header">
        <div class="sel-box">
          <el-select
            class="sel"
            v-model="query.classId"
            placeholder="选择班级"
f356590c   阿宝   即时测列表,分析页面
14
15
16
17
18
19
20
21
22
23
24
25
26
          >
            <el-option
              v-for="item in classList"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
          <el-select
            v-if="role == 'ROLE_BANZHUREN'"
            class="sel"
            multiple
9309dc5d   梁保满   任课老师接口完成
27
            v-model="query.subjectNames"
45504a95   阿宝   即时测页面,以及小题修改答案
28
            placeholder="选择科目"
dbbfc6c5   梁保满   飞书优化及bug
29
            @change="changeSub"
f356590c   阿宝   即时测列表,分析页面
30
31
32
33
34
35
36
37
38
39
40
41
          >
            <el-option
              v-for="item in subjectList"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
          <el-select
            v-else
            class="sel"
9309dc5d   梁保满   任课老师接口完成
42
            v-model="query.subjectNames"
45504a95   阿宝   即时测页面,以及小题修改答案
43
            placeholder="选择科目"
f356590c   阿宝   即时测列表,分析页面
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
          >
            <el-option
              v-for="item in subjectList"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
          <div class="d1">
            <el-date-picker
              v-model="query.startDay"
              type="date"
              @change="handleChangeTimeStart"
              placeholder="选择日期时间"
              value-format="yyyy-MM-dd"
            >
            </el-date-picker>
            ~
            <el-date-picker
              v-model="query.endDay"
              type="date"
              placeholder="选择日期时间"
              @change="handleChangeTimeEnd"
              value-format="yyyy-MM-dd"
            >
            </el-date-picker>
          </div>
          <p class="p1">
            <span @click="setDate(1)" :class="[date == 1 ? 'active' : '', 's1']"
              >今天</span
            >
            <span @click="setDate(2)" :class="[date == 2 ? 'active' : '', 's1']"
              >本周</span
            >
            <span @click="setDate(3)" :class="[date == 3 ? 'active' : '', 's1']"
              >本月</span
            >
            <span @click="setDate(4)" :class="[date == 4 ? 'active' : '', 's1']"
              >本季度</span
            >
          </p>
          <el-button type="primary" round @click="_QueryData()">筛选</el-button>
        </div>
      </div>
      <div class="table-box">
9309dc5d   梁保满   任课老师接口完成
90
91
92
93
94
        <el-radio-group
          v-model="tabIndex"
          @change="changeTab"
          style="margin-bottom: 20px"
        >
f356590c   阿宝   即时测列表,分析页面
95
96
97
          <el-radio-button :label="1">单卷测练报表</el-radio-button>
          <el-radio-button :label="2">阶段测练报表</el-radio-button>
        </el-radio-group>
8ea67428   梁保满   飞书bug
98
        <div v-show="tabIndex == 1" v-loading="loading">
9309dc5d   梁保满   任课老师接口完成
99
          <el-table :data="tableData" border style="width: 100%">
f356590c   阿宝   即时测列表,分析页面
100
101
102
103
104
105
            <el-table-column
              prop="title"
              label="试卷名称"
              align="center"
            ></el-table-column>
            <el-table-column
9309dc5d   梁保满   任课老师接口完成
106
              prop="examPaperScore"
f356590c   阿宝   即时测列表,分析页面
107
108
109
110
              label="卷面分"
              align="center"
              width="100"
            ></el-table-column>
8ea67428   梁保满   飞书bug
111
112
113
114
115
            <el-table-column prop="answeredNum" label="测验人数" align="center"
              ><template slot-scope="scoped">{{
                `${scoped.row.answeredNum}/${scoped.row.classPersonNum}`
              }}</template></el-table-column
            >
f356590c   阿宝   即时测列表,分析页面
116
            <el-table-column
9309dc5d   梁保满   任课老师接口完成
117
              prop="examStartTime"
f356590c   阿宝   即时测列表,分析页面
118
119
120
              label="测验时间"
              align="center"
            ></el-table-column>
8ea67428   梁保满   飞书bug
121
122
123
124
            <el-table-column prop="avgScore" label="班平均分" align="center"
              ><template slot-scope="scoped">{{
                scoped.row.subjectiveScore == scoped.row.examPaperScore ||
                scoped.row.answerNum == 0
dbbfc6c5   梁保满   飞书优化及bug
125
                  ? "-"
8ea67428   梁保满   飞书bug
126
127
128
129
130
131
132
                  : scoped.row.avgScore
              }}</template></el-table-column
            >
            <el-table-column prop="highestScore" label="班最高分" align="center"
              ><template slot-scope="scoped">{{
                scoped.row.subjectiveScore == scoped.row.examPaperScore ||
                scoped.row.answerNum == 0
dbbfc6c5   梁保满   飞书优化及bug
133
                  ? "-"
8ea67428   梁保满   飞书bug
134
135
136
137
138
139
140
                  : scoped.row.highestScore
              }}</template></el-table-column
            >
            <el-table-column prop="lowestScore" label="班最低分" align="center"
              ><template slot-scope="scoped">{{
                scoped.row.subjectiveScore == scoped.row.examPaperScore ||
                scoped.row.answerNum == 0
dbbfc6c5   梁保满   飞书优化及bug
141
                  ? "-"
8ea67428   梁保满   飞书bug
142
143
144
                  : scoped.row.lowestScore
              }}</template></el-table-column
            >
f356590c   阿宝   即时测列表,分析页面
145
            <el-table-column
9309dc5d   梁保满   任课老师接口完成
146
              prop="excellenRate"
f356590c   阿宝   即时测列表,分析页面
147
148
149
              label="优秀数(率)"
              sortable
              align="center"
8ea67428   梁保满   飞书bug
150
151
152
              ><template slot-scope="scoped">{{
                scoped.row.subjectiveScore == scoped.row.examPaperScore ||
                scoped.row.answerNum == 0
dbbfc6c5   梁保满   飞书优化及bug
153
154
                  ? "-"
                  : scoped.row.excellenNum?`${scoped.row.excellenNum}/${scoped.row.excellenRate}%`:scoped.row.excellenNum 
8ea67428   梁保满   飞书bug
155
              }}</template></el-table-column
f356590c   阿宝   即时测列表,分析页面
156
157
            >
            <el-table-column
9309dc5d   梁保满   任课老师接口完成
158
              prop="goodRate"
f356590c   阿宝   即时测列表,分析页面
159
160
161
162
              label="良好数(率)"
              sortable
              align="center"
              ><template slot-scope="scoped"
8ea67428   梁保满   飞书bug
163
164
165
                >{{
                  scoped.row.subjectiveScore == scoped.row.examPaperScore ||
                  scoped.row.answerNum == 0
dbbfc6c5   梁保满   飞书优化及bug
166
167
                    ? "-"
                    : scoped.row.goodNum?`${scoped.row.goodNum}/${scoped.row.goodRate}%`:scoped.row.goodNum
8ea67428   梁保满   飞书bug
168
169
                }}
              </template></el-table-column
f356590c   阿宝   即时测列表,分析页面
170
171
            >
            <el-table-column
9309dc5d   梁保满   任课老师接口完成
172
              prop="passRate"
f356590c   阿宝   即时测列表,分析页面
173
174
175
176
              label="及格数(率)"
              sortable
              align="center"
              ><template slot-scope="scoped"
8ea67428   梁保满   飞书bug
177
178
179
                >{{
                  scoped.row.subjectiveScore == scoped.row.examPaperScore ||
                  scoped.row.answerNum == 0
dbbfc6c5   梁保满   飞书优化及bug
180
181
                    ?  "-"
                    : scoped.row.passNum?`${scoped.row.passNum}/${scoped.row.passRate}%`:scoped.row.passNum
8ea67428   梁保满   飞书bug
182
183
                }}
              </template></el-table-column
f356590c   阿宝   即时测列表,分析页面
184
185
            >
            <el-table-column
9309dc5d   梁保满   任课老师接口完成
186
              prop="failedRate"
f356590c   阿宝   即时测列表,分析页面
187
188
189
              label="不及格数(率)"
              sortable
              align="center"
8ea67428   梁保满   飞书bug
190
191
192
              ><template slot-scope="scoped">{{
                scoped.row.subjectiveScore == scoped.row.examPaperScore ||
                scoped.row.answerNum == 0
dbbfc6c5   梁保满   飞书优化及bug
193
194
                  ? "-"
                  : scoped.row.failedNum?`${scoped.row.failedNum}/${scoped.row.failedRate}%`:scoped.row.failedNum
8ea67428   梁保满   飞书bug
195
              }}</template></el-table-column
f356590c   阿宝   即时测列表,分析页面
196
197
198
            >
            <el-table-column label="操作" align="center">
              <template slot-scope="scoped">
8ea67428   梁保满   飞书bug
199
200
201
202
203
204
                <el-tooltip
                  v-if="scoped.row.answerNum != 0"
                  effect="dark"
                  content="详情"
                  placement="top"
                >
f356590c   阿宝   即时测列表,分析页面
205
206
207
208
209
210
211
212
                  <el-button
                    type="primary"
                    circle
                    size="mini"
                    icon="fa fa-arrow-right"
                    @click="linkTo(scoped.row)"
                  ></el-button>
                </el-tooltip>
8ea67428   梁保满   飞书bug
213
214
215
216
217
218
                <el-tooltip
                  v-else
                  effect="dark"
                  content="修改答案"
                  placement="top"
                >
f356590c   阿宝   即时测列表,分析页面
219
220
221
222
223
224
225
226
                  <el-button
                    type="primary"
                    circle
                    size="mini"
                    icon="fa fa-file-text"
                    @click="edit(scoped.row)"
                  ></el-button>
                </el-tooltip>
8ea67428   梁保满   飞书bug
227
228
229
230
231
232
233
234
235
236
237
238
239
240
                <el-tooltip
                  v-if="scoped.row.subjectiveScore == scoped.row.examPaperScore"
                  effect="dark"
                  content="导入主观题"
                  placement="top"
                >
                  <el-button
                    type="primary"
                    circle
                    size="mini"
                    icon="fa fa-cloud"
                    @click="uploadSJ(scoped.row)"
                  ></el-button>
                </el-tooltip>
f356590c   阿宝   即时测列表,分析页面
241
242
243
              </template>
            </el-table-column>
          </el-table>
9309dc5d   梁保满   任课老师接口完成
244
245
246
247
248
249
250
251
252
253
254
255
          <div class="pagination-box">
            <el-pagination
              small=""
              layout="total,prev, pager, next"
              :hide-on-single-page="true"
              :total="total"
              @current-change="changePage"
              :current-page="page"
              :page-size="size"
            >
            </el-pagination>
          </div>
f356590c   阿宝   即时测列表,分析页面
256
        </div>
8ea67428   梁保满   飞书bug
257
258
259
260
261
262
263
        <div v-show="tabIndex == 2" v-loading="loading">
          <el-table
            v-if="role == 'ROLE_JIAOSHI'"
            :data="tableData"
            border
            style="width: 100%"
          >
f356590c   阿宝   即时测列表,分析页面
264
            <el-table-column
9309dc5d   梁保满   任课老师接口完成
265
              prop="studentCode"
f356590c   阿宝   即时测列表,分析页面
266
267
268
269
270
              label="学号"
              align="center"
              fixed
            ></el-table-column>
            <el-table-column
9309dc5d   梁保满   任课老师接口完成
271
              prop="studentName"
f356590c   阿宝   即时测列表,分析页面
272
273
274
275
              label="姓名"
              fixed
              align="center"
            ></el-table-column>
f356590c   阿宝   即时测列表,分析页面
276
277
278
279
280
281
282
            <el-table-column
              align="center"
              v-for="(item, index) in answerList"
              :key="index"
              :label="item.title"
            >
              <el-table-column
9309dc5d   梁保满   任课老师接口完成
283
                :prop="'score' + index"
8ea67428   梁保满   飞书bug
284
                :label="index == 0 ? '总分' : '成绩'"
f356590c   阿宝   即时测列表,分析页面
285
286
287
                align="center"
              ></el-table-column>
              <el-table-column
9309dc5d   梁保满   任课老师接口完成
288
                :prop="'classRank' + index"
f356590c   阿宝   即时测列表,分析页面
289
290
291
292
293
                label="班名"
                align="center"
              ></el-table-column>
            </el-table-column>
          </el-table>
dbbfc6c5   梁保满   飞书优化及bug
294
          <el-table :max-height="tableMaxHeight" v-else :data="tableData" border style="width: 100%">
8ea67428   梁保满   飞书bug
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
            <el-table-column
              prop="studentCode"
              label="学号"
              align="center"
              fixed
            ></el-table-column>
            <el-table-column
              prop="studentName"
              label="姓名"
              fixed
              align="center"
            ></el-table-column>
            <el-table-column
              align="center"
              v-for="(item, index) in answerList"
              :key="index"
              :label="item"
            >
              <el-table-column
                :prop="'examCount' + item"
                label="测练数"
                align="center"
              ></el-table-column>
              <el-table-column
                :prop="'participationCount' + item"
                label="参与数"
                align="center"
              ></el-table-column>
              <el-table-column
                :prop="'score' + item"
                label="总分"
                align="center"
              ></el-table-column>
              <el-table-column
                :prop="'classRank' + item"
                label="班名"
                align="center"
              ></el-table-column>
            </el-table-column>
          </el-table>
f356590c   阿宝   即时测列表,分析页面
335
336
337
338
339
340
341
        </div>
        <p class="down" v-if="tabIndex == 2">
          <el-button type="info" plain round icon="fa fa-cloud-download"
            >导出报表</el-button
          >
        </p>
      </div>
8ea67428   梁保满   飞书bug
342
343
344
345
346
347
348
349
350
351
352
353
354
355
      <el-dialog title="导入主观题分数" :visible.sync="diaUp" width="600">
        <up-load :url="url" :examId="examId" fileName="教师名单">
          <template slot="down">
            <p class="down-txt">
              第一步:下载模板并编辑完成学生分数
              <el-link type="danger" @click="downExcel">模板下载</el-link> 。
            </p>
            <p class="down-txt">第二步:上传完成编辑的模板文件并导入。</p>
          </template>
        </up-load>
        <div class="dialog-footer" slot="footer">
          <el-button @click="diaUp = false">取 消</el-button>
        </div>
      </el-dialog>
aed43d3a   阿宝   即时测修改答案
356
      <div class="edit-dia" v-show="dialogVisible" height="100%">
9309dc5d   梁保满   任课老师接口完成
357
        <editAnswer
8ea67428   梁保满   飞书bug
358
          ref="editAnswer"
9309dc5d   梁保满   任课老师接口完成
359
360
361
362
363
          :title="form.title"
          :score="form.examPaperScore"
          @cancel="cancel"
          @saveSuccess="saveSuccess"
        />
aed43d3a   阿宝   即时测修改答案
364
      </div>
4c4f7640   梁保满   路由表,路由前端文件
365
366
367
368
    </div>
  </template>
  
  <script>
8ea67428   梁保满   飞书bug
369
  import { formatDate, downloadFile } from "utils";
9309dc5d   梁保满   任课老师接口完成
370
  import editAnswer from "./editAnswer.vue";
4c4f7640   梁保满   路由表,路由前端文件
371
  export default {
9309dc5d   梁保满   任课老师接口完成
372
    components: { editAnswer },
f356590c   阿宝   即时测列表,分析页面
373
374
    data() {
      return {
dbbfc6c5   梁保满   飞书优化及bug
375
        tableMaxHeight:300,
f356590c   阿宝   即时测列表,分析页面
376
377
        role: "",
        loading: false,
8ea67428   梁保满   飞书bug
378
379
380
        diaUp: false,
        url: "/api_html/teaching/importSubjectiveScore",
        examId: "",
f356590c   阿宝   即时测列表,分析页面
381
        dialogVisible: false,
9309dc5d   梁保满   任课老师接口完成
382
383
384
385
        form: {
          id: "",
          title: "",
          examPaperScore: "",
aed43d3a   阿宝   即时测修改答案
386
        },
f356590c   阿宝   即时测列表,分析页面
387
388
389
390
        date: "", //今天-昨天-本周
        query: {
          //搜索条件
          classId: "",
9309dc5d   梁保满   任课老师接口完成
391
          subjectNames: "",
f356590c   阿宝   即时测列表,分析页面
392
393
394
395
396
397
398
          startDay: "",
          endDay: "",
          day: "",
        },
        classList: [], //班级
        subjectList: [], //科目
        tabIndex: 1, //选项卡
9309dc5d   梁保满   任课老师接口完成
399
400
401
402
403
        tableData: [],
        answerList: [], //设置多卷内容供tableStage表格数据用
        page: 1,
        size: 20,
        total: 0,
f356590c   阿宝   即时测列表,分析页面
404
405
406
      };
    },
    async created() {
45504a95   阿宝   即时测页面,以及小题修改答案
407
408
409
      this.role = this.$store.getters.info.permissions.find(
        (item) => item.roleName == this.$store.getters.info.showRoleName
      )?.role;
f356590c   阿宝   即时测列表,分析页面
410
411
      await this._QueryClassList();
      await this._QuerySubjectList();
9309dc5d   梁保满   任课老师接口完成
412
      await this.setDate(1);
f356590c   阿宝   即时测列表,分析页面
413
414
415
416
417
418
419
      let startDay = this.query?.startDay;
      if (!startDay) {
        this.query.startDay = new Date();
        this.query.endDay = new Date();
      }
    },
    methods: {
dbbfc6c5   梁保满   飞书优化及bug
420
421
422
423
424
425
426
427
428
429
430
       changeSub(val) {
        let sub;
        if (val && val.length) {
          let leng = val.length - 1;
          sub = val[leng];
        }
        console.log(val)
        this.query.subjectNames = val.filter((item) => {
          return sub != "全部" ? item != "全部" : item == "全部";
        });
      },
f356590c   阿宝   即时测列表,分析页面
431
432
433
434
435
436
      linkTo(obj) {
        //去详情
        this.$router.push({
          path: "/testAnalysis",
          query: {
            id: obj.id,
9309dc5d   梁保满   任课老师接口完成
437
438
            title: obj.title,
            score: obj.examPaperScore,
f356590c   阿宝   即时测列表,分析页面
439
440
441
          },
        });
      },
8ea67428   梁保满   飞书bug
442
443
444
445
      uploadSJ(obj) {
        this.examId = obj.id;
        this.diaUp = true;
      },
9309dc5d   梁保满   任课老师接口完成
446
447
      cancel() {
        this.dialogVisible = false;
aed43d3a   阿宝   即时测修改答案
448
      },
9309dc5d   梁保满   任课老师接口完成
449
450
451
      saveSuccess() {
        this.dialogVisible = false;
        this._QueryData();
aed43d3a   阿宝   即时测修改答案
452
      },
f356590c   阿宝   即时测列表,分析页面
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
      setDate(index) {
        const that = this;
        this.date = index == this.date ? "" : index;
        let aYear = new Date().getFullYear();
        let aMonth = new Date().getMonth() + 1;
        that.query.day = "";
        that.query.startDay = "";
        that.query.endDay = "";
        switch (index) {
          case 1:
            that.query.day = formatDate(new Date(), "yyyy-MM-dd");
            that.query.startDay = that.query.day;
            that.query.endDay = that.query.day;
            break;
          case 2:
            let day = new Date().getDay();
            if (day == 0) {
              //中国式星期天是一周的最后一天
              day = 7;
            }
8ea67428   梁保满   飞书bug
473
            day--;
f356590c   阿宝   即时测列表,分析页面
474
475
476
477
478
479
480
481
482
483
            let aTime = new Date().getTime() - 24 * 60 * 60 * 1000 * day;
            that.query.startDay = formatDate(new Date(aTime), "yyyy-MM-dd");
            that.query.endDay = formatDate(new Date(), "yyyy-MM-dd");
            break;
          case 3:
            aMonth = aMonth < 10 ? "0" + aMonth : aMonth;
            that.query.startDay = `${aYear}-${aMonth}-01`;
            that.query.endDay = formatDate(new Date(), "yyyy-MM-dd");
            break;
          case 4:
9309dc5d   梁保满   任课老师接口完成
484
            if (aMonth > 0 && aMonth < 4) {
f356590c   阿宝   即时测列表,分析页面
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
              aMonth = "01";
            } else if (aMonth > 3 && aMonth < 7) {
              aMonth = "04";
            } else if (aMonth > 6 && aMonth < 10) {
              aMonth = "07";
            } else {
              aMonth = "10";
            }
  
            aMonth = aMonth < 10 ? "0" + aMonth : aMonth;
            that.query.startDay = `${aYear}-${aMonth}-01`;
            that.query.endDay = formatDate(new Date(), "yyyy-MM-dd");
            break;
        }
        this.page = 1;
        this._QueryData();
      },
      handleChangeTimeStart(val) {
        this.query.day = "";
        this.date = "";
        if (this.query.endDay) {
          if (new Date(val).getTime() > new Date(this.query.endDay).getTime()) {
            this.$message.error("任务结束时间不能任务开始时间前面,请重新设置");
            this.query.startDay = "";
          }
        }
      },
      handleChangeTimeEnd(val) {
        this.query.day = "";
        this.date = "";
        if (this.query.startDay) {
          if (new Date(val).getTime() < new Date(this.query.startDay).getTime()) {
            this.$message.error("任务结束时间不能任务开始时间前面,请重新设置");
            this.query.endDay = "";
          }
        }
      },
9309dc5d   梁保满   任课老师接口完成
522
523
524
      changePage(page) {
        this.page = page;
        this._QueryData();
aed43d3a   阿宝   即时测修改答案
525
      },
f356590c   阿宝   即时测列表,分析页面
526
      edit(item) {
9309dc5d   梁保满   任课老师接口完成
527
        this.form = { ...item };
8ea67428   梁保满   飞书bug
528
        this.$refs.editAnswer.edit(this.form.id);
f356590c   阿宝   即时测列表,分析页面
529
530
        this.dialogVisible = true;
      },
9309dc5d   梁保满   任课老师接口完成
531
      changeTab() {
dbbfc6c5   梁保满   飞书优化及bug
532
        this.tableMaxHeight = this.$refs.main.offsetHeight-100
9309dc5d   梁保满   任课老师接口完成
533
534
        this.page = 1;
        this._QueryData();
aed43d3a   阿宝   即时测修改答案
535
      },
8ea67428   梁保满   飞书bug
536
537
538
539
540
541
542
543
544
545
546
547
548
      async downExcel() {
        let data = await this.$request.subjectiveScoreTemplate({
          examId: this.id,
        });
        if (data && !data.code) {
          let blob = new Blob([data], {
            type: "application/vnd.ms-excel;charset=utf-8",
          });
          downloadFile(`主观题模版.xlsx`, blob);
        } else {
          this.$message.error(data.message);
        }
      },
f356590c   阿宝   即时测列表,分析页面
549
      async changClazz() {
9309dc5d   梁保满   任课老师接口完成
550
        this.page = 1;
f356590c   阿宝   即时测列表,分析页面
551
        await this._QuerySubjectList();
9309dc5d   梁保满   任课老师接口完成
552
        await this._QueryData();
f356590c   阿宝   即时测列表,分析页面
553
554
      },
      async _QueryClassList() {
9309dc5d   梁保满   任课老师接口完成
555
556
557
558
559
        const fetchClassList =
          this.role == "ROLE_BANZHUREN"
            ? this.$request.cTClassList
            : this.$request.tClassList;
        const { data, status, info } = await fetchClassList();
f356590c   阿宝   即时测列表,分析页面
560
561
562
563
        if (status === 0) {
          this.classList = data.list.map((item) => {
            return {
              value: item.classId,
45504a95   阿宝   即时测页面,以及小题修改答案
564
              label: item.className,
f356590c   阿宝   即时测列表,分析页面
565
566
567
568
569
570
571
572
            };
          });
          this.query.classId = this.classList[0]?.value;
        } else {
          this.$message.error(info);
        }
      },
      async _QuerySubjectList() {
9309dc5d   梁保满   任课老师接口完成
573
574
575
576
577
578
        const fetchSubjectList =
          this.role == "ROLE_BANZHUREN"
            ? this.$request.cTSubjectList
            : this.$request.tSubjectList;
  
        const { data, status, info } = await fetchSubjectList({
f356590c   阿宝   即时测列表,分析页面
579
580
581
582
          classId: this.query.classId,
        });
        if (status === 0) {
          this.subjectList =
45504a95   阿宝   即时测页面,以及小题修改答案
583
            data.subjectNames?.map((item) => {
f356590c   阿宝   即时测列表,分析页面
584
              return {
45504a95   阿宝   即时测页面,以及小题修改答案
585
586
                value: item,
                label: item,
f356590c   阿宝   即时测列表,分析页面
587
588
              };
            }) || [];
aed43d3a   阿宝   即时测修改答案
589
          if (this.role == "ROLE_BANZHUREN") {
f356590c   阿宝   即时测列表,分析页面
590
            this.subjectList.unshift({
9309dc5d   梁保满   任课老师接口完成
591
              value: "全部",
f356590c   阿宝   即时测列表,分析页面
592
593
              label: "全部",
            });
9309dc5d   梁保满   任课老师接口完成
594
            this.query.subjectNames.push(this.subjectList[0]?.value);
aed43d3a   阿宝   即时测修改答案
595
          } else {
9309dc5d   梁保满   任课老师接口完成
596
            this.query.subjectNames = this.subjectList[0]?.value;
f356590c   阿宝   即时测列表,分析页面
597
          }
f356590c   阿宝   即时测列表,分析页面
598
599
600
601
602
        } else {
          this.$message.error(info);
        }
      },
      async _QueryData() {
9309dc5d   梁保满   任课老师接口完成
603
604
605
606
607
608
609
610
611
        this.tableData = [];
        if (this.tabIndex == 1) {
          this.examReportList();
        } else {
          this.phaseExamReport();
        }
      },
      //单卷测练
      async examReportList() {
f356590c   阿宝   即时测列表,分析页面
612
        this.loading = true;
f356590c   阿宝   即时测列表,分析页面
613
614
615
616
617
618
        let query = {};
        for (let key in this.query) {
          if (this.query[key] != "") {
            query[key] = this.query[key];
          }
        }
9309dc5d   梁保满   任课老师接口完成
619
620
621
622
        if (this.role != "ROLE_BANZHUREN") {
          query.subjectNames = [query.subjectNames];
        } else {
          if (
8ea67428   梁保满   飞书bug
623
            query["subjectNames"] &&
9309dc5d   梁保满   任课老师接口完成
624
625
626
627
628
629
630
            query["subjectNames"].length == 1 &&
            query["subjectNames"][0] == "全部"
          ) {
            query["subjectNames"] = this.subjectList.map((item) => {
              return item.value;
            });
            query["subjectNames"].shift();
dbbfc6c5   梁保满   飞书优化及bug
631
632
633
634
          }
           if (!query["subjectNames"]) {
            this.$message.warning("请选择科目");
            return;
9309dc5d   梁保满   任课老师接口完成
635
636
637
          }
        }
        const { data, status, info } = await this.$request.examReportList({
f356590c   阿宝   即时测列表,分析页面
638
          ...query,
9309dc5d   梁保满   任课老师接口完成
639
640
          page: this.page,
          size: this.size,
f356590c   阿宝   即时测列表,分析页面
641
642
643
        });
        this.loading = false;
        if (status === 0) {
9309dc5d   梁保满   任课老师接口完成
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
          this.tableData = (data?.list && [...data?.list]) || [];
          this.total = data.count;
        } else {
          this.$message.error(info);
        }
      },
      //多卷测练
      async phaseExamReport() {
        this.loading = true;
        let query = {};
        for (let key in this.query) {
          if (this.query[key] != "") {
            if (key == "subjectNames" && this.role != "ROLE_BANZHUREN") {
              query["subjectName"] = this.query[key];
            } else {
              query[key] = this.query[key];
            }
          }
        }
        if (this.role == "ROLE_BANZHUREN") {
          if (
8ea67428   梁保满   飞书bug
665
666
            query["subjectNames"] &&
            query["subjectNames"]?.length == 1 &&
9309dc5d   梁保满   任课老师接口完成
667
668
669
670
671
            query["subjectNames"][0] == "全部"
          ) {
            query["subjectNames"] = this.subjectList.map((item) => {
              return item.value;
            });
8ea67428   梁保满   飞书bug
672
            query["subjectNames"]?.shift();
9309dc5d   梁保满   任课老师接口完成
673
674
675
676
677
678
679
680
681
682
683
684
          }
        }
        const phaseExamReport =
          this.role == "ROLE_BANZHUREN"
            ? this.$request.cTPhaseExamReport
            : this.$request.phaseExamReport;
        const { data, status, info } = await phaseExamReport({
          ...query,
        });
        this.loading = false;
        if (status === 0) {
          this.total = data.count;
8ea67428   梁保满   飞书bug
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
          if (this.role == "ROLE_BANZHUREN") {
            let subjectName = [];
            this.tableData = data?.list.map((item) => {
              let params = {};
              item.dataList.map((items, index) => {
                if (!subjectName.includes(items.subjectName)) {
                  subjectName.push(items.subjectName);
                }
                params["examCount" + items.subjectName] = items.examCount;
                params["participationCount" + items.subjectName] =
                  items.participationCount;
                params["score" + items.subjectName] = items.score;
                params["classRank" + items.subjectName] = items.classRank;
              });
              return {
                ...item,
                ...params,
              };
            });
            this.answerList = [...subjectName];
          } else {
            let dataIdsList = [],
              dataList = [];
            data?.list.map((item) => {
              item.examList.map((items) => {
9309dc5d   梁保满   任课老师接口完成
710
711
712
713
                if (!dataIdsList.includes(items.title)) {
                  dataIdsList.push(items.title);
                  dataList.push(items);
                }
8ea67428   梁保满   飞书bug
714
              });
9309dc5d   梁保满   任课老师接口完成
715
            });
8ea67428   梁保满   飞书bug
716
717
718
719
720
721
722
            console.log(dataList);
            this.tableData = data?.list.map((item) => {
              let params = {};
              dataIdsList.map((ids, index) => {
                params["score" + index] = "--";
                params["classRank" + index] = "--";
                item.examList.map((items) => {
9309dc5d   梁保满   任课老师接口完成
723
724
725
726
                  if (items.title == ids) {
                    params["score" + index] = items.score;
                    params["classRank" + index] = items.classRank;
                  }
8ea67428   梁保满   飞书bug
727
                });
9309dc5d   梁保满   任课老师接口完成
728
              });
8ea67428   梁保满   飞书bug
729
730
731
732
              return {
                ...item,
                ...params,
              };
9309dc5d   梁保满   任课老师接口完成
733
            });
8ea67428   梁保满   飞书bug
734
735
            this.answerList = dataList;
          }
f356590c   阿宝   即时测列表,分析页面
736
737
738
739
740
741
        } else {
          this.$message.error(info);
        }
      },
    },
  };
4c4f7640   梁保满   路由表,路由前端文件
742
743
  </script>
  
9309dc5d   梁保满   任课老师接口完成
744
745
746
747
748
749
750
751
752
753
  <style>
  div::-webkit-scrollbar {
    width: 3px;
    height: 10px;
  }
  div::-webkit-scrollbar-thumb {
    border-radius: 10px;
    background-color: #ccc;
  }
  </style>
f356590c   阿宝   即时测列表,分析页面
754
  <style lang="scss" scoped>
9309dc5d   梁保满   任课老师接口完成
755
756
  .page-container {
    position: relative;
dbbfc6c5   梁保满   飞书优化及bug
757
    min-height: 100%;
9309dc5d   梁保满   任课老师接口完成
758
    &.active {
9309dc5d   梁保满   任课老师接口完成
759
760
761
      overflow: hidden;
    }
  }
f356590c   阿宝   即时测列表,分析页面
762
763
764
765
766
767
768
769
770
771
772
773
  .table-box {
    margin: 0 20px;
    padding: 16px;
    background: #f8f8f8;
    border-radius: 5px;
    :deep(.fa-arrow-right) {
      padding-left: 2px;
    }
    :deep(.fa-file-text) {
      padding-left: 2px;
    }
  }
f356590c   阿宝   即时测列表,分析页面
774
775
776
  .down {
    padding-top: 16px;
  }
aed43d3a   阿宝   即时测修改答案
777
778
779
780
781
782
783
  .edit-dia {
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    width: 100%;
9309dc5d   梁保满   任课老师接口完成
784
    height: calc(100vh - 70px);
aed43d3a   阿宝   即时测修改答案
785
786
787
    background: #fff;
    overflow-y: auto;
    z-index: 10;
aed43d3a   阿宝   即时测修改答案
788
  }
4c4f7640   梁保满   路由表,路由前端文件
789
  </style>