Commit 574f1a90bbf62284b1b1c94666c6950de531ecb1

Authored by LH_PC
1 parent ead476dd

fix:修改年级组长/任课老师缺少测验成绩单主观分列

src/config/index.js
1 const modeUrl = { 1 const modeUrl = {
2 // 开发环境 2 // 开发环境
3 development: { 3 development: {
4 - baseURL: "/", 4 + baseURL: "/api/",
5 authBaseURL: "", 5 authBaseURL: "",
6 $cdn:"" 6 $cdn:""
7 }, 7 },
8 // 生产环境 8 // 生产环境
9 production: { 9 production: {
10 - baseURL: "/", 10 + baseURL: "/api/",
11 authBaseURL: "", 11 authBaseURL: "",
12 $cdn:"" 12 $cdn:""
13 }, 13 },
src/views/basic/askTestQuestion/detail.vue
@@ -1585,7 +1585,7 @@ export default { @@ -1585,7 +1585,7 @@ export default {
1585 1585
1586 var studentResults = []; 1586 var studentResults = [];
1587 1587
1588 - for (var iheader = 0; iheader < 17; iheader++) { 1588 + for (var iheader = 0; iheader < 18; iheader++) {
1589 studentHeaders.push({ 1589 studentHeaders.push({
1590 prop: "column" + iheader, 1590 prop: "column" + iheader,
1591 label: this.studentMapping[iheader % this.studentMapping.length].label, 1591 label: this.studentMapping[iheader % this.studentMapping.length].label,
src/views/basic/askTestQuestion/gradeAnalysisDetail.vue
@@ -979,7 +979,7 @@ export default { @@ -979,7 +979,7 @@ export default {
979 979
980 var studentResults = []; 980 var studentResults = [];
981 981
982 - for (var iheader = 0; iheader < 17; iheader++) { 982 + for (var iheader = 0; iheader < 18; iheader++) {
983 studentHeaders.push({ 983 studentHeaders.push({
984 prop: "column" + iheader, 984 prop: "column" + iheader,
985 label: this.studentMapping[iheader % this.studentMapping.length].label, 985 label: this.studentMapping[iheader % this.studentMapping.length].label,
src/views/basic/askTestQuestion/index.vue
@@ -15,8 +15,8 @@ @@ -15,8 +15,8 @@
15 class="green-el-button" @click.native="importQuestion(2)" v-if="this.dataType == '1'">添加课件</el-button> 15 class="green-el-button" @click.native="importQuestion(2)" v-if="this.dataType == '1'">添加课件</el-button>
16 </el-header> 16 </el-header>
17 <div class="default-filter"> 17 <div class="default-filter">
18 - <!-- <el-input v-model="query.paper" :placeholder="dataType == '1' ? '搜索课件' : '搜索试卷'"  
19 - suffix-icon="el-icon-search" class="filter-input" type="number" clearable /> --> 18 + <el-input v-model="query.paper" :placeholder="dataType == '1' ? '搜索课件' : '搜索试卷'"
  19 + suffix-icon="el-icon-search" class="filter-input" clearable />
20 <el-select @change="_changeClass" v-model="query.class" class="filter-select" placeholder="选择班级"> 20 <el-select @change="_changeClass" v-model="query.class" class="filter-select" placeholder="选择班级">
21 <el-option v-for="item in classList" :key="item.classId" :label="item.className" 21 <el-option v-for="item in classList" :key="item.classId" :label="item.className"
22 :value="item.classId" /> 22 :value="item.classId" />
@@ -105,23 +105,34 @@ @@ -105,23 +105,34 @@
105 </div> 105 </div>
106 <div class="descption-text"> 106 <div class="descption-text">
107 <span class="descption-text-block"> 107 <span class="descption-text-block">
108 - <div class="pic">  
109 - <img src="../../../assets/images/tishu.png" /> 108 + <div class="blocks blocks-20">
  109 + <div class="pic">
  110 + <img src="../../../assets/images/tishu.png" />
  111 + </div>
  112 + <div class="text"> 总题数:</div>
  113 + <div class="value">{{ item.questionNum }}</div>
110 </div> 114 </div>
111 - <div class="text"> 总题数:</div>  
112 - <div class="value">{{ item.questionNum }}</div>  
113 - <div class="pic" v-if="dataType == 2" style="margin-left: 44px;">  
114 - <img src="../../../assets/images/tishu.png" /> 115 + <div class="blocks" v-if="dataType == 2">
  116 + <div class="pic">
  117 + <img src="../../../assets/images/tishu.png" />
  118 + </div>
  119 + <div class="text" v-if="dataType == 2"> 考试时长:</div>
  120 + <div class="value" v-if="dataType == 2">{{ item.examsDuration }}
  121 + 分钟
  122 + </div>
115 </div> 123 </div>
116 - <div class="text" v-if="dataType == 2"> 考试时长:</div>  
117 - <div class="value" v-if="dataType == 2">{{ item.examsDuration }}  
118 - 分钟  
119 - </div>  
120 - <div class="pic" style="margin-left: 44px;">  
121 - <img src="../../../assets/images/tishu.png" /> 124 + <div class="blocks"
  125 + :class="dataType == 1 ? 'ask-blocks-create' : 'test-blocks-create'">
  126 + <div class="pic">
  127 + <img src="../../../assets/images/tishu.png" />
  128 + </div>
  129 + <div class="text"> 创建人:</div>
  130 + <el-tooltip effect="dark" :content="item.realName" placement="left">
  131 + <div class="value">
  132 + {{ item.realName }}
  133 + </div>
  134 + </el-tooltip>
122 </div> 135 </div>
123 - <div class="text"> 创建人:</div>  
124 - <div class="value">{{ item.realName }}</div>  
125 </span> 136 </span>
126 </div> 137 </div>
127 <div class="descption-text"> 138 <div class="descption-text">
@@ -200,23 +211,34 @@ @@ -200,23 +211,34 @@
200 </div> 211 </div>
201 <div class="descption-text"> 212 <div class="descption-text">
202 <span class="descption-text-block"> 213 <span class="descption-text-block">
203 - <div class="pic">  
204 - <img src="../../../assets/images/tishu.png" />  
205 - </div>  
206 - <div class="text"> 总题数:</div>  
207 - <div class="value">{{ item.questionNum }}</div>  
208 - <div class="pic" v-if="dataType == 2" style="margin-left: 44px;">  
209 - <img src="../../../assets/images/tishu.png" /> 214 + <div class="blocks blocks-20">
  215 + <div class="pic">
  216 + <img src="../../../assets/images/tishu.png" />
  217 + </div>
  218 + <div class="text"> 总题数:</div>
  219 + <div class="value">{{ item.questionNum }}</div>
210 </div> 220 </div>
211 - <div class="text" v-if="dataType == 2"> 考试时长:</div>  
212 - <div class="value" v-if="dataType == 2">{{ item.examsDuration }}  
213 - 分钟 221 + <div class="blocks" v-if="dataType == 2">
  222 + <div class="pic" v-if="dataType == 2">
  223 + <img src="../../../assets/images/tishu.png" />
  224 + </div>
  225 + <div class="text" v-if="dataType == 2"> 考试时长:</div>
  226 + <div class="value" v-if="dataType == 2">{{ item.examsDuration }}
  227 + 分钟
  228 + </div>
214 </div> 229 </div>
215 - <div class="pic" style="margin-left: 44px;">  
216 - <img src="../../../assets/images/tishu.png" /> 230 + <div class="blocks"
  231 + :class="dataType == 1 ? 'ask-blocks-create' : 'test-blocks-create'">
  232 + <div class="pic">
  233 + <img src="../../../assets/images/tishu.png" />
  234 + </div>
  235 + <div class="text"> 创建人:</div>
  236 + <el-tooltip effect="dark" :content="item.realName" placement="left">
  237 + <div class="value">
  238 + {{ item.realName }}
  239 + </div>
  240 + </el-tooltip>
217 </div> 241 </div>
218 - <div class="text"> 创建人:</div>  
219 - <div class="value">{{ item.realName }}</div>  
220 </span> 242 </span>
221 </div> 243 </div>
222 <div class="descption-text"> 244 <div class="descption-text">
@@ -247,7 +269,7 @@ @@ -247,7 +269,7 @@
247 <el-dialog :append-to-body="true" :close-on-click-modal="false" title="上传word文档" :visible.sync="diaUp" 269 <el-dialog :append-to-body="true" :close-on-click-modal="false" title="上传word文档" :visible.sync="diaUp"
248 width="600px"> 270 width="600px">
249 <upload :url="url" :params="{ type: importType }" @upSuccess="upSuccess" fileName="下载"> 271 <upload :url="url" :params="{ type: importType }" @upSuccess="upSuccess" fileName="下载">
250 - <div class="down-box p0" slot="down"> 272 + <div class="down-box p0" slot="down" style="padding-left: 0px !important;">
251 <div class="down-head" v-if="importType == 1"> 273 <div class="down-head" v-if="importType == 1">
252 <span>第一步: 274 <span>第一步:
253 导出菁优网试卷/组卷网(学科网)试卷;为保证第三方试卷导入成功,请注意参考导出示例: 275 导出菁优网试卷/组卷网(学科网)试卷;为保证第三方试卷导入成功,请注意参考导出示例:
@@ -263,7 +285,6 @@ @@ -263,7 +285,6 @@
263 </el-image> 285 </el-image>
264 </span> 286 </span>
265 </div> 287 </div>
266 -  
267 <div class="down-head" v-if="importType == 2"> 288 <div class="down-head" v-if="importType == 2">
268 <span> 289 <span>
269 第一步: 290 第一步:
@@ -340,6 +361,7 @@ export default { @@ -340,6 +361,7 @@ export default {
340 }, 361 },
341 watch: { 362 watch: {
342 '$route'() { 363 '$route'() {
  364 + this.query.paper = "";
343 this.dataType = location.href.endsWith("askPreparationQuestions") ? "1" : "2"; 365 this.dataType = location.href.endsWith("askPreparationQuestions") ? "1" : "2";
344 this._serach(); 366 this._serach();
345 }, 367 },
@@ -349,7 +371,6 @@ export default { @@ -349,7 +371,6 @@ export default {
349 }, 371 },
350 'query.dateStatus'(val) { 372 'query.dateStatus'(val) {
351 var dateRange = setDateRules(val); 373 var dateRange = setDateRules(val);
352 -  
353 this.query.dateRange = [dateRange.startDay, dateRange.endDay]; 374 this.query.dateRange = [dateRange.startDay, dateRange.endDay];
354 } 375 }
355 }, 376 },
@@ -665,13 +686,13 @@ export default { @@ -665,13 +686,13 @@ export default {
665 }; 686 };
666 </script> 687 </script>
667 <style lang="scss"> 688 <style lang="scss">
668 -.paper-list { 689 +.paper-list {
669 position: relative; 690 position: relative;
670 - .down-box {  
671 - padding-left: 20px;  
672 691
  692 + .down-box {
673 .down-head { 693 .down-head {
674 display: block; 694 display: block;
  695 + padding-left: 20px !important;
675 696
676 span, 697 span,
677 a { 698 a {
@@ -703,6 +724,7 @@ export default { @@ -703,6 +724,7 @@ export default {
703 } 724 }
704 725
705 .card-content { 726 .card-content {
  727 +
706 .descption-tag { 728 .descption-tag {
707 display: inline-block; 729 display: inline-block;
708 background: rgba(102, 127, 253, 0.1); 730 background: rgba(102, 127, 253, 0.1);
@@ -723,11 +745,15 @@ export default { @@ -723,11 +745,15 @@ export default {
723 border-radius: 10px 10px 10px 10px; 745 border-radius: 10px 10px 10px 10px;
724 box-shadow: 0px 4px 14px 0px rgba(0, 0, 0, 0.08); 746 box-shadow: 0px 4px 14px 0px rgba(0, 0, 0, 0.08);
725 margin-right: 20px; 747 margin-right: 20px;
726 - background: #FFFFFF; 748 + // background: #FFFFFF;
  749 + background-color: #41CC95;
727 750
728 .content { 751 .content {
729 - margin-top: 15px !important; 752 + background-color: white;
  753 + border: 1px solid white;
  754 + padding-top: 15px !important;
730 padding-left: 10px !important; 755 padding-left: 10px !important;
  756 + padding-bottom: 5px !important;
731 font-size: 14px; 757 font-size: 14px;
732 font-weight: 400; 758 font-weight: 400;
733 759
@@ -750,15 +776,47 @@ export default { @@ -750,15 +776,47 @@ export default {
750 margin-top: 10px; 776 margin-top: 10px;
751 777
752 .descption-text-block { 778 .descption-text-block {
753 - margin-right: 10px;  
754 display: flex; 779 display: flex;
755 justify-content: flex-start; 780 justify-content: flex-start;
756 781
  782 + .blocks {
  783 + width: 37%;
  784 + margin-right: 10px;
  785 + white-space: nowrap;
  786 + overflow: hidden;
  787 + display: flex;
  788 + text-align: left;
  789 +
  790 + div {
  791 + display: inline;
  792 + }
  793 + }
  794 +
  795 + .ask-blocks-create {
  796 + width: 72% !important;
  797 + }
  798 +
  799 + .ask-blocks-create,
  800 + .test-blocks-create {
  801 + .value {
  802 + display: inline-block;
  803 + width: calc(100% - 90px);
  804 + overflow: hidden;
  805 + white-space: nowrap;
  806 + text-overflow: ellipsis;
  807 + }
  808 + }
  809 +
  810 + .blocks-20 {
  811 + width: 24%;
  812 + }
  813 +
757 .sharing-descption { 814 .sharing-descption {
758 flex: 1; 815 flex: 1;
759 color: gray; 816 color: gray;
760 opacity: 0.8; 817 opacity: 0.8;
761 - text-align: right 818 + text-align: right;
  819 + padding-right: 5px;
762 } 820 }
763 821
764 img { 822 img {
@@ -795,14 +853,15 @@ export default { @@ -795,14 +853,15 @@ export default {
795 } 853 }
796 854
797 .left { 855 .left {
798 - height: 190px; 856 + min-height: 190px;
799 background-color: #41CC95; 857 background-color: #41CC95;
800 vertical-align: middle; 858 vertical-align: middle;
801 border-radius: 10px 0px 0px 10px; 859 border-radius: 10px 0px 0px 10px;
802 860
803 .left-icon { 861 .left-icon {
804 margin-top: 26px; 862 margin-top: 26px;
805 - height: 70px; 863 + height: 70px;
  864 +
806 .icon { 865 .icon {
807 height: 100px; 866 height: 100px;
808 width: 100px; 867 width: 100px;
@@ -829,10 +888,12 @@ export default { @@ -829,10 +888,12 @@ export default {
829 .text-radius { 888 .text-radius {
830 width: 100%; 889 width: 100%;
831 text-align: left; 890 text-align: left;
832 - margin-top: 9px;  
833 margin-left: 1px; 891 margin-left: 1px;
834 white-space: nowrap; 892 white-space: nowrap;
835 - width: calc(100% - 7.5px); 893 + width: calc(100% - 7.5px);
  894 + position: absolute;
  895 + bottom: -4px;
  896 +
836 span { 897 span {
837 overflow: hidden; 898 overflow: hidden;
838 white-space: nowrap; 899 white-space: nowrap;
@@ -852,6 +913,7 @@ export default { @@ -852,6 +913,7 @@ export default {
852 } 913 }
853 914
854 .right { 915 .right {
  916 +
855 .el-button { 917 .el-button {
856 background-color: #667FFD; 918 background-color: #667FFD;
857 line-height: 16px; 919 line-height: 16px;
src/views/basic/askTestQuestion/recycle.vue
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 </el-header> 11 </el-header>
12 <div class="default-filter"> 12 <div class="default-filter">
13 <el-input v-model="query.paper" :placeholder="dataType == '1' ? '搜索课件' : '搜索试卷'" 13 <el-input v-model="query.paper" :placeholder="dataType == '1' ? '搜索课件' : '搜索试卷'"
14 - suffix-icon="el-icon-search" class="filter-input" type="number" clearable /> 14 + suffix-icon="el-icon-search" class="filter-input" clearable />
15 <el-select @change="_changeClass" v-model="query.class" class="filter-select" placeholder="选择班级"> 15 <el-select @change="_changeClass" v-model="query.class" class="filter-select" placeholder="选择班级">
16 <el-option v-for="item in classList" :key="item.classId" :label="item.className" 16 <el-option v-for="item in classList" :key="item.classId" :label="item.className"
17 :value="item.classId" /> 17 :value="item.classId" />
src/views/basic/askTestQuestion/report.vue
@@ -394,130 +394,7 @@ export default { @@ -394,130 +394,7 @@ export default {
394 .el-tabs__header { 394 .el-tabs__header {
395 margin: 0px !important; 395 margin: 0px !important;
396 } 396 }
397 -  
398 -.card-content {  
399 - .descption-tag {  
400 - display: inline-block;  
401 - background: rgba(102, 127, 253, 0.1);  
402 - border-radius: 4px 4px 4px 4px;  
403 - color: #667ffd;  
404 - line-height: 32px;  
405 - padding: 0 10px;  
406 - height: 32px;  
407 - margin-right: 10px;  
408 - }  
409 -  
410 - margin-bottom: 10px;  
411 - height: 180px;  
412 - border: 1px solid #e6e9f4;  
413 - border-radius: 10px 10px 10px 10px;  
414 - box-shadow: 0px 4px 14px 0px rgba(0, 0, 0, 0.08);  
415 - margin-right: 20px;  
416 - background: #ffffff;  
417 -  
418 - .content {  
419 - margin-top: 15px !important;  
420 - padding-left: 10px !important;  
421 - font-size: 14px;  
422 - font-weight: 400;  
423 -  
424 - .descption-tag-text {  
425 - margin-bottom: 20px;  
426 - display: flex;  
427 - justify-content: flex-start;  
428 - align-items: center;  
429 - }  
430 -  
431 - .descption-text {  
432 - height: 30px;  
433 - margin-top: 10px;  
434 -  
435 - .descption-text-block {  
436 - margin-right: 10px;  
437 - display: flex;  
438 - justify-content: flex-start;  
439 -  
440 - .sharing-descption {  
441 - flex: 1;  
442 - color: gray;  
443 - opacity: 0.5;  
444 - text-align: right;  
445 - }  
446 -  
447 - img {  
448 - height: 20px;  
449 - width: 20px;  
450 - margin-right: 5px;  
451 - }  
452 - }  
453 - }  
454 -  
455 - .title-text {  
456 - font-weight: bold;  
457 - font-size: 20px;  
458 - color: #303133;  
459 - line-height: 28px;  
460 - height: 28px;  
461 - text-transform: none;  
462 - padding-bottom: 10px !important;  
463 -  
464 - .dropdown-button {  
465 - .el-button {  
466 - background-color: #667ffd !important;  
467 - color: white;  
468 - }  
469 -  
470 - float: right;  
471 - margin-right: 20px;  
472 - }  
473 - }  
474 - }  
475 -  
476 - .left {  
477 - height: 180px;  
478 - background-color: #41cc95;  
479 - vertical-align: middle;  
480 - border-radius: 10px 0px 0px 10px;  
481 -  
482 - .left-icon {  
483 - margin-top: 26px;  
484 - height: 70px;  
485 -  
486 - .icon {  
487 - height: 100px;  
488 - width: 100px;  
489 - background: rgba(255, 255, 255, 0.1);  
490 - border-radius: 61px 61px 61px 61px;  
491 - margin: auto;  
492 - text-align: center;  
493 -  
494 - img {  
495 - margin-top: 24px;  
496 - height: 52px;  
497 - width: 52px;  
498 - }  
499 - }  
500 -  
501 - .text {  
502 - width: 100%;  
503 - text-align: center;  
504 - margin-top: 5px;  
505 - font-size: 20px;  
506 - color: #ffffff;  
507 - }  
508 - }  
509 - }  
510 -  
511 - .right {  
512 - .el-button {  
513 - background-color: #667ffd;  
514 - line-height: 16px;  
515 - color: #ffffff;  
516 - margin-top: 15px;  
517 - padding: 10px 20px !important;  
518 - }  
519 - }  
520 -} 397 +
521 398
522 .el-popconfirm__action { 399 .el-popconfirm__action {
523 margin-top: 10px; 400 margin-top: 10px;
src/views/basic/askTestQuestion/update.vue
@@ -26,7 +26,8 @@ @@ -26,7 +26,8 @@
26 <p class="name-box"> 26 <p class="name-box">
27 <span>分享范围:</span> 27 <span>分享范围:</span>
28 <el-radio :disabled="isViewer" class="name-radio" v-model="form.sharingType" :label="0">任课班级分享</el-radio> 28 <el-radio :disabled="isViewer" class="name-radio" v-model="form.sharingType" :label="0">任课班级分享</el-radio>
29 - <el-radio :disabled="isViewer" class="name-radio" @click.native="_selectClassSharingType" v-model="form.sharingType" :label="1">自定义分享班级</el-radio> 29 + <el-radio :disabled="isViewer" class="name-radio" @click.native="_selectClassSharingType"
  30 + v-model="form.sharingType" :label="1">自定义分享班级</el-radio>
30 </p> 31 </p>
31 </div> 32 </div>
32 <div class="question-box"> 33 <div class="question-box">
@@ -223,32 +224,27 @@ @@ -223,32 +224,27 @@
223 <el-dialog title="选择班级分享" :visible.sync="classSharingType" width="800" :close-on-click-modal="false" 224 <el-dialog title="选择班级分享" :visible.sync="classSharingType" width="800" :close-on-click-modal="false"
224 :append-to-body="true"> 225 :append-to-body="true">
225 <div :key="classSharingType"> 226 <div :key="classSharingType">
226 - <el-row class="row-subfix">  
227 - <el-col :xs="24" :sm="24" :md="24" :lg="24" type="flex" style="flex-wrap:wrap">  
228 - <div class="row-line">  
229 - <span class="line-subfix">年级:</span>  
230 - <span class="line-value">{{ gradeName }}</span>  
231 - </div>  
232 - </el-col>  
233 - </el-row>  
234 - <el-row v-if="gradeClass.length >= 1" class="row-subfix" style="margin-top: 20px;">  
235 - <el-col :xs="24" :sm="24" :md="24" :lg="24" type="flex" style="flex-wrap:wrap">  
236 - <span class="line-subfix" style="float: left;">班级:</span>  
237 - <div class="row-line" style="float: left;  
238 - background:rgb(245,247,250);padding:15px 10px;width: calc(100% - 80px);border-radius:5px;">  
239 - <span class="line-value" style="min-height: 300px;border-radius: 4px; background: rgb(247,247,250);">  
240 - <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll"  
241 - @change="handleCheckAllChange">全选</el-checkbox>  
242 - <div>  
243 - <el-checkbox @change="handleCheckedClassChange" v-model="item.isChecked" :key="index"  
244 - v-for="(item, index) in gradeClass" :label="item.id">  
245 - {{ item.className }}  
246 - </el-checkbox>  
247 - </div>  
248 - </span>  
249 - </div>  
250 - </el-col>  
251 - </el-row> 227 + <div class="row-subfix">
  228 + <div >
  229 + <span class="line-subfix">年级:</span>
  230 + <span class="line-value">{{ gradeName }}</span>
  231 + </div>
  232 + </div>
  233 + <div v-if="gradeClass.length >= 1" class="row-subfix"
  234 + style="margin-top: 20px;margin-bottom: 20px;overflow: auto">
  235 + <span class="line-subfix" style="float: left;">班级:</span>
  236 + <div style="float: left;background:rgb(245,247,250);padding:15px 10px;width: calc(100% - 80px);border-radius:5px;">
  237 + <span class="line-value" style="min-height: 300px;border-radius: 4px; background: rgb(247,247,250);">
  238 + <el-checkbox v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
  239 + <div>
  240 + <el-checkbox @change="handleCheckedClassChange" v-model="item.isChecked" :key="index"
  241 + v-for="(item, index) in gradeClass" :label="item.id">
  242 + {{ item.className }}
  243 + </el-checkbox>
  244 + </div>
  245 + </span>
  246 + </div>
  247 + </div>
252 </div> 248 </div>
253 <div slot="footer"> 249 <div slot="footer">
254 <el-button type="info" :size="'small'" @click="classSharingType = false">取消</el-button> 250 <el-button type="info" :size="'small'" @click="classSharingType = false">取消</el-button>
@@ -525,6 +521,8 @@ export default { @@ -525,6 +521,8 @@ export default {
525 className: item.className 521 className: item.className
526 } 522 }
527 })]; 523 })];
  524 +
  525 + this.checkAll = this.checkedClass.length === this.gradeClass.length;
528 }, 526 },
529 // v1.5 527 // v1.5
530 //上传截图 528 //上传截图
src/views/basic/setUp/teacher.vue
@@ -70,7 +70,7 @@ @@ -70,7 +70,7 @@
70 </el-popconfirm> 70 </el-popconfirm>
71 </p> 71 </p>
72 <el-checkbox-group v-model="clearTeacher" @change="handleCheckedChange"> 72 <el-checkbox-group v-model="clearTeacher" @change="handleCheckedChange">
73 - <ul class="teacher-ul"> 73 + <ul ref="teacherRef">
74 <li class="teacher-item" v-for="item in teacherList" :key="item.id"> 74 <li class="teacher-item" v-for="item in teacherList" :key="item.id">
75 <el-checkbox v-show="showDel" :label="item.id">{{ "" }}</el-checkbox> 75 <el-checkbox v-show="showDel" :label="item.id">{{ "" }}</el-checkbox>
76 <p class="name" :class="showTId == item.id ? 'active' : ''" @click="showTeacher(item)"> 76 <p class="name" :class="showTId == item.id ? 'active' : ''" @click="showTeacher(item)">
@@ -357,6 +357,9 @@ export default { @@ -357,6 +357,9 @@ export default {
357 await this._QueryDataGrade(2); //配置角色用 357 await this._QueryDataGrade(2); //配置角色用
358 // this._RoleList(); 358 // this._RoleList();
359 }, 359 },
  360 + mounted() {
  361 + // this.$refs.teacherRef.style.maxHeight = 'calc(100% - ' + this.$refs.teacherRef.getBoundingClientRect().top + 'px)';
  362 + },
360 methods: { 363 methods: {
361 async changeType() { 364 async changeType() {
362 this.query.gradeClassSub = []; 365 this.query.gradeClassSub = [];
@@ -955,14 +958,31 @@ export default { @@ -955,14 +958,31 @@ export default {
955 } 958 }
956 959
957 .teacher-box { 960 .teacher-box {
  961 + height: calc(100% - 80px);
958 display: flex; 962 display: flex;
959 background: #f8f8f8; 963 background: #f8f8f8;
960 border-radius: 10px; 964 border-radius: 10px;
961 - overflow: hidden;  
962 min-height: 400px; 965 min-height: 400px;
963 966
964 - .teacher-ul {  
965 - max-height: 60vh; 967 + .teacher-list {
  968 + width: 240px;
  969 +
  970 + @media screen and (min-device-height: 1601px) {
  971 + max-height: 85vh;
  972 + }
  973 +
  974 + @media screen and (max-device-height: 1600px) and (min-device-height: 1081px) {
  975 + max-height: 85vh;
  976 + }
  977 +
  978 + @media screen and (max-device-height: 1080px) and (min-device-height: 769px) {
  979 + max-height: 72vh;
  980 + }
  981 +
  982 + @media screen and (max-device-height: 769px) {
  983 + max-height: 95vh;
  984 + }
  985 +
966 overflow-y: auto; 986 overflow-y: auto;
967 987
968 &::-webkit-scrollbar { 988 &::-webkit-scrollbar {
@@ -973,11 +993,6 @@ export default { @@ -973,11 +993,6 @@ export default {
973 border-radius: 10px; 993 border-radius: 10px;
974 background-color: #ccc; 994 background-color: #ccc;
975 } 995 }
976 - }  
977 -  
978 - .teacher-list {  
979 -  
980 - width: 240px;  
981 996
982 .h-title { 997 .h-title {
983 height: 40px; 998 height: 40px;
src/views/examinationPaper/add.vue
@@ -10,19 +10,18 @@ @@ -10,19 +10,18 @@
10 <el-dialog :close-on-click-modal="false" title="选择班级分享" :visible.sync="classSharingType" width="800" 10 <el-dialog :close-on-click-modal="false" title="选择班级分享" :visible.sync="classSharingType" width="800"
11 :modal-append-to-body="false" :append-to-body="true"> 11 :modal-append-to-body="false" :append-to-body="true">
12 <div :key="classSharingType"> 12 <div :key="classSharingType">
13 - <el-row class="row-subfix">  
14 - <div class="row-line"> 13 + <div class="row-subfix">
  14 + <div >
15 <span class="line-subfix">年级:</span> 15 <span class="line-subfix">年级:</span>
16 <span class="line-value">{{ gradeName }}</span> 16 <span class="line-value">{{ gradeName }}</span>
17 </div> 17 </div>
18 - </el-row>  
19 - <el-row v-if="shareClass.length >= 1" class="row-subfix" style="margin-top: 20px;"> 18 + </div>
  19 + <div v-if="shareClass.length >= 1" class="row-subfix" style="margin-top: 20px;margin-bottom: 20px;overflow: auto">
20 <span class="line-subfix" style="float: left;">班级:</span> 20 <span class="line-subfix" style="float: left;">班级:</span>
21 - <div class="row-line" style="float: left; 21 + <div style="float: left;
22 background:rgb(245,247,250);padding:15px 10px;width: calc(100% - 80px);border-radius:5px;"> 22 background:rgb(245,247,250);padding:15px 10px;width: calc(100% - 80px);border-radius:5px;">
23 <span class="line-value" style="min-height: 300px;border-radius: 4px; background: rgb(247,247,250);"> 23 <span class="line-value" style="min-height: 300px;border-radius: 4px; background: rgb(247,247,250);">
24 - <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll"  
25 - @change="handleCheckAllChange">全选</el-checkbox> 24 + <el-checkbox v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
26 <div> 25 <div>
27 <el-checkbox @change="handleCheckedClassChange" v-model="item.isChecked" :key="index" 26 <el-checkbox @change="handleCheckedClassChange" v-model="item.isChecked" :key="index"
28 v-for="(item, index) in shareClass" :label="item.id"> 27 v-for="(item, index) in shareClass" :label="item.id">
@@ -31,7 +30,7 @@ @@ -31,7 +30,7 @@
31 </div> 30 </div>
32 </span> 31 </span>
33 </div> 32 </div>
34 - </el-row> 33 + </div>
35 </div> 34 </div>
36 <div slot="footer"> 35 <div slot="footer">
37 <el-button type="info" :size="'small'" @click="classSharingType = false">取消</el-button> 36 <el-button type="info" :size="'small'" @click="classSharingType = false">取消</el-button>
@@ -807,7 +806,7 @@ export default { @@ -807,7 +806,7 @@ export default {
807 }, 806 },
808 handleCheckedClassChange(value) { 807 handleCheckedClassChange(value) {
809 var value = this.shareClass.filter(item => item.isChecked); 808 var value = this.shareClass.filter(item => item.isChecked);
810 - let checkedCount = value.length; 809 + var checkedCount = value.length;
811 this.checkAll = checkedCount === this.shareClass.length; 810 this.checkAll = checkedCount === this.shareClass.length;
812 this.isIndeterminate = checkedCount > 0 && checkedCount < this.shareClass.length; 811 this.isIndeterminate = checkedCount > 0 && checkedCount < this.shareClass.length;
813 }, 812 },
@@ -1270,7 +1269,9 @@ export default { @@ -1270,7 +1269,9 @@ export default {
1270 id: item.id, 1269 id: item.id,
1271 className: item.className 1270 className: item.className
1272 } 1271 }
1273 - })]; 1272 + })];
  1273 +
  1274 + this.checkAll = this.checkedClass.length == this.shareClass.length;
1274 }, 1275 },
1275 openQuestion() { 1276 openQuestion() {
1276 this.questionForm = { ...questionForm }; 1277 this.questionForm = { ...questionForm };
src/views/examinationPaper/addQs.vue
@@ -10,19 +10,18 @@ @@ -10,19 +10,18 @@
10 <el-dialog :close-on-click-modal="false" title="选择班级分享" :visible.sync="classSharingType" width="800" 10 <el-dialog :close-on-click-modal="false" title="选择班级分享" :visible.sync="classSharingType" width="800"
11 :modal-append-to-body="false" :append-to-body="true"> 11 :modal-append-to-body="false" :append-to-body="true">
12 <div :key="classSharingType"> 12 <div :key="classSharingType">
13 - <el-row class="row-subfix">  
14 - <div class="row-line"> 13 + <div class="row-subfix">
  14 + <div >
15 <span class="line-subfix">年级:</span> 15 <span class="line-subfix">年级:</span>
16 <span class="line-value">{{ gradeName }}</span> 16 <span class="line-value">{{ gradeName }}</span>
17 </div> 17 </div>
18 - </el-row>  
19 - <el-row v-if="shareClass.length >= 1" class="row-subfix" style="margin-top: 20px;"> 18 + </div>
  19 + <div v-if="shareClass.length >= 1" class="row-subfix" style="margin-top: 20px;margin-bottom: 20px;overflow: auto">
20 <span class="line-subfix" style="float: left;">班级:</span> 20 <span class="line-subfix" style="float: left;">班级:</span>
21 - <div class="row-line" style="float: left; 21 + <div style="float: left;
22 background:rgb(245,247,250);padding:15px 10px;width: calc(100% - 80px);border-radius:5px;"> 22 background:rgb(245,247,250);padding:15px 10px;width: calc(100% - 80px);border-radius:5px;">
23 <span class="line-value" style="min-height: 300px;border-radius: 4px; background: rgb(247,247,250);"> 23 <span class="line-value" style="min-height: 300px;border-radius: 4px; background: rgb(247,247,250);">
24 - <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll"  
25 - @change="handleCheckAllChange">全选</el-checkbox> 24 + <el-checkbox v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
26 <div> 25 <div>
27 <el-checkbox @change="handleCheckedClassChange" v-model="item.isChecked" :key="index" 26 <el-checkbox @change="handleCheckedClassChange" v-model="item.isChecked" :key="index"
28 v-for="(item, index) in shareClass" :label="item.id"> 27 v-for="(item, index) in shareClass" :label="item.id">
@@ -31,7 +30,7 @@ @@ -31,7 +30,7 @@
31 </div> 30 </div>
32 </span> 31 </span>
33 </div> 32 </div>
34 - </el-row> 33 + </div>
35 </div> 34 </div>
36 <div slot="footer"> 35 <div slot="footer">
37 <el-button type="info" :size="'small'" @click="classSharingType = false">取消</el-button> 36 <el-button type="info" :size="'small'" @click="classSharingType = false">取消</el-button>
@@ -565,7 +564,9 @@ export default { @@ -565,7 +564,9 @@ export default {
565 this.$message.error(classResponse.info); 564 this.$message.error(classResponse.info);
566 return; 565 return;
567 } 566 }
  567 +
568 this.gradeName = grade.gradeName; 568 this.gradeName = grade.gradeName;
  569 +
569 this.shareClass = [...classResponse.data.map(item => { 570 this.shareClass = [...classResponse.data.map(item => {
570 return { 571 return {
571 isChecked: this.checkedClass.includes(item.id), 572 isChecked: this.checkedClass.includes(item.id),
@@ -573,6 +574,8 @@ export default { @@ -573,6 +574,8 @@ export default {
573 className: item.className 574 className: item.className
574 } 575 }
575 })]; 576 })];
  577 +
  578 + this.checkAll = this.checkedClass.length == this.shareClass.length;
576 }, 579 },
577 // v1.5 580 // v1.5
578 //上传截图 581 //上传截图
vue.config.js
@@ -25,8 +25,8 @@ module.exports = { @@ -25,8 +25,8 @@ module.exports = {
25 "/": { 25 "/": {
26 // target:"http://ezquiz.sunvotecloud.cn", 26 // target:"http://ezquiz.sunvotecloud.cn",
27 // target:"http://192.168.1.151:8089", 27 // target:"http://192.168.1.151:8089",
  28 + // target: "https://ezquiz.sunvotecloud.cn",
28 target: "http://121.40.127.171:8090", 29 target: "http://121.40.127.171:8090",
29 - // target: "http://121.40.127.171",  
30 // target:"http://127.0.0.1:8089", 30 // target:"http://127.0.0.1:8089",
31 changeOrigin: true, 31 changeOrigin: true,
32 ws: true, 32 ws: true,
@@ -34,21 +34,21 @@ module.exports = { @@ -34,21 +34,21 @@ module.exports = {
34 }, 34 },
35 disableHostCheck: true 35 disableHostCheck: true
36 }, 36 },
37 - configureWebpack: {  
38 - devtool: 'source-map',  
39 - output: { // 输出重构 打包编译后的 文件名称 【模块名称.版本号.js】  
40 - filename: `js/[name].${TimeStamp}.js`,  
41 - chunkFilename: `js/[name].${TimeStamp}.js`  
42 - },  
43 - }, 37 + // configureWebpack: {
  38 + // devtool: 'source-map',
  39 + // output: { // 输出重构 打包编译后的 文件名称 【模块名称.版本号.js】
  40 + // filename: `js/[name]${TimeStamp}.js`,
  41 + // chunkFilename: `js/[name]${TimeStamp}.js`
  42 + // },
  43 + // },
44 css: { 44 css: {
45 extract: IS_PROD, // 是否将组件中的 CSS 提取至一个独立的 CSS 文件中 (而不是动态注入到 JavaScript 中的 inline 代码)。 45 extract: IS_PROD, // 是否将组件中的 CSS 提取至一个独立的 CSS 文件中 (而不是动态注入到 JavaScript 中的 inline 代码)。
46 sourceMap: false, 46 sourceMap: false,
47 - extract: {  
48 - // 修改打包后css文件名 // css打包文件,添加时间戳  
49 - filename: `css/[name].${TimeStamp}.css`,  
50 - chunkFilename: `css/[name].${TimeStamp}.css`  
51 - } 47 + // extract: {
  48 + // // 修改打包后css文件名 // css打包文件,添加时间戳
  49 + // filename: `css/[name]${TimeStamp}.css`,
  50 + // chunkFilename: `css/[name]${TimeStamp}.css`
  51 + // }
52 }, 52 },
53 chainWebpack: (config) => { 53 chainWebpack: (config) => {
54 config.plugin('html').tap(args => { 54 config.plugin('html').tap(args => {