Commit dbbfc6c5bac371f34ac43c2edcdddc0cae0afa1e

Authored by 梁保满
1 parent 8ea67428

飞书优化及bug

src/views/analysis/index.vue
@@ -240,7 +240,7 @@ export default { @@ -240,7 +240,7 @@ export default {
240 let query = {}; 240 let query = {};
241 for (let key in this.query) { 241 for (let key in this.query) {
242 if (this.query[key] != "") { 242 if (this.query[key] != "") {
243 - if (key == gradeName) { 243 + if (key == "gradeName") {
244 query[key] = this.query[key]=="全部"?"":this.query[key]; 244 query[key] = this.query[key]=="全部"?"":this.query[key];
245 } else { 245 } else {
246 query[key] = this.query[key]; 246 query[key] = this.query[key];
@@ -335,7 +335,9 @@ export default { @@ -335,7 +335,9 @@ export default {
335 ...params, 335 ...params,
336 }; 336 };
337 }); 337 });
338 - this.dataList = dataList; 338 + this.dataList = dataList.sort((a,b)=>{
  339 + return a.grade-b.grade
  340 + });
339 } else { 341 } else {
340 this.$message.error(info); 342 this.$message.error(info);
341 } 343 }
src/views/ask/analysis.vue
@@ -112,7 +112,7 @@ @@ -112,7 +112,7 @@
112 prop="fallible" 112 prop="fallible"
113 label="干扰答案" 113 label="干扰答案"
114 align="center" 114 align="center"
115 - ><template slot-scope="scoped">{{scoped.row.fallible==1?"✓":scoped.row.fallible==2?"✗":scoped.row.correctAnswer}}</template></el-table-column> 115 + ><template slot-scope="scoped">{{scoped.row.fallible==1?"✓":scoped.row.fallible==2?"✗":scoped.row.fallible}}</template></el-table-column>
116 <!-- <el-table-column prop="screenshot" label="题干" align="center"> 116 <!-- <el-table-column prop="screenshot" label="题干" align="center">
117 <template slot-scope="scoped"> 117 <template slot-scope="scoped">
118 <el-image 118 <el-image
@@ -411,7 +411,16 @@ export default { @@ -411,7 +411,16 @@ export default {
411 }, 411 },
412 }; 412 };
413 </script> 413 </script>
414 - 414 +<style>
  415 +div::-webkit-scrollbar {
  416 + width: 3px;
  417 + height: 10px;
  418 +}
  419 +div::-webkit-scrollbar-thumb {
  420 + border-radius: 10px;
  421 + background-color: #ccc;
  422 +}
  423 +</style>
415 <style lang="scss" scoped> 424 <style lang="scss" scoped>
416 .down { 425 .down {
417 padding-top: 20px; 426 padding-top: 20px;
src/views/ask/index.vue
1 <template> 1 <template>
2 - <div> 2 + <div class="main" ref="main">
3 <back-box> 3 <back-box>
4 <template slot="title"> 4 <template slot="title">
5 <span>问答-数据报表</span> 5 <span>问答-数据报表</span>
@@ -7,12 +7,7 @@ @@ -7,12 +7,7 @@
7 </back-box> 7 </back-box>
8 <div class="answer-header"> 8 <div class="answer-header">
9 <div class="sel-box"> 9 <div class="sel-box">
10 - <el-select  
11 - class="sel"  
12 - v-model="query.classId"  
13 - placeholder="选择班级"  
14 - @change="changClazz"  
15 - > 10 + <el-select class="sel" v-model="query.classId" placeholder="选择班级">
16 <el-option 11 <el-option
17 v-for="item in classList" 12 v-for="item in classList"
18 :key="item.value" 13 :key="item.value"
@@ -27,7 +22,7 @@ @@ -27,7 +22,7 @@
27 multiple 22 multiple
28 v-model="query.subjectNames" 23 v-model="query.subjectNames"
29 placeholder="选择科目" 24 placeholder="选择科目"
30 - @change="_QueryData" 25 + @change="changeSub"
31 > 26 >
32 <el-option 27 <el-option
33 v-for="item in subjectList" 28 v-for="item in subjectList"
@@ -42,7 +37,6 @@ @@ -42,7 +37,6 @@
42 class="sel" 37 class="sel"
43 v-model="query.subjectNames" 38 v-model="query.subjectNames"
44 placeholder="选择科目" 39 placeholder="选择科目"
45 - @change="_QueryData"  
46 > 40 >
47 <el-option 41 <el-option
48 v-for="item in subjectList" 42 v-for="item in subjectList"
@@ -260,16 +254,18 @@ @@ -260,16 +254,18 @@
260 align="center" 254 align="center"
261 ></el-table-column> 255 ></el-table-column>
262 </el-table> 256 </el-table>
263 - <el-table v-else :data="tableData" border style="width: 100%"> 257 + <el-table :max-height="tableMaxHeight" v-else :data="tableData" border style="width: 100%">
264 <el-table-column 258 <el-table-column
265 prop="studentCode" 259 prop="studentCode"
266 label="学号" 260 label="学号"
267 align="center" 261 align="center"
  262 + fixed
268 ></el-table-column> 263 ></el-table-column>
269 <el-table-column 264 <el-table-column
270 prop="studentName" 265 prop="studentName"
271 label="姓名" 266 label="姓名"
272 align="center" 267 align="center"
  268 + fixed
273 width="100" 269 width="100"
274 ></el-table-column> 270 ></el-table-column>
275 <el-table-column 271 <el-table-column
@@ -278,16 +274,36 @@ @@ -278,16 +274,36 @@
278 :label="item" 274 :label="item"
279 align="center" 275 align="center"
280 > 276 >
281 - <el-table-column align="center" :label="index==0?'总课时数':'课时数'" :prop="'periodCount'+item"> </el-table-column>  
282 - <el-table-column align="center" :label="index==0?'总出题数':'出题数'" :prop="'questionNum'+item"> </el-table-column>  
283 - <el-table-column align="center" :label="index==0?'总参与度':'参与度'" :prop="'participationRate'+item"> </el-table-column>  
284 - <el-table-column align="center" :label="index==0?'总正确率':'正确率'" :prop="'correctRate'+item"> </el-table-column> 277 + <el-table-column
  278 + align="center"
  279 + :label="index == 0 ? '总课时数' : '课时数'"
  280 + :prop="'periodCount' + item"
  281 + >
  282 + </el-table-column>
  283 + <el-table-column
  284 + align="center"
  285 + :label="index == 0 ? '总出题数' : '出题数'"
  286 + :prop="'questionNum' + item"
  287 + >
  288 + </el-table-column>
  289 + <el-table-column
  290 + align="center"
  291 + :label="index == 0 ? '总参与度' : '参与度'"
  292 + :prop="'participationRate' + item"
  293 + >
  294 + </el-table-column>
  295 + <el-table-column
  296 + align="center"
  297 + :label="index == 0 ? '总正确率' : '正确率'"
  298 + :prop="'correctRate' + item"
  299 + ><template slot-scope="scoped">{{scoped.row['correctRate' + item]}}%</template>
  300 + </el-table-column>
285 </el-table-column> 301 </el-table-column>
286 </el-table> 302 </el-table>
287 </div> 303 </div>
288 <div v-show="tabIndex == 3"> 304 <div v-show="tabIndex == 3">
289 <el-table 305 <el-table
290 - v-if="role == 'ROLE_JIAOSHI'" 306 + v-if="role == 'ROLE_JIAOSHI'"
291 :data="tableData" 307 :data="tableData"
292 border 308 border
293 style="width: 100%" 309 style="width: 100%"
@@ -359,8 +375,36 @@ @@ -359,8 +375,36 @@
359 :label="item" 375 :label="item"
360 align="center" 376 align="center"
361 > 377 >
362 - <el-table-column align="center" :label="index==0?'参与分':'互动数'" :prop="'interactionsNum'+item"> </el-table-column>  
363 - <el-table-column align="center" :label="index==0?'对错分':'参与数'" :prop="'interactionsCorrectNum'+item"> </el-table-column> 378 + <el-table-column
  379 + align="center"
  380 + v-if="index == 0"
  381 + label="参与分"
  382 + sortable
  383 + :prop="'interactionsNum' + item"
  384 + >
  385 + </el-table-column>
  386 + <el-table-column
  387 + v-else
  388 + align="center"
  389 + label="互动数"
  390 + :prop="'interactionsNum' + item"
  391 + >
  392 + </el-table-column>
  393 + <el-table-column
  394 + v-if="index == 0"
  395 + align="center"
  396 + label="对错分"
  397 + sortable
  398 + :prop="'interactionsCorrectNum' + item"
  399 + >
  400 + </el-table-column>
  401 + <el-table-column
  402 + v-else
  403 + align="center"
  404 + label="参与数"
  405 + :prop="'interactionsCorrectNum' + item"
  406 + >
  407 + </el-table-column>
364 </el-table-column> 408 </el-table-column>
365 </el-table> 409 </el-table>
366 </div> 410 </div>
@@ -402,6 +446,7 @@ import { formatDate, deepClone, downloadFile } from &quot;utils&quot;; @@ -402,6 +446,7 @@ import { formatDate, deepClone, downloadFile } from &quot;utils&quot;;
402 export default { 446 export default {
403 data() { 447 data() {
404 return { 448 return {
  449 + tableMaxHeight:300,
405 role: "", 450 role: "",
406 loading: false, 451 loading: false,
407 dialogVisible: false, 452 dialogVisible: false,
@@ -424,8 +469,8 @@ export default { @@ -424,8 +469,8 @@ export default {
424 subjectList: [], //科目 469 subjectList: [], //科目
425 tabIndex: 1, //选项卡 470 tabIndex: 1, //选项卡
426 tableData: [], 471 tableData: [],
427 - phaseOption: [],//问答补充数据  
428 - phaseInter:[],//互动补充数据 472 + phaseOption: [], //问答补充数据
  473 + phaseInter: [], //互动补充数据
429 page: 1, 474 page: 1,
430 size: 20, 475 size: 20,
431 total: 0, 476 total: 0,
@@ -446,6 +491,17 @@ export default { @@ -446,6 +491,17 @@ export default {
446 } 491 }
447 }, 492 },
448 methods: { 493 methods: {
  494 + changeSub(val) {
  495 + let sub;
  496 + if (val && val.length) {
  497 + let leng = val.length - 1;
  498 + sub = val[leng];
  499 + }
  500 + console.log(val);
  501 + this.query.subjectNames = val.filter((item) => {
  502 + return sub != "全部" ? item != "全部" : item == "全部";
  503 + });
  504 + },
449 linkTo(obj) { 505 linkTo(obj) {
450 //去详情 506 //去详情
451 this.$router.push({ 507 this.$router.push({
@@ -547,7 +603,9 @@ export default { @@ -547,7 +603,9 @@ export default {
547 this._QueryData(); 603 this._QueryData();
548 }, 604 },
549 tabChange() { 605 tabChange() {
  606 + this.tableMaxHeight = this.$refs.main.offsetHeight
550 this.page = 1; 607 this.page = 1;
  608 + this.tableData = [];
551 this._QueryData(); 609 this._QueryData();
552 }, 610 },
553 sortChange(obj) { 611 sortChange(obj) {
@@ -643,6 +701,7 @@ export default { @@ -643,6 +701,7 @@ export default {
643 query.subjectNames = [query.subjectNames]; 701 query.subjectNames = [query.subjectNames];
644 } else { 702 } else {
645 if ( 703 if (
  704 + query["subjectNames"] &&
646 query["subjectNames"].length == 1 && 705 query["subjectNames"].length == 1 &&
647 query["subjectNames"][0] == "全部" 706 query["subjectNames"][0] == "全部"
648 ) { 707 ) {
@@ -651,6 +710,10 @@ export default { @@ -651,6 +710,10 @@ export default {
651 }); 710 });
652 query["subjectNames"].shift(); 711 query["subjectNames"].shift();
653 } 712 }
  713 + if (!query["subjectNames"]) {
  714 + this.$message.warning("请选择科目");
  715 + return;
  716 + }
654 } 717 }
655 const { data, status, info } = await this.$request.periodReportList({ 718 const { data, status, info } = await this.$request.periodReportList({
656 ...query, 719 ...query,
@@ -680,6 +743,7 @@ export default { @@ -680,6 +743,7 @@ export default {
680 } 743 }
681 if (this.role == "ROLE_BANZHUREN") { 744 if (this.role == "ROLE_BANZHUREN") {
682 if ( 745 if (
  746 + query["subjectNames"] &&
683 query["subjectNames"].length == 1 && 747 query["subjectNames"].length == 1 &&
684 query["subjectNames"][0] == "全部" 748 query["subjectNames"][0] == "全部"
685 ) { 749 ) {
@@ -688,6 +752,10 @@ export default { @@ -688,6 +752,10 @@ export default {
688 }); 752 });
689 query["subjectNames"].shift(); 753 query["subjectNames"].shift();
690 } 754 }
  755 + if (!query["subjectNames"]) {
  756 + this.$message.warning("请选择科目");
  757 + return;
  758 + }
691 } 759 }
692 const phaseAnswerReport = 760 const phaseAnswerReport =
693 this.role == "ROLE_BANZHUREN" 761 this.role == "ROLE_BANZHUREN"
@@ -707,9 +775,11 @@ export default { @@ -707,9 +775,11 @@ export default {
707 if (!subjectName.includes(items.subjectName)) { 775 if (!subjectName.includes(items.subjectName)) {
708 subjectName.push(items.subjectName); 776 subjectName.push(items.subjectName);
709 } 777 }
710 - params["answerCorrectRate" + items.subjectName] = items.answerCorrectRate; 778 + params["answerCorrectRate" + items.subjectName] =
  779 + items.answerCorrectRate;
711 params["correctRate" + items.subjectName] = items.correctRate; 780 params["correctRate" + items.subjectName] = items.correctRate;
712 - params["participationRate" + items.subjectName] = items.participationRate; 781 + params["participationRate" + items.subjectName] =
  782 + items.participationRate;
713 params["periodCount" + items.subjectName] = items.periodCount; 783 params["periodCount" + items.subjectName] = items.periodCount;
714 params["questionNum" + items.subjectName] = items.questionNum; 784 params["questionNum" + items.subjectName] = items.questionNum;
715 }); 785 });
@@ -742,6 +812,7 @@ export default { @@ -742,6 +812,7 @@ export default {
742 } 812 }
743 if (this.role == "ROLE_BANZHUREN") { 813 if (this.role == "ROLE_BANZHUREN") {
744 if ( 814 if (
  815 + query["subjectNames"] &&
745 query["subjectNames"].length == 1 && 816 query["subjectNames"].length == 1 &&
746 query["subjectNames"][0] == "全部" 817 query["subjectNames"][0] == "全部"
747 ) { 818 ) {
@@ -750,6 +821,10 @@ export default { @@ -750,6 +821,10 @@ export default {
750 }); 821 });
751 query["subjectNames"].shift(); 822 query["subjectNames"].shift();
752 } 823 }
  824 + if (!query["subjectNames"]) {
  825 + this.$message.warning("请选择科目");
  826 + return;
  827 + }
753 } 828 }
754 const phaseInteractiveReport = 829 const phaseInteractiveReport =
755 this.role == "ROLE_BANZHUREN" 830 this.role == "ROLE_BANZHUREN"
@@ -769,8 +844,10 @@ export default { @@ -769,8 +844,10 @@ export default {
769 if (!subjectName.includes(items.subjectName)) { 844 if (!subjectName.includes(items.subjectName)) {
770 subjectName.push(items.subjectName); 845 subjectName.push(items.subjectName);
771 } 846 }
772 - params["interactionsNum" + items.subjectName] = items.interactionsNum;  
773 - params["interactionsCorrectNum" + items.subjectName] = items.interactionsCorrectNum; 847 + params["interactionsNum" + items.subjectName] =
  848 + items.interactionsNum;
  849 + params["interactionsCorrectNum" + items.subjectName] =
  850 + items.interactionsCorrectNum;
774 }); 851 });
775 return { 852 return {
776 ...item, 853 ...item,
@@ -801,8 +878,20 @@ export default { @@ -801,8 +878,20 @@ export default {
801 }, 878 },
802 }; 879 };
803 </script> 880 </script>
804 - 881 +<style>
  882 +div::-webkit-scrollbar {
  883 + width: 3px;
  884 + height: 10px;
  885 +}
  886 +div::-webkit-scrollbar-thumb {
  887 + border-radius: 10px;
  888 + background-color: #ccc;
  889 +}
  890 +</style>
805 <style lang="scss" scoped> 891 <style lang="scss" scoped>
  892 +.main{
  893 + height:100%;
  894 +}
806 .table-box { 895 .table-box {
807 margin: 0 20px; 896 margin: 0 20px;
808 padding: 16px; 897 padding: 16px;
src/views/device/index.vue
@@ -517,6 +517,7 @@ export default { @@ -517,6 +517,7 @@ export default {
517 type: "", 517 type: "",
518 }, 518 },
519 statusList: [ 519 statusList: [
  520 + { label: "全部", value: "" },
520 { label: "离线", value: 0 }, 521 { label: "离线", value: 0 },
521 { label: "在线", value: 1 }, 522 { label: "在线", value: 1 },
522 { label: "异常", value: 2 }, 523 { label: "异常", value: 2 },
@@ -916,7 +917,7 @@ export default { @@ -916,7 +917,7 @@ export default {
916 this.loading = false; 917 this.loading = false;
917 if (status == 0) { 918 if (status == 0) {
918 this.tableData = 919 this.tableData =
919 - data?.list.map((item) => { 920 + data?.list&&data?.list.map((item) => {
920 item.upgradeFlag = item.upgradeFlag == 1 ? true : false; 921 item.upgradeFlag = item.upgradeFlag == 1 ? true : false;
921 return item; 922 return item;
922 }) || []; 923 }) || [];
src/views/device/log.vue
@@ -64,6 +64,9 @@ @@ -64,6 +64,9 @@
64 >本季度</span 64 >本季度</span
65 > 65 >
66 </p> 66 </p>
  67 + <el-button class="serach-box" round @click="_QueryData"
  68 + >筛选</el-button
  69 + >
67 </div> 70 </div>
68 </div> 71 </div>
69 <div class="table-box"> 72 <div class="table-box">
@@ -284,7 +287,7 @@ export default { @@ -284,7 +287,7 @@ export default {
284 }); 287 });
285 this.loading = false; 288 this.loading = false;
286 if (status === 0) { 289 if (status === 0) {
287 - this.tableData = [...data?.list] || []; 290 + this.tableData = data?.list&&[...data?.list] || [];
288 this.total = data.count; 291 this.total = data.count;
289 } else { 292 } else {
290 this.$message.error(info); 293 this.$message.error(info);
src/views/down/client.vue
@@ -54,7 +54,7 @@ @@ -54,7 +54,7 @@
54 <i class="fa fa-mail-reply-all"></i> 54 <i class="fa fa-mail-reply-all"></i>
55 <p> 55 <p>
56 {{ 56 {{
57 - `${type == 1 ? "参数设置" : formData.configName + "-修改入口"}` 57 + `${type == 1 ? "参数设置" : formData.configName}`
58 }} 58 }}
59 </p> 59 </p>
60 </div> 60 </div>
@@ -66,7 +66,7 @@ @@ -66,7 +66,7 @@
66 :rules="ruleForm" 66 :rules="ruleForm"
67 label-width="180px" 67 label-width="180px"
68 > 68 >
69 - <el-form-item label="主菜单设置:" prop="configName" v-if="type == 1"> 69 + <el-form-item label="配置名称:" prop="configName" v-if="type == 1">
70 <el-col :span="12"> 70 <el-col :span="12">
71 <el-input 71 <el-input
72 v-model.trim="formData.configName" 72 v-model.trim="formData.configName"
@@ -169,7 +169,7 @@ @@ -169,7 +169,7 @@
169 :step="1" 169 :step="1"
170 :step-strictly="true" 170 :step-strictly="true"
171 ></el-input-number> 171 ></el-input-number>
172 - <span v-show="formData.viesAnswerSet != 2">秒</span> 172 + <span v-show="formData.viesAnswerSet == 0">秒</span>
173 </el-form-item> 173 </el-form-item>
174 <el-form-item label="抽答设置:" prop="ballotAnswerSet"> 174 <el-form-item label="抽答设置:" prop="ballotAnswerSet">
175 <el-radio-group v-model="formData.ballotAnswerSet"> 175 <el-radio-group v-model="formData.ballotAnswerSet">
src/views/layout/layout.vue
@@ -109,6 +109,7 @@ ul.el-menu { @@ -109,6 +109,7 @@ ul.el-menu {
109 #elmain { 109 #elmain {
110 background-color: #fff; 110 background-color: #fff;
111 padding: 0; 111 padding: 0;
  112 + min-height:calc(100% - 78px);
112 } 113 }
113 114
114 .avatar-uploader .el-upload { 115 .avatar-uploader .el-upload {
src/views/login/index.vue
@@ -95,16 +95,10 @@ export default { @@ -95,16 +95,10 @@ export default {
95 loginForm: { 95 loginForm: {
96 // username: "15911715665", 96 // username: "15911715665",
97 // password: "Csiy88888", 97 // password: "Csiy88888",
98 - // username: "13610050254",  
99 - // password: "Pw050254#",  
100 - // username: "18332123505",  
101 - // password: "Pw123505#",  
102 username: "18687826606", 98 username: "18687826606",
103 password: "Pw826606#", 99 password: "Pw826606#",
104 - // username: "18946034886",  
105 - // password: "Pw034886#",  
106 // username: "18893712576", 100 // username: "18893712576",
107 - // password: "Pw712576#", 101 + // password: "712576",
108 // username: "13247726488", 102 // username: "13247726488",
109 // password: "726488", 103 // password: "726488",
110 // username: "13319607658", 104 // username: "13319607658",
src/views/setUp/account.vue
@@ -132,9 +132,9 @@ @@ -132,9 +132,9 @@
132 label="管辖范围" 132 label="管辖范围"
133 align="center" 133 align="center"
134 > 134 >
135 - <template slot-scope="scoped" v-if="scoped.row.regionList">  
136 - <span v-for="item in scoped.row.regionList" :key="item.id">{{  
137 - item.regionName 135 + <template slot-scope="scoped" v-if="scoped.row.schoolList.length">
  136 + <span v-for="item in scoped.row.schoolList" :key="item.id">{{
  137 + item.schoolName
138 }}</span> 138 }}</span>
139 </template> 139 </template>
140 </el-table-column> 140 </el-table-column>
@@ -461,7 +461,7 @@ export default { @@ -461,7 +461,7 @@ export default {
461 if (this.role != "ROLE_JITUAN") { 461 if (this.role != "ROLE_JITUAN") {
462 this.formCount.userId = obj.userId; 462 this.formCount.userId = obj.userId;
463 } else { 463 } else {
464 - this.formCount.id = obj.id; 464 + this.formCount.userId = obj.id;
465 } 465 }
466 this.formCount.loginName = obj.loginName; 466 this.formCount.loginName = obj.loginName;
467 this.formCount.realName = obj.realName; 467 this.formCount.realName = obj.realName;
@@ -503,6 +503,7 @@ export default { @@ -503,6 +503,7 @@ export default {
503 }); 503 });
504 if (status === 0) { 504 if (status === 0) {
505 this.$message.success(info); 505 this.$message.success(info);
  506 + this.diaCount=false
506 this._QueryData(4); 507 this._QueryData(4);
507 } else { 508 } else {
508 this.$message.error(info); 509 this.$message.error(info);
@@ -548,7 +549,7 @@ export default { @@ -548,7 +549,7 @@ export default {
548 ...query, 549 ...query,
549 }) 550 })
550 : await this.$request.tenantUpdateUser({ 551 : await this.$request.tenantUpdateUser({
551 - id: obj.id, 552 + userId: obj.id,
552 type: type, 553 type: type,
553 ...query, 554 ...query,
554 }); 555 });
src/views/test/analysis.vue
1 <template> 1 <template>
2 - <div class="page-container" :class="dialogVisible ? 'active' : ''"> 2 + <div ref="main" class="page-container" :class="dialogVisible ? 'active' : ''">
3 <back-box> 3 <back-box>
4 <template slot="title"> 4 <template slot="title">
5 <span>单卷分析</span> 5 <span>单卷分析</span>
@@ -31,39 +31,41 @@ @@ -31,39 +31,41 @@
31 <span 31 <span
32 class="tab-item" 32 class="tab-item"
33 :class="type == 1 ? 'active' : ''" 33 :class="type == 1 ? 'active' : ''"
34 - @click="type = 1" 34 + @click="setType(1)"
35 >试题分析</span 35 >试题分析</span
36 > 36 >
37 <span 37 <span
38 class="tab-item" 38 class="tab-item"
39 :class="type == 2 ? 'active' : ''" 39 :class="type == 2 ? 'active' : ''"
40 - @click="type = 2" 40 + @click="setType(2)"
41 >成绩排名</span 41 >成绩排名</span
42 > 42 >
43 <span 43 <span
44 class="tab-item" 44 class="tab-item"
45 :class="type == 3 ? 'active' : ''" 45 :class="type == 3 ? 'active' : ''"
46 - @click="type = 3" 46 + @click="setType(3)"
47 >小题分报表</span 47 >小题分报表</span
48 > 48 >
49 <span 49 <span
50 class="tab-item" 50 class="tab-item"
51 :class="type == 4 ? 'active' : ''" 51 :class="type == 4 ? 'active' : ''"
52 - @click="type = 4" 52 + @click="setType(4)"
53 >作答明细表</span 53 >作答明细表</span
54 > 54 >
55 </div> 55 </div>
56 - <el-table v-show="type == 1" :data="tableData" border style="width: 100%"> 56 + <el-table :max-height="tableMaxHeight" v-show="type == 1" :data="tableData" border style="width: 100%">
57 <el-table-column 57 <el-table-column
58 prop="questionIndex" 58 prop="questionIndex"
59 label="题号" 59 label="题号"
60 align="center" 60 align="center"
  61 + fixed
61 width="60" 62 width="60"
62 ></el-table-column> 63 ></el-table-column>
63 <el-table-column 64 <el-table-column
64 prop="questionType" 65 prop="questionType"
65 label="题型" 66 label="题型"
66 align="center" 67 align="center"
  68 + fixed
67 width="100" 69 width="100"
68 ><template slot-scope="scope">{{ 70 ><template slot-scope="scope">{{
69 setSubPro(scope.row.questionType) 71 setSubPro(scope.row.questionType)
@@ -120,7 +122,7 @@ @@ -120,7 +122,7 @@
120 v-for="(item, index) in optionsList" 122 v-for="(item, index) in optionsList"
121 :key="index" 123 :key="index"
122 :label="'选项' + (index + 1)" 124 :label="'选项' + (index + 1)"
123 - :prop="'option' + index" 125 + :prop="'count' + index"
124 align="center" 126 align="center"
125 > 127 >
126 </el-table-column> 128 </el-table-column>
@@ -170,6 +172,7 @@ @@ -170,6 +172,7 @@
170 </div> 172 </div>
171 <el-table 173 <el-table
172 v-show="type == 2" 174 v-show="type == 2"
  175 + :max-height="tableMaxHeight"
173 :data="tableData2" 176 :data="tableData2"
174 border 177 border
175 style="width: 100%" 178 style="width: 100%"
@@ -241,6 +244,7 @@ @@ -241,6 +244,7 @@
241 </el-table> 244 </el-table>
242 <el-table 245 <el-table
243 v-show="type == 3" 246 v-show="type == 3"
  247 + :max-height="tableMaxHeight"
244 :data="tableData2" 248 :data="tableData2"
245 border 249 border
246 style="width: 100%" 250 style="width: 100%"
@@ -249,11 +253,13 @@ @@ -249,11 +253,13 @@
249 <el-table-column 253 <el-table-column
250 prop="studentCode" 254 prop="studentCode"
251 label="学号" 255 label="学号"
  256 + fixed
252 align="center" 257 align="center"
253 ></el-table-column> 258 ></el-table-column>
254 <el-table-column 259 <el-table-column
255 prop="studentName" 260 prop="studentName"
256 label="姓名" 261 label="姓名"
  262 + fixed
257 align="center" 263 align="center"
258 ></el-table-column> 264 ></el-table-column>
259 <el-table-column 265 <el-table-column
@@ -284,6 +290,7 @@ @@ -284,6 +290,7 @@
284 </el-table-column> 290 </el-table-column>
285 </el-table> 291 </el-table>
286 <el-table 292 <el-table
  293 + :max-height="tableMaxHeight"
287 v-show="type == 4" 294 v-show="type == 4"
288 :data="tableData2" 295 :data="tableData2"
289 border 296 border
@@ -293,11 +300,13 @@ @@ -293,11 +300,13 @@
293 <el-table-column 300 <el-table-column
294 prop="studentCode" 301 prop="studentCode"
295 label="学号" 302 label="学号"
  303 + fixed
296 align="center" 304 align="center"
297 ></el-table-column> 305 ></el-table-column>
298 <el-table-column 306 <el-table-column
299 prop="studentName" 307 prop="studentName"
300 label="姓名" 308 label="姓名"
  309 + fixed
301 align="center" 310 align="center"
302 ></el-table-column> 311 ></el-table-column>
303 <el-table-column 312 <el-table-column
@@ -306,7 +315,7 @@ @@ -306,7 +315,7 @@
306 align="center" 315 align="center"
307 ></el-table-column> 316 ></el-table-column>
308 <el-table-column 317 <el-table-column
309 - prop="examPaperScore" 318 + prop="examScore"
310 label="总分" 319 label="总分"
311 sortable 320 sortable
312 align="center" 321 align="center"
@@ -363,11 +372,12 @@ @@ -363,11 +372,12 @@
363 v-loading="exportLoading" 372 v-loading="exportLoading"
364 >导入主观题分数</el-button 373 >导入主观题分数</el-button
365 > 374 >
366 - <el-button @click="edit" type="primary" round>设置答案</el-button> 375 + <el-button @click="edit" type="primary" round>修改答案</el-button>
367 </div> 376 </div>
368 </div> 377 </div>
369 <div class="edit-dia" v-show="dialogVisible" height="100%"> 378 <div class="edit-dia" v-show="dialogVisible" height="100%">
370 <editAnswer 379 <editAnswer
  380 + ref="editAnswer"
371 :title="title" 381 :title="title"
372 :score="score" 382 :score="score"
373 @cancel="cancel" 383 @cancel="cancel"
@@ -399,6 +409,7 @@ export default { @@ -399,6 +409,7 @@ export default {
399 components: { editAnswer }, 409 components: { editAnswer },
400 data() { 410 data() {
401 return { 411 return {
  412 + tableMaxHeight:300,
402 loading: false, 413 loading: false,
403 exportLoading: false, 414 exportLoading: false,
404 diaUp: false, 415 diaUp: false,
@@ -443,6 +454,10 @@ export default { @@ -443,6 +454,10 @@ export default {
443 this._QueryData(); 454 this._QueryData();
444 }, 455 },
445 methods: { 456 methods: {
  457 + setType(type){
  458 + this.tableMaxHeight = this.$refs.main.offsetHeight-120
  459 + this.type=type
  460 + },
446 setSubPro(type) { 461 setSubPro(type) {
447 let tit; 462 let tit;
448 switch (type) { 463 switch (type) {
@@ -580,6 +595,7 @@ export default { @@ -580,6 +595,7 @@ export default {
580 } 595 }
581 console.log(detail); 596 console.log(detail);
582 detail.map((items, index) => { 597 detail.map((items, index) => {
  598 + params["count" + index] = items.count;
583 params["option" + index] = 599 params["option" + index] =
584 items.option == 1 ? "✓" : items.option == 2 ? "✗" : items.option; 600 items.option == 1 ? "✓" : items.option == 2 ? "✗" : items.option;
585 }); 601 });
@@ -609,12 +625,21 @@ export default { @@ -609,12 +625,21 @@ export default {
609 }, 625 },
610 }; 626 };
611 </script> 627 </script>
612 - 628 +<style>
  629 +div::-webkit-scrollbar {
  630 + width: 3px;
  631 + height: 10px;
  632 +}
  633 +div::-webkit-scrollbar-thumb {
  634 + border-radius: 10px;
  635 + background-color: #ccc;
  636 +}
  637 +</style>
613 <style lang="scss" scoped> 638 <style lang="scss" scoped>
614 .page-container { 639 .page-container {
615 position: relative; 640 position: relative;
  641 + min-height: 100%;
616 &.active { 642 &.active {
617 - height: 100%;  
618 overflow: hidden; 643 overflow: hidden;
619 } 644 }
620 .edit-dia { 645 .edit-dia {
src/views/test/index.vue
1 <template> 1 <template>
2 - <div class="page-container" :class="dialogVisible ? 'active' : ''"> 2 + <div ref="main" class="page-container" :class="dialogVisible ? 'active' : ''">
3 <back-box> 3 <back-box>
4 <template slot="title"> 4 <template slot="title">
5 <span>即时测-数据报表</span> 5 <span>即时测-数据报表</span>
@@ -26,6 +26,7 @@ @@ -26,6 +26,7 @@
26 multiple 26 multiple
27 v-model="query.subjectNames" 27 v-model="query.subjectNames"
28 placeholder="选择科目" 28 placeholder="选择科目"
  29 + @change="changeSub"
29 > 30 >
30 <el-option 31 <el-option
31 v-for="item in subjectList" 32 v-for="item in subjectList"
@@ -121,7 +122,7 @@ @@ -121,7 +122,7 @@
121 ><template slot-scope="scoped">{{ 122 ><template slot-scope="scoped">{{
122 scoped.row.subjectiveScore == scoped.row.examPaperScore || 123 scoped.row.subjectiveScore == scoped.row.examPaperScore ||
123 scoped.row.answerNum == 0 124 scoped.row.answerNum == 0
124 - ? scoped.row.avgScore || "-" 125 + ? "-"
125 : scoped.row.avgScore 126 : scoped.row.avgScore
126 }}</template></el-table-column 127 }}</template></el-table-column
127 > 128 >
@@ -129,7 +130,7 @@ @@ -129,7 +130,7 @@
129 ><template slot-scope="scoped">{{ 130 ><template slot-scope="scoped">{{
130 scoped.row.subjectiveScore == scoped.row.examPaperScore || 131 scoped.row.subjectiveScore == scoped.row.examPaperScore ||
131 scoped.row.answerNum == 0 132 scoped.row.answerNum == 0
132 - ? scoped.row.highestScore || "-" 133 + ? "-"
133 : scoped.row.highestScore 134 : scoped.row.highestScore
134 }}</template></el-table-column 135 }}</template></el-table-column
135 > 136 >
@@ -137,7 +138,7 @@ @@ -137,7 +138,7 @@
137 ><template slot-scope="scoped">{{ 138 ><template slot-scope="scoped">{{
138 scoped.row.subjectiveScore == scoped.row.examPaperScore || 139 scoped.row.subjectiveScore == scoped.row.examPaperScore ||
139 scoped.row.answerNum == 0 140 scoped.row.answerNum == 0
140 - ? scoped.row.lowestScore || "-" 141 + ? "-"
141 : scoped.row.lowestScore 142 : scoped.row.lowestScore
142 }}</template></el-table-column 143 }}</template></el-table-column
143 > 144 >
@@ -149,8 +150,8 @@ @@ -149,8 +150,8 @@
149 ><template slot-scope="scoped">{{ 150 ><template slot-scope="scoped">{{
150 scoped.row.subjectiveScore == scoped.row.examPaperScore || 151 scoped.row.subjectiveScore == scoped.row.examPaperScore ||
151 scoped.row.answerNum == 0 152 scoped.row.answerNum == 0
152 - ? scoped.row.excellenNum || "-"  
153 - : `${scoped.row.excellenNum}/${scoped.row.excellenRate}%` 153 + ? "-"
  154 + : scoped.row.excellenNum?`${scoped.row.excellenNum}/${scoped.row.excellenRate}%`:scoped.row.excellenNum
154 }}</template></el-table-column 155 }}</template></el-table-column
155 > 156 >
156 <el-table-column 157 <el-table-column
@@ -162,8 +163,8 @@ @@ -162,8 +163,8 @@
162 >{{ 163 >{{
163 scoped.row.subjectiveScore == scoped.row.examPaperScore || 164 scoped.row.subjectiveScore == scoped.row.examPaperScore ||
164 scoped.row.answerNum == 0 165 scoped.row.answerNum == 0
165 - ? scoped.row.goodNum || "-"  
166 - : `${scoped.row.goodNum}/${scoped.row.goodRate}%` 166 + ? "-"
  167 + : scoped.row.goodNum?`${scoped.row.goodNum}/${scoped.row.goodRate}%`:scoped.row.goodNum
167 }} 168 }}
168 </template></el-table-column 169 </template></el-table-column
169 > 170 >
@@ -176,8 +177,8 @@ @@ -176,8 +177,8 @@
176 >{{ 177 >{{
177 scoped.row.subjectiveScore == scoped.row.examPaperScore || 178 scoped.row.subjectiveScore == scoped.row.examPaperScore ||
178 scoped.row.answerNum == 0 179 scoped.row.answerNum == 0
179 - ? scoped.row.passNum || "-"  
180 - : `${scoped.row.passNum}/${scoped.row.passRate}%` 180 + ? "-"
  181 + : scoped.row.passNum?`${scoped.row.passNum}/${scoped.row.passRate}%`:scoped.row.passNum
181 }} 182 }}
182 </template></el-table-column 183 </template></el-table-column
183 > 184 >
@@ -189,8 +190,8 @@ @@ -189,8 +190,8 @@
189 ><template slot-scope="scoped">{{ 190 ><template slot-scope="scoped">{{
190 scoped.row.subjectiveScore == scoped.row.examPaperScore || 191 scoped.row.subjectiveScore == scoped.row.examPaperScore ||
191 scoped.row.answerNum == 0 192 scoped.row.answerNum == 0
192 - ? scoped.row.failedNum || "-"  
193 - : `${scoped.row.failedNum}/${scoped.row.failedRate}%` 193 + ? "-"
  194 + : scoped.row.failedNum?`${scoped.row.failedNum}/${scoped.row.failedRate}%`:scoped.row.failedNum
194 }}</template></el-table-column 195 }}</template></el-table-column
195 > 196 >
196 <el-table-column label="操作" align="center"> 197 <el-table-column label="操作" align="center">
@@ -290,7 +291,7 @@ @@ -290,7 +291,7 @@
290 ></el-table-column> 291 ></el-table-column>
291 </el-table-column> 292 </el-table-column>
292 </el-table> 293 </el-table>
293 - <el-table v-else :data="tableData" border style="width: 100%"> 294 + <el-table :max-height="tableMaxHeight" v-else :data="tableData" border style="width: 100%">
294 <el-table-column 295 <el-table-column
295 prop="studentCode" 296 prop="studentCode"
296 label="学号" 297 label="学号"
@@ -371,6 +372,7 @@ export default { @@ -371,6 +372,7 @@ export default {
371 components: { editAnswer }, 372 components: { editAnswer },
372 data() { 373 data() {
373 return { 374 return {
  375 + tableMaxHeight:300,
374 role: "", 376 role: "",
375 loading: false, 377 loading: false,
376 diaUp: false, 378 diaUp: false,
@@ -415,6 +417,17 @@ export default { @@ -415,6 +417,17 @@ export default {
415 } 417 }
416 }, 418 },
417 methods: { 419 methods: {
  420 + changeSub(val) {
  421 + let sub;
  422 + if (val && val.length) {
  423 + let leng = val.length - 1;
  424 + sub = val[leng];
  425 + }
  426 + console.log(val)
  427 + this.query.subjectNames = val.filter((item) => {
  428 + return sub != "全部" ? item != "全部" : item == "全部";
  429 + });
  430 + },
418 linkTo(obj) { 431 linkTo(obj) {
419 //去详情 432 //去详情
420 this.$router.push({ 433 this.$router.push({
@@ -516,6 +529,7 @@ export default { @@ -516,6 +529,7 @@ export default {
516 this.dialogVisible = true; 529 this.dialogVisible = true;
517 }, 530 },
518 changeTab() { 531 changeTab() {
  532 + this.tableMaxHeight = this.$refs.main.offsetHeight-100
519 this.page = 1; 533 this.page = 1;
520 this._QueryData(); 534 this._QueryData();
521 }, 535 },
@@ -614,9 +628,10 @@ export default { @@ -614,9 +628,10 @@ export default {
614 return item.value; 628 return item.value;
615 }); 629 });
616 query["subjectNames"].shift(); 630 query["subjectNames"].shift();
617 - }else{  
618 - this.loading = false;  
619 - return 631 + }
  632 + if (!query["subjectNames"]) {
  633 + this.$message.warning("请选择科目");
  634 + return;
620 } 635 }
621 } 636 }
622 const { data, status, info } = await this.$request.examReportList({ 637 const { data, status, info } = await this.$request.examReportList({
@@ -739,8 +754,8 @@ div::-webkit-scrollbar-thumb { @@ -739,8 +754,8 @@ div::-webkit-scrollbar-thumb {
739 <style lang="scss" scoped> 754 <style lang="scss" scoped>
740 .page-container { 755 .page-container {
741 position: relative; 756 position: relative;
  757 + min-height: 100%;
742 &.active { 758 &.active {
743 - height: 100%;  
744 overflow: hidden; 759 overflow: hidden;
745 } 760 }
746 } 761 }