Commit 24f4b2483df746ac21777fd7b50224d0355e65ab

Authored by 梁保满
1 parent 78ea6110

单卷试题分析打印样式

src/utils/index.js
@@ -746,7 +746,7 @@ export function formatGradeNameClass(data) { @@ -746,7 +746,7 @@ export function formatGradeNameClass(data) {
746 return gradeNameArr; 746 return gradeNameArr;
747 } 747 }
748 748
749 -export function tablePrint(id, title) { 749 +export function tablePrint(id, title, type = null) {
750 let divs = document.getElementById(id); 750 let divs = document.getElementById(id);
751 let awin = window.open("", "_blank"); 751 let awin = window.open("", "_blank");
752 awin.document.getElementsByTagName( 752 awin.document.getElementsByTagName(
@@ -773,8 +773,7 @@ export function tablePrint(id, title) { @@ -773,8 +773,7 @@ export function tablePrint(id, title) {
773 .el-table__cell.gutter{display:none} 773 .el-table__cell.gutter{display:none}
774 ul,li{margin:0;padding:0;list-style:none} 774 ul,li{margin:0;padding:0;list-style:none}
775 .hui-box{display: flex;text-align: center;} 775 .hui-box{display: flex;text-align: center;}
776 - .hui-box .s-txt{width: 60px;line-height: 144px;background: #ccc;font-size: 16px;color: #fff;font-weight: 700;border:1px solid #ccc;box-sizing:border-box}  
777 - .hui-ul{border-top: 1px solid #ccc;} 776 + .hui-box .s-txt{width: 61px;line-height: 144px;background: #ccc;font-size: 16px;color: #fff;font-weight: 700;border:1px solid #ccc;box-sizing:border-box}
778 .hui-li{display: flex;} 777 .hui-li{display: flex;}
779 .hui-s{height: 48px;line-height: 48px;border-right: 1px solid #ccc;border-bottom: 1px solid #ccc;box-sizing: border-box;} 778 .hui-s{height: 48px;line-height: 48px;border-right: 1px solid #ccc;border-bottom: 1px solid #ccc;box-sizing: border-box;}
780 .hui-s.s1{width: 100px;} 779 .hui-s.s1{width: 100px;}
@@ -783,12 +782,17 @@ export function tablePrint(id, title) { @@ -783,12 +782,17 @@ export function tablePrint(id, title) {
783 .info { display: flex;flex-wrap: wrap;border-left: 1px solid #ccc;border-top: 1px solid #ccc;margin-bottom: 12px;} 782 .info { display: flex;flex-wrap: wrap;border-left: 1px solid #ccc;border-top: 1px solid #ccc;margin-bottom: 12px;}
784 .info-item {width: 25%;height: 50px;box-sizing: border-box;flex-shrink: 0;background: #f8f8f8;border-right: 1px solid #ccc;border-bottom: 1px solid #ccc;line-height: 50px;text-align: center;} 783 .info-item {width: 25%;height: 50px;box-sizing: border-box;flex-shrink: 0;background: #f8f8f8;border-right: 1px solid #ccc;border-bottom: 1px solid #ccc;line-height: 50px;text-align: center;}
785 .el-table__header,.el-table__body{width:100%!important;} 784 .el-table__header,.el-table__body{width:100%!important;}
  785 + #print-table{max-width:1400px;margin: 0 auto;width: 100%;}
  786 + .hide{max-width:1400px;margin: 0 auto;width: 100%;border-left: 1px solid #ccc;border-spacing:0;box-sizing:border-box}
  787 + .hide thead th{background:#ccc;line-height: 48px;border-right: 1px solid #ccc;box-sizing:border-box}
  788 + .hide tbody tr td{line-height: 48px;border-right: 1px solid #ccc;text-align:center;box-sizing:border-box}
  789 + .hide td{border-bottom: 1px solid #ccc;}
786 </style>`; 790 </style>`;
787 let aDom = divs.cloneNode(true); 791 let aDom = divs.cloneNode(true);
788 - let aTbody = aDom  
789 - .getElementsByClassName("el-table__body")[0]  
790 - .getElementsByTagName("tbody")[0];  
791 - aDom.getElementsByClassName("el-table__header")[0].append(aTbody); 792 + if (!type) {
  793 + let aTbody = aDom.getElementsByClassName("el-table__body")[0]?.getElementsByTagName("tbody")[0];
  794 + aDom.getElementsByClassName("el-table__header")[0].append(aTbody);
  795 + }
792 if (title) { 796 if (title) {
793 let pTit = awin.document.createElement('p') 797 let pTit = awin.document.createElement('p')
794 pTit.className = "tit" 798 pTit.className = "tit"
src/views/standard/test/analysis.vue
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 <span>单卷分析</span> 5 <span>单卷分析</span>
6 </template> 6 </template>
7 </back-box> 7 </back-box>
8 - <div class="tips" v-if="paperModifyLog.modifiedTime && !status "> 8 + <div class="tips" v-if="paperModifyLog.modifiedTime && !status">
9 <p class="tips-p"> 9 <p class="tips-p">
10 <i class="fa fa-bell-o"></i> 10 <i class="fa fa-bell-o"></i>
11 {{ 11 {{
@@ -131,46 +131,104 @@ @@ -131,46 +131,104 @@
131 > 131 >
132 </el-table-column> 132 </el-table-column>
133 </el-table> 133 </el-table>
134 - <div class="hui-box" v-show="type == 0">  
135 - <span class="s-txt">汇总</span>  
136 - <ul class="hui-ul">  
137 - <li class="hui-li">  
138 - <span class="hui-s s1">主观题</span>  
139 - <span class="hui-s s1">{{ examReport.subjectiveScore }}</span>  
140 - <span class="hui-s s2">{{  
141 - examReport.subjectiveHighestScore  
142 - }}</span>  
143 - <span class="hui-s s2">{{  
144 - examReport.subjectiveLowestScore  
145 - }}</span>  
146 - <span class="hui-s s2">{{ examReport.subjectiveAvgScore }}</span>  
147 - <span class="hui-s s3"  
148 - >{{ examReport.subjectiveClassScoringRate }}%</span  
149 - >  
150 - </li>  
151 - <li class="hui-li">  
152 - <span class="hui-s s1">客观题</span>  
153 - <span class="hui-s s1">{{ examReport.objectiveScore }}</span>  
154 - <span class="hui-s s2">{{  
155 - examReport.objectiveHighestScore  
156 - }}</span>  
157 - <span class="hui-s s2">{{  
158 - examReport.objectiveLowestScore  
159 - }}</span>  
160 - <span class="hui-s s2">{{ examReport.objectiveAvgScore }}</span>  
161 - <span class="hui-s s3"  
162 - >{{ examReport.objectiveClassScoringRate }}%</span  
163 - >  
164 - </li>  
165 - <li class="hui-li">  
166 - <span class="hui-s s1">整卷</span>  
167 - <span class="hui-s s1">{{ examReport.examPaperScore }}</span>  
168 - <span class="hui-s s2">{{ examReport.highestScore }}</span>  
169 - <span class="hui-s s2">{{ examReport.lowestScore }}</span>  
170 - <span class="hui-s s2">{{ examReport.avgScore }}</span>  
171 - <span class="hui-s s3">{{ examReport.classScoringRate }}%</span>  
172 - </li>  
173 - </ul> 134 + <div id="print-table">
  135 + <table class="hide">
  136 + <thead>
  137 + <tr>
  138 + <th>题号</th>
  139 + <th>题型</th>
  140 + <th>满分值</th>
  141 + <th>班最高分</th>
  142 + <th>班最低分</th>
  143 + <th>班平均分</th>
  144 + <th>班级得分率</th>
  145 + <th>答案</th>
  146 + <th>选项1</th>
  147 + <th>选项2</th>
  148 + <th>选项3</th>
  149 + <th>选项4</th>
  150 + <th>未答</th>
  151 + </tr>
  152 + </thead>
  153 + <tbody>
  154 + <tr v-for="(tr, index) in tableData">
  155 + <td width="60">{{ index + 1 }}</td>
  156 + <td width="100">{{ setSubPro(tr.questionType) }}</td>
  157 + <td width="100">{{ tr.sortable }}</td>
  158 + <td width="110">{{ tr.highestScore }}</td>
  159 + <td width="110">{{ tr.lowestScore }}</td>
  160 + <td width="110">{{ tr.avgScore }}</td>
  161 + <td width="120">{{ tr.classScoringRate }}%</td>
  162 + <td>
  163 + {{
  164 + tr.correctAnswer == 1
  165 + ? "✓"
  166 + : tr.correctAnswer == 2
  167 + ? "✗"
  168 + : tr.correctAnswer
  169 + }}
  170 + </td>
  171 + <td
  172 + v-for="(item, index) in optionsList"
  173 + :key="index"
  174 + width="120"
  175 + >
  176 + <p class="persent">
  177 + {{
  178 + tr.questionType == "5"
  179 + ? ""
  180 + : tr["option" + index]
  181 + ? `${tr["option" + index]}(${tr["persent" + index]})`
  182 + : ""
  183 + }}
  184 + </p>
  185 + </td>
  186 + </tr>
  187 + </tbody>
  188 + </table>
  189 + <div class="hui-box" v-show="type == 0">
  190 + <span class="s-txt">汇总</span>
  191 + <ul class="hui-ul">
  192 + <li class="hui-li">
  193 + <span class="hui-s s1">主观题</span>
  194 + <span class="hui-s s1">{{ examReport.subjectiveScore }}</span>
  195 + <span class="hui-s s2">{{
  196 + examReport.subjectiveHighestScore
  197 + }}</span>
  198 + <span class="hui-s s2">{{
  199 + examReport.subjectiveLowestScore
  200 + }}</span>
  201 + <span class="hui-s s2">{{
  202 + examReport.subjectiveAvgScore
  203 + }}</span>
  204 + <span class="hui-s s3"
  205 + >{{ examReport.subjectiveClassScoringRate }}%</span
  206 + >
  207 + </li>
  208 + <li class="hui-li">
  209 + <span class="hui-s s1">客观题</span>
  210 + <span class="hui-s s1">{{ examReport.objectiveScore }}</span>
  211 + <span class="hui-s s2">{{
  212 + examReport.objectiveHighestScore
  213 + }}</span>
  214 + <span class="hui-s s2">{{
  215 + examReport.objectiveLowestScore
  216 + }}</span>
  217 + <span class="hui-s s2">{{ examReport.objectiveAvgScore }}</span>
  218 + <span class="hui-s s3"
  219 + >{{ examReport.objectiveClassScoringRate }}%</span
  220 + >
  221 + </li>
  222 + <li class="hui-li">
  223 + <span class="hui-s s1">整卷</span>
  224 + <span class="hui-s s1">{{ examReport.examPaperScore }}</span>
  225 + <span class="hui-s s2">{{ examReport.highestScore }}</span>
  226 + <span class="hui-s s2">{{ examReport.lowestScore }}</span>
  227 + <span class="hui-s s2">{{ examReport.avgScore }}</span>
  228 + <span class="hui-s s3">{{ examReport.classScoringRate }}%</span>
  229 + </li>
  230 + </ul>
  231 + </div>
174 </div> 232 </div>
175 <el-table 233 <el-table
176 v-show="type == 1" 234 v-show="type == 1"
@@ -462,7 +520,11 @@ export default { @@ -462,7 +520,11 @@ export default {
462 }, 520 },
463 methods: { 521 methods: {
464 print() { 522 print() {
465 - tablePrint("print-content", this.title + this.tabList[this.type]); 523 + if (this.type == 0) {
  524 + tablePrint("print-table", this.title + this.tabList[this.type], true);
  525 + } else {
  526 + tablePrint("print-content", this.title + this.tabList[this.type]);
  527 + }
466 }, 528 },
467 upSuccess(res) { 529 upSuccess(res) {
468 //导入成功 530 //导入成功
@@ -695,6 +757,9 @@ div::-webkit-scrollbar-thumb { @@ -695,6 +757,9 @@ div::-webkit-scrollbar-thumb {
695 } 757 }
696 </style> 758 </style>
697 <style lang="scss" scoped> 759 <style lang="scss" scoped>
  760 +.hide {
  761 + display: none;
  762 +}
698 .page-container { 763 .page-container {
699 position: relative; 764 position: relative;
700 height: 100%; 765 height: 100%;