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 |