Commit 3ac930bd4754ff163e40570720aecff95fc3818b
1 parent
ded06772
低分设置
Showing
1 changed file
with
148 additions
and
12 deletions
src/views/basic/test/analysis.vue
@@ -27,14 +27,24 @@ | @@ -27,14 +27,24 @@ | ||
27 | </div> | 27 | </div> |
28 | </div> | 28 | </div> |
29 | <div class="page-content"> | 29 | <div class="page-content"> |
30 | - <div class="tab-box"> | ||
31 | - <span | ||
32 | - v-for="(item, index) in tabList" | ||
33 | - :key="item" | ||
34 | - class="tab-item" | ||
35 | - :class="type == index ? 'active' : ''" | ||
36 | - @click="setType(index)" | ||
37 | - >{{ item }}</span | 30 | + <div class="content-header"> |
31 | + <div class="tab-box"> | ||
32 | + <span | ||
33 | + v-for="(item, index) in tabList" | ||
34 | + :key="item" | ||
35 | + class="tab-item" | ||
36 | + :class="type == index ? 'active' : ''" | ||
37 | + @click="setType(index)" | ||
38 | + >{{ item }}</span | ||
39 | + > | ||
40 | + </div> | ||
41 | + <el-button | ||
42 | + v-if="!status" | ||
43 | + class="setMinScore" | ||
44 | + @click="diaMinScore = true" | ||
45 | + round | ||
46 | + size="small" | ||
47 | + >设置低分值</el-button | ||
38 | > | 48 | > |
39 | </div> | 49 | </div> |
40 | <div id="print-content" class="table-box" v-loading="loading"> | 50 | <div id="print-content" class="table-box" v-loading="loading"> |
@@ -444,7 +454,12 @@ | @@ -444,7 +454,12 @@ | ||
444 | > | 454 | > |
445 | </div> | 455 | </div> |
446 | </div> | 456 | </div> |
447 | - <el-dialog :close-on-click-modal="false" title="导入主观题分数" :visible.sync="diaUp" width="600"> | 457 | + <el-dialog |
458 | + :close-on-click-modal="false" | ||
459 | + title="导入主观题分数" | ||
460 | + :visible.sync="diaUp" | ||
461 | + width="600" | ||
462 | + > | ||
448 | <up-load :url="url" :examId="id" @upSuccess="upSuccess"> | 463 | <up-load :url="url" :examId="id" @upSuccess="upSuccess"> |
449 | <template slot="down"> | 464 | <template slot="down"> |
450 | <p class="down-txt"> | 465 | <p class="down-txt"> |
@@ -458,6 +473,55 @@ | @@ -458,6 +473,55 @@ | ||
458 | <el-button @click="diaUp = false">取 消</el-button> | 473 | <el-button @click="diaUp = false">取 消</el-button> |
459 | </div> | 474 | </div> |
460 | </el-dialog> | 475 | </el-dialog> |
476 | + <el-dialog | ||
477 | + :close-on-click-modal="false" | ||
478 | + title="低分区间设置" | ||
479 | + :visible.sync="diaMinScore" | ||
480 | + width="480px" | ||
481 | + @closed="closeDiaMinScore" | ||
482 | + > | ||
483 | + <el-form> | ||
484 | + <el-form-item label="低分设置模式:"> | ||
485 | + <el-select v-model="lowRange.type" @change="changeScore"> | ||
486 | + <el-option label="按分数设置" :value="0"></el-option> | ||
487 | + <el-option label="按已考人数比例" :value="1"></el-option> | ||
488 | + <el-option label="按分数比例设置(按题目)" :value="2"></el-option> | ||
489 | + </el-select> | ||
490 | + </el-form-item> | ||
491 | + <el-form-item label="低分区间:"> | ||
492 | + <el-input | ||
493 | + class="score-ipt" | ||
494 | + type="number" | ||
495 | + v-model="lowRange.range[0]" | ||
496 | + :min="0" | ||
497 | + :max="100" | ||
498 | + @input="lowRange.range[1] > 100 ? (lowRange.range[1] = 100) : ''" | ||
499 | + @keydown.native="keydownRange($event)" | ||
500 | + ></el-input | ||
501 | + >{{ lowRange.type != 0 ? "%" : "分" }}(含) | ||
502 | + <el-input | ||
503 | + class="score-ipt" | ||
504 | + type="number" | ||
505 | + v-model="lowRange.range[1]" | ||
506 | + :min="0" | ||
507 | + :max="100" | ||
508 | + @input="lowRange.range[1] > 100 ? (lowRange.range[1] = 100) : ''" | ||
509 | + @keydown.native="keydownRange($event)" | ||
510 | + ></el-input | ||
511 | + >{{ lowRange.type != 0 ? "%" : "分" }}(含) | ||
512 | + </el-form-item> | ||
513 | + </el-form> | ||
514 | + | ||
515 | + <div | ||
516 | + class="dialog-footer" | ||
517 | + slot="footer" | ||
518 | + align="center" | ||
519 | + v-loading="loadingTange" | ||
520 | + > | ||
521 | + <el-button type="danger" @click="_SavelowRange">保存</el-button> | ||
522 | + <el-button @click="diaMinScore = false">取 消</el-button> | ||
523 | + </div> | ||
524 | + </el-dialog> | ||
461 | </div> | 525 | </div> |
462 | </div> | 526 | </div> |
463 | </template> | 527 | </template> |
@@ -468,18 +532,20 @@ export default { | @@ -468,18 +532,20 @@ export default { | ||
468 | data() { | 532 | data() { |
469 | return { | 533 | return { |
470 | role: "", | 534 | role: "", |
471 | - status: 0, | 535 | + status: 0,// 1:已归档试卷 |
472 | tableMaxHeight: 600, | 536 | tableMaxHeight: 600, |
473 | loading: false, | 537 | loading: false, |
474 | exportLoading: false, | 538 | exportLoading: false, |
475 | diaUp: false, | 539 | diaUp: false, |
476 | url: "/api_html/teaching/importSubjectiveScore", | 540 | url: "/api_html/teaching/importSubjectiveScore", |
477 | id: "", | 541 | id: "", |
542 | + classId: "", | ||
543 | + subjectName: "", | ||
478 | title: "", | 544 | title: "", |
479 | score: "", | 545 | score: "", |
480 | tabList: ["试题分析", "成绩排名", "小题分报表", "作答明细表"], | 546 | tabList: ["试题分析", "成绩排名", "小题分报表", "作答明细表"], |
481 | type: 0, | 547 | type: 0, |
482 | - paperModifyLog: { | 548 | + paperModifyLog: { //修改信息 |
483 | realName: "", | 549 | realName: "", |
484 | modifiedTime: "", | 550 | modifiedTime: "", |
485 | }, | 551 | }, |
@@ -507,6 +573,17 @@ export default { | @@ -507,6 +573,17 @@ export default { | ||
507 | page: 1, | 573 | page: 1, |
508 | size: 20, | 574 | size: 20, |
509 | total: 0, | 575 | total: 0, |
576 | + // 设置低分值 | ||
577 | + loadingTange: false, | ||
578 | + diaMinScore: false, | ||
579 | + lowRange: { | ||
580 | + type: 0, | ||
581 | + range: [60, 0], | ||
582 | + }, | ||
583 | + defaultLowRange: { | ||
584 | + type: 0, | ||
585 | + range: [], | ||
586 | + }, | ||
510 | }; | 587 | }; |
511 | }, | 588 | }, |
512 | created() { | 589 | created() { |
@@ -516,6 +593,8 @@ export default { | @@ -516,6 +593,8 @@ export default { | ||
516 | this.id = this.$route.query.id; | 593 | this.id = this.$route.query.id; |
517 | this.status = this.$route.query.status ? this.$route.query.status : 0; | 594 | this.status = this.$route.query.status ? this.$route.query.status : 0; |
518 | this.title = this.$route.query.title || ""; | 595 | this.title = this.$route.query.title || ""; |
596 | + this.classId = this.$route.query.classId || ""; | ||
597 | + this.subjectName = this.$route.query.subjectName || ""; | ||
519 | this._QueryData(); | 598 | this._QueryData(); |
520 | }, | 599 | }, |
521 | methods: { | 600 | methods: { |
@@ -569,6 +648,42 @@ export default { | @@ -569,6 +648,42 @@ export default { | ||
569 | this.page = page; | 648 | this.page = page; |
570 | this.examQuestionReport(); | 649 | this.examQuestionReport(); |
571 | }, | 650 | }, |
651 | + // 切换低分设置类型设置默认分值 | ||
652 | + changeScore() { | ||
653 | + this.lowRange.range = [...this.defaultLowRange.range]; | ||
654 | + }, | ||
655 | + // 禁止输入负数 | ||
656 | + keydownRange(event) { | ||
657 | + if (event.key == "-" || event.key == "e") { | ||
658 | + event.returnValue = ""; | ||
659 | + } | ||
660 | + }, | ||
661 | + // 关闭低分设置 | ||
662 | + closeDiaMinScore() { | ||
663 | + this.lowRange.type = this.defaultLowRange.type; | ||
664 | + this.lowRange.range = [...this.defaultLowRange.range]; | ||
665 | + }, | ||
666 | + // 保存低分设置 | ||
667 | + async _SavelowRange() { | ||
668 | + if(this.lowRange.range[0].trim() == "" || this.lowRange.range[1].trim() == ""){ | ||
669 | + this.$message.warning("请补全低分设置!"); | ||
670 | + return | ||
671 | + } | ||
672 | + this.loadingTange = true; | ||
673 | + let { data, status, info } = await this.$request.setLowRange({ | ||
674 | + classId: this.classId, | ||
675 | + subjectName: this.subjectName, | ||
676 | + ...this.lowRange, | ||
677 | + }); | ||
678 | + this.loadingTange = false; | ||
679 | + if (status === 0) { | ||
680 | + this.$message.success(info); | ||
681 | + this.diaMinScore = false; | ||
682 | + this.examDetail(); | ||
683 | + } else { | ||
684 | + this.$message.error(info); | ||
685 | + } | ||
686 | + }, | ||
572 | async _QueryData() { | 687 | async _QueryData() { |
573 | this.examDetail(); | 688 | this.examDetail(); |
574 | this.examStudentReport(); | 689 | this.examStudentReport(); |
@@ -586,6 +701,12 @@ export default { | @@ -586,6 +701,12 @@ export default { | ||
586 | this.paperModifyLog = { ...data?.paperModifyLog }; | 701 | this.paperModifyLog = { ...data?.paperModifyLog }; |
587 | } | 702 | } |
588 | this.examReport = { ...data?.examReport }; | 703 | this.examReport = { ...data?.examReport }; |
704 | + this.defaultLowRange = data.lowRange || { | ||
705 | + type: 1, | ||
706 | + range: [60, 0], | ||
707 | + }; | ||
708 | + this.lowRange.type = this.defaultLowRange.type; | ||
709 | + this.lowRange.range = [...this.defaultLowRange.range]; | ||
589 | } else { | 710 | } else { |
590 | this.$message.error(info); | 711 | this.$message.error(info); |
591 | } | 712 | } |
@@ -625,7 +746,7 @@ export default { | @@ -625,7 +746,7 @@ export default { | ||
625 | detail.map((items, index) => { | 746 | detail.map((items, index) => { |
626 | params["que" + items.id] = items.id; | 747 | params["que" + items.id] = items.id; |
627 | params["score" + items.id] = String(items.score).includes(".") | 748 | params["score" + items.id] = String(items.score).includes(".") |
628 | - ? Number(items.score).toFixed(2) | 749 | + ? Number(items.score) |
629 | : items.score; | 750 | : items.score; |
630 | params["answer" + items.id] = | 751 | params["answer" + items.id] = |
631 | items.answer == 1 ? "✓" : items.answer == 2 ? "✗" : items.answer; | 752 | items.answer == 1 ? "✓" : items.answer == 2 ? "✗" : items.answer; |
@@ -875,4 +996,19 @@ div::-webkit-scrollbar-thumb { | @@ -875,4 +996,19 @@ div::-webkit-scrollbar-thumb { | ||
875 | } | 996 | } |
876 | } | 997 | } |
877 | } | 998 | } |
999 | + | ||
1000 | +// 设置低分值 | ||
1001 | +.content-header { | ||
1002 | + width: 100%; | ||
1003 | + position: relative; | ||
1004 | + .setMinScore { | ||
1005 | + position: absolute; | ||
1006 | + bottom: 0; | ||
1007 | + right: 0px; | ||
1008 | + } | ||
1009 | +} | ||
1010 | +.score-ipt { | ||
1011 | + width: 80px; | ||
1012 | + margin: 0 5px; | ||
1013 | +} | ||
878 | </style> | 1014 | </style> |
879 | \ No newline at end of file | 1015 | \ No newline at end of file |