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 | 27 | </div> |
| 28 | 28 | </div> |
| 29 | 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 | 49 | </div> |
| 40 | 50 | <div id="print-content" class="table-box" v-loading="loading"> |
| ... | ... | @@ -444,7 +454,12 @@ |
| 444 | 454 | > |
| 445 | 455 | </div> |
| 446 | 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 | 463 | <up-load :url="url" :examId="id" @upSuccess="upSuccess"> |
| 449 | 464 | <template slot="down"> |
| 450 | 465 | <p class="down-txt"> |
| ... | ... | @@ -458,6 +473,55 @@ |
| 458 | 473 | <el-button @click="diaUp = false">取 消</el-button> |
| 459 | 474 | </div> |
| 460 | 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 | 525 | </div> |
| 462 | 526 | </div> |
| 463 | 527 | </template> |
| ... | ... | @@ -468,18 +532,20 @@ export default { |
| 468 | 532 | data() { |
| 469 | 533 | return { |
| 470 | 534 | role: "", |
| 471 | - status: 0, | |
| 535 | + status: 0,// 1:已归档试卷 | |
| 472 | 536 | tableMaxHeight: 600, |
| 473 | 537 | loading: false, |
| 474 | 538 | exportLoading: false, |
| 475 | 539 | diaUp: false, |
| 476 | 540 | url: "/api_html/teaching/importSubjectiveScore", |
| 477 | 541 | id: "", |
| 542 | + classId: "", | |
| 543 | + subjectName: "", | |
| 478 | 544 | title: "", |
| 479 | 545 | score: "", |
| 480 | 546 | tabList: ["试题分析", "成绩排名", "小题分报表", "作答明细表"], |
| 481 | 547 | type: 0, |
| 482 | - paperModifyLog: { | |
| 548 | + paperModifyLog: { //修改信息 | |
| 483 | 549 | realName: "", |
| 484 | 550 | modifiedTime: "", |
| 485 | 551 | }, |
| ... | ... | @@ -507,6 +573,17 @@ export default { |
| 507 | 573 | page: 1, |
| 508 | 574 | size: 20, |
| 509 | 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 | 589 | created() { |
| ... | ... | @@ -516,6 +593,8 @@ export default { |
| 516 | 593 | this.id = this.$route.query.id; |
| 517 | 594 | this.status = this.$route.query.status ? this.$route.query.status : 0; |
| 518 | 595 | this.title = this.$route.query.title || ""; |
| 596 | + this.classId = this.$route.query.classId || ""; | |
| 597 | + this.subjectName = this.$route.query.subjectName || ""; | |
| 519 | 598 | this._QueryData(); |
| 520 | 599 | }, |
| 521 | 600 | methods: { |
| ... | ... | @@ -569,6 +648,42 @@ export default { |
| 569 | 648 | this.page = page; |
| 570 | 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 | 687 | async _QueryData() { |
| 573 | 688 | this.examDetail(); |
| 574 | 689 | this.examStudentReport(); |
| ... | ... | @@ -586,6 +701,12 @@ export default { |
| 586 | 701 | this.paperModifyLog = { ...data?.paperModifyLog }; |
| 587 | 702 | } |
| 588 | 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 | 710 | } else { |
| 590 | 711 | this.$message.error(info); |
| 591 | 712 | } |
| ... | ... | @@ -625,7 +746,7 @@ export default { |
| 625 | 746 | detail.map((items, index) => { |
| 626 | 747 | params["que" + items.id] = items.id; |
| 627 | 748 | params["score" + items.id] = String(items.score).includes(".") |
| 628 | - ? Number(items.score).toFixed(2) | |
| 749 | + ? Number(items.score) | |
| 629 | 750 | : items.score; |
| 630 | 751 | params["answer" + items.id] = |
| 631 | 752 | items.answer == 1 ? "✓" : items.answer == 2 ? "✗" : items.answer; |
| ... | ... | @@ -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 | 1014 | </style> |
| 879 | 1015 | \ No newline at end of file | ... | ... |