Blame view

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