Commit e17ec73967aa4fd63d93ee0f026998345a5e3649
1 parent
079cb4cf
随堂问,即时测导出爆表修改
Showing
16 changed files
with
448 additions
and
172 deletions
src/api/apis/apis.js
| @@ -1606,15 +1606,6 @@ export default { | @@ -1606,15 +1606,6 @@ export default { | ||
| 1606 | }, | 1606 | }, |
| 1607 | 1607 | ||
| 1608 | 1608 | ||
| 1609 | - /** v1.5 */ | ||
| 1610 | - // 教师/个人版查询答题卡列表的分享数量 | ||
| 1611 | - paperShareCount(data) { | ||
| 1612 | - return service({ | ||
| 1613 | - url: setUpUrls.paperShareCount, | ||
| 1614 | - method: "POST", | ||
| 1615 | - data | ||
| 1616 | - }); | ||
| 1617 | - }, | ||
| 1618 | // 教师/个人版导入备题组卷Word文档 | 1609 | // 教师/个人版导入备题组卷Word文档 |
| 1619 | paperWordUpload(data) { | 1610 | paperWordUpload(data) { |
| 1620 | return service({ | 1611 | return service({ |
src/api/urls/apis.js
| @@ -420,8 +420,6 @@ export default { | @@ -420,8 +420,6 @@ export default { | ||
| 420 | 420 | ||
| 421 | 421 | ||
| 422 | /** v1.5 */ | 422 | /** v1.5 */ |
| 423 | - // 教师/个人版查询答题卡列表的分享数量 | ||
| 424 | - paperShareCount: "/api_html/common/paper/paperShareCount", | ||
| 425 | // 教师/个人版导入备题组卷Word文档 | 423 | // 教师/个人版导入备题组卷Word文档 |
| 426 | paperWordUpload: "/api_html/common/paper/upload", | 424 | paperWordUpload: "/api_html/common/paper/upload", |
| 427 | // 删除随堂问报表 | 425 | // 删除随堂问报表 |
src/components/exportDia.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div> | ||
| 3 | + <el-dialog :close-on-click-modal="false" :visible.sync="diaShow" width="360px"> | ||
| 4 | + <div v-show="exportType == 1"> | ||
| 5 | + <div class="down-item"> | ||
| 6 | + <p class="tit">是否将学生表现折线图一起导出</p> | ||
| 7 | + <el-radio-group v-model="downType" @change="changeDownType"> | ||
| 8 | + <el-radio :label="1">不导出</el-radio> | ||
| 9 | + <el-radio :label="2">导出</el-radio> | ||
| 10 | + </el-radio-group> | ||
| 11 | + </div> | ||
| 12 | + <div class="down-item" v-show="downType == 2"> | ||
| 13 | + <p class="tit">选择要导出的学生</p> | ||
| 14 | + <el-radio-group v-model="exportType"> | ||
| 15 | + <el-radio :label="1">导出全部</el-radio> | ||
| 16 | + <el-radio :label="2">导出制定学生</el-radio> | ||
| 17 | + </el-radio-group> | ||
| 18 | + </div> | ||
| 19 | + </div> | ||
| 20 | + <ul v-show="exportType == 2"> | ||
| 21 | + <p class="export-tit">选择学生</p> | ||
| 22 | + <el-table :data="exportStudent" @selection-change="handleSelectionChange" :max-height="300"> | ||
| 23 | + <el-table-column type="selection"></el-table-column> | ||
| 24 | + <el-table-column prop="studentName" label="姓名" align="center"></el-table-column> | ||
| 25 | + <el-table-column prop="classRank" label="班名" align="center"></el-table-column> | ||
| 26 | + <el-table-column prop="correctRate" label="总正确率" align="center"><template slot-scope="scoped">{{ | ||
| 27 | + scoped.row.correctRate }}%</template></el-table-column> | ||
| 28 | + </el-table> | ||
| 29 | + </ul> | ||
| 30 | + <div class="dialog-footer" slot="footer"> | ||
| 31 | + <el-button v-show="downType == 2" size="small" type="primary" round @click="exportData(10)">导出前十</el-button> | ||
| 32 | + <el-button size="small" type="primary" round @click="exportData(0)">确 定</el-button> | ||
| 33 | + <el-button size="small" type="danger" round @click="cancel">取 消</el-button> | ||
| 34 | + </div> | ||
| 35 | + </el-dialog> | ||
| 36 | + </div> | ||
| 37 | +</template> | ||
| 38 | +<script> | ||
| 39 | +export default { | ||
| 40 | + name: "exportDia", | ||
| 41 | + props: { | ||
| 42 | + diaShow: Boolean, | ||
| 43 | + exportStudent: Array | ||
| 44 | + }, | ||
| 45 | + data() { | ||
| 46 | + return { | ||
| 47 | + downType: 1, | ||
| 48 | + exportType: 1, | ||
| 49 | + multipleSelection: [], | ||
| 50 | + } | ||
| 51 | + }, | ||
| 52 | + watch: { | ||
| 53 | + diaShow: function (nVal) { | ||
| 54 | + if (nVal) { | ||
| 55 | + this.downType = 1 | ||
| 56 | + } | ||
| 57 | + } | ||
| 58 | + }, | ||
| 59 | + methods: { | ||
| 60 | + changeDownType() { | ||
| 61 | + this.exportType = 1 | ||
| 62 | + }, | ||
| 63 | + handleSelectionChange(val) { | ||
| 64 | + this.multipleSelection = val | ||
| 65 | + }, | ||
| 66 | + exportData(length) { | ||
| 67 | + let studentIds = [] | ||
| 68 | + if (length) { | ||
| 69 | + studentIds = this.exportStudent.slice(0, 10).map(item => { | ||
| 70 | + return item.studentId | ||
| 71 | + }) | ||
| 72 | + } else { | ||
| 73 | + studentIds = this.multipleSelection.map(item => { | ||
| 74 | + return item.studentId | ||
| 75 | + }) | ||
| 76 | + } | ||
| 77 | + this.$emit('exportData', { studentIds: studentIds }) | ||
| 78 | + }, | ||
| 79 | + cancel() { | ||
| 80 | + if (this.exportType == 2) { | ||
| 81 | + this.exportType = 1 | ||
| 82 | + } else { | ||
| 83 | + this.$emit('cancel') | ||
| 84 | + } | ||
| 85 | + } | ||
| 86 | + } | ||
| 87 | +} | ||
| 88 | +</script> | ||
| 0 | \ No newline at end of file | 89 | \ No newline at end of file |
src/main.js
| @@ -28,7 +28,7 @@ Vue.use(permission) | @@ -28,7 +28,7 @@ Vue.use(permission) | ||
| 28 | NProgress.inc(0.2) | 28 | NProgress.inc(0.2) |
| 29 | NProgress.configure({ easing: "ease", speed: 500, showSpinner: false }) | 29 | NProgress.configure({ easing: "ease", speed: 500, showSpinner: false }) |
| 30 | 30 | ||
| 31 | -import "@/mock/index.js" | 31 | +// import "@/mock/index.js" |
| 32 | 32 | ||
| 33 | Array.prototype.remove = function (val) { | 33 | Array.prototype.remove = function (val) { |
| 34 | var index = this.indexOf(val); | 34 | var index = this.indexOf(val); |
src/mock/index.js
| 1 | import Mock from "mockjs" | 1 | import Mock from "mockjs" |
| 2 | Mock.mock( | 2 | Mock.mock( |
| 3 | - "/api_html/common/paper/paperShareCount", { | 3 | + "/api_html/teaching/paperList", { |
| 4 | info: "success", | 4 | info: "success", |
| 5 | status: 0, | 5 | status: 0, |
| 6 | data: { | 6 | data: { |
| 7 | - myCount: 24, | ||
| 8 | - grade: 30 | 7 | + myCount: 5, |
| 8 | + gradeCount: 8, | ||
| 9 | + archivedTotal: 6, | ||
| 10 | + total: 30, | ||
| 11 | + list: [ | ||
| 12 | + { | ||
| 13 | + "sectionName": "小学", | ||
| 14 | + "gradeName": "三年级", | ||
| 15 | + "id": 107, | ||
| 16 | + "tenantId": 9, | ||
| 17 | + "regionId": 0, | ||
| 18 | + "schoolId": 34, | ||
| 19 | + "classId": 696, | ||
| 20 | + "thirdId": "", | ||
| 21 | + "section": 1, | ||
| 22 | + "grade": 3, | ||
| 23 | + "subjectName": "语文", | ||
| 24 | + "title": "X102_语文_课时 4", | ||
| 25 | + "startTime": "2023-04-18 17:43:50", | ||
| 26 | + "endTime": "2023-04-18 17:47:06", | ||
| 27 | + "calculateStatus": 1, | ||
| 28 | + "duration": 196, | ||
| 29 | + "status": 0, | ||
| 30 | + "consumingDuration": 3140, | ||
| 31 | + "classPersonNum": 11, | ||
| 32 | + "answeredNum": 1, | ||
| 33 | + "unansweredNum": 20, | ||
| 34 | + "questionNum": 1, | ||
| 35 | + "answerNum": 1, | ||
| 36 | + "totalAnswersNum": 1, | ||
| 37 | + "totalCorrectAnswersNum": 1, | ||
| 38 | + "participationRate": 9.09, | ||
| 39 | + "classCorrectRate": 9.09, | ||
| 40 | + "answerCorrectRate": 100, | ||
| 41 | + "levelConfig": "{\"failed\":0.6,\"pass\":0.8,\"good\":0.9}", | ||
| 42 | + "passedNum": 1, | ||
| 43 | + "passedRate": 9.09, | ||
| 44 | + "excellenNum": 1, | ||
| 45 | + "excellenRate": 9.09, | ||
| 46 | + "goodNum": 0, | ||
| 47 | + "goodRate": 0, | ||
| 48 | + "passNum": 0, | ||
| 49 | + "passRate": 0, | ||
| 50 | + "failedNum": 0, | ||
| 51 | + "failedRate": 0, | ||
| 52 | + "latestCalculateTime": "2023-04-19 14:08:35", | ||
| 53 | + "createdTime": "2023-04-19 14:08:35", | ||
| 54 | + "modifiedTime": "2023-04-19 14:08:35", | ||
| 55 | + "deleteFlag": 0 | ||
| 56 | + }, | ||
| 57 | + { | ||
| 58 | + "sectionName": "小学", | ||
| 59 | + "gradeName": "二年级", | ||
| 60 | + "id": 106, | ||
| 61 | + "tenantId": 9, | ||
| 62 | + "regionId": 0, | ||
| 63 | + "schoolId": 34, | ||
| 64 | + "classId": 696, | ||
| 65 | + "thirdId": "", | ||
| 66 | + "section": 1, | ||
| 67 | + "grade": 2, | ||
| 68 | + "subjectName": "语文", | ||
| 69 | + "title": "X102_语文_课时 2", | ||
| 70 | + "startTime": "2023-04-18 15:58:27", | ||
| 71 | + "endTime": "2023-04-18 16:01:28", | ||
| 72 | + "calculateStatus": 1, | ||
| 73 | + "duration": 182, | ||
| 74 | + "status": 0, | ||
| 75 | + "consumingDuration": 2640, | ||
| 76 | + "classPersonNum": 11, | ||
| 77 | + "answeredNum": 1, | ||
| 78 | + "unansweredNum": 18, | ||
| 79 | + "questionNum": 1, | ||
| 80 | + "answerNum": 1, | ||
| 81 | + "totalAnswersNum": 1, | ||
| 82 | + "totalCorrectAnswersNum": 1, | ||
| 83 | + "participationRate": 9.09, | ||
| 84 | + "classCorrectRate": 9.09, | ||
| 85 | + "answerCorrectRate": 100, | ||
| 86 | + "levelConfig": "{\"failed\":0.6,\"pass\":0.8,\"good\":0.9}", | ||
| 87 | + "passedNum": 1, | ||
| 88 | + "passedRate": 9.09, | ||
| 89 | + "excellenNum": 1, | ||
| 90 | + "excellenRate": 9.09, | ||
| 91 | + "goodNum": 0, | ||
| 92 | + "goodRate": 0, | ||
| 93 | + "passNum": 0, | ||
| 94 | + "passRate": 0, | ||
| 95 | + "failedNum": 0, | ||
| 96 | + "failedRate": 0, | ||
| 97 | + "latestCalculateTime": "2023-04-18 16:01:29", | ||
| 98 | + "createdTime": "2023-04-18 16:01:28", | ||
| 99 | + "modifiedTime": "2023-04-18 16:01:29", | ||
| 100 | + "deleteFlag": 0 | ||
| 101 | + }, | ||
| 102 | + { | ||
| 103 | + "sectionName": "小学", | ||
| 104 | + "gradeName": "二年级", | ||
| 105 | + "id": 105, | ||
| 106 | + "tenantId": 9, | ||
| 107 | + "regionId": 0, | ||
| 108 | + "schoolId": 34, | ||
| 109 | + "classId": 696, | ||
| 110 | + "thirdId": "", | ||
| 111 | + "section": 1, | ||
| 112 | + "grade": 2, | ||
| 113 | + "subjectName": "语文", | ||
| 114 | + "title": "X102_语文_课时 1", | ||
| 115 | + "startTime": "2023-04-18 15:16:11", | ||
| 116 | + "endTime": "2023-04-18 15:21:37", | ||
| 117 | + "calculateStatus": 1, | ||
| 118 | + "duration": 326, | ||
| 119 | + "status": 0, | ||
| 120 | + "consumingDuration": 76880, | ||
| 121 | + "classPersonNum": 11, | ||
| 122 | + "answeredNum": 3, | ||
| 123 | + "unansweredNum": 16, | ||
| 124 | + "questionNum": 1, | ||
| 125 | + "answerNum": 1, | ||
| 126 | + "totalAnswersNum": 3, | ||
| 127 | + "totalCorrectAnswersNum": 2, | ||
| 128 | + "participationRate": 27.27, | ||
| 129 | + "classCorrectRate": 18.18, | ||
| 130 | + "answerCorrectRate": 66.67, | ||
| 131 | + "levelConfig": "{\"failed\":0.6,\"pass\":0.8,\"good\":0.9}", | ||
| 132 | + "passedNum": 2, | ||
| 133 | + "passedRate": 18.18, | ||
| 134 | + "excellenNum": 2, | ||
| 135 | + "excellenRate": 18.18, | ||
| 136 | + "goodNum": 0, | ||
| 137 | + "goodRate": 0, | ||
| 138 | + "passNum": 0, | ||
| 139 | + "passRate": 0, | ||
| 140 | + "failedNum": 1, | ||
| 141 | + "failedRate": 9.09, | ||
| 142 | + "latestCalculateTime": "2023-04-18 15:58:23", | ||
| 143 | + "createdTime": "2023-04-18 15:58:23", | ||
| 144 | + "modifiedTime": "2023-04-18 15:58:23", | ||
| 145 | + "deleteFlag": 0 | ||
| 146 | + }, | ||
| 147 | + { | ||
| 148 | + "sectionName": "小学", | ||
| 149 | + "gradeName": "二年级", | ||
| 150 | + "id": 103, | ||
| 151 | + "tenantId": 9, | ||
| 152 | + "regionId": 0, | ||
| 153 | + "schoolId": 34, | ||
| 154 | + "classId": 696, | ||
| 155 | + "thirdId": "", | ||
| 156 | + "section": 1, | ||
| 157 | + "grade": 2, | ||
| 158 | + "subjectName": "语文", | ||
| 159 | + "title": "X102_语文_课时 1", | ||
| 160 | + "startTime": "2023-04-18 14:20:16", | ||
| 161 | + "endTime": "2023-04-18 14:57:09", | ||
| 162 | + "calculateStatus": 1, | ||
| 163 | + "duration": 2213, | ||
| 164 | + "status": 0, | ||
| 165 | + "consumingDuration": 229820, | ||
| 166 | + "classPersonNum": 9, | ||
| 167 | + "answeredNum": 1, | ||
| 168 | + "unansweredNum": 16, | ||
| 169 | + "questionNum": 4, | ||
| 170 | + "answerNum": 4, | ||
| 171 | + "totalAnswersNum": 4, | ||
| 172 | + "totalCorrectAnswersNum": 4, | ||
| 173 | + "participationRate": 11.11, | ||
| 174 | + "classCorrectRate": 11.11, | ||
| 175 | + "answerCorrectRate": 100, | ||
| 176 | + "levelConfig": "{\"failed\":0.6,\"pass\":0.8,\"good\":0.9}", | ||
| 177 | + "passedNum": 1, | ||
| 178 | + "passedRate": 11.11, | ||
| 179 | + "excellenNum": 1, | ||
| 180 | + "excellenRate": 11.11, | ||
| 181 | + "goodNum": 0, | ||
| 182 | + "goodRate": 0, | ||
| 183 | + "passNum": 0, | ||
| 184 | + "passRate": 0, | ||
| 185 | + "failedNum": 0, | ||
| 186 | + "failedRate": 0, | ||
| 187 | + "latestCalculateTime": "2023-04-18 15:02:33", | ||
| 188 | + "createdTime": "2023-04-18 15:02:32", | ||
| 189 | + "modifiedTime": "2023-04-18 15:02:33", | ||
| 190 | + "deleteFlag": 0 | ||
| 191 | + }, | ||
| 192 | + { | ||
| 193 | + "sectionName": "小学", | ||
| 194 | + "gradeName": "一年级", | ||
| 195 | + "id": 102, | ||
| 196 | + "tenantId": 9, | ||
| 197 | + "regionId": 0, | ||
| 198 | + "schoolId": 34, | ||
| 199 | + "classId": 696, | ||
| 200 | + "thirdId": "", | ||
| 201 | + "section": 1, | ||
| 202 | + "grade": 1, | ||
| 203 | + "subjectName": "语文", | ||
| 204 | + "title": "X102_语文_课时 1", | ||
| 205 | + "startTime": "2023-04-18 11:09:20", | ||
| 206 | + "endTime": "2023-04-18 13:59:30", | ||
| 207 | + "calculateStatus": 1, | ||
| 208 | + "duration": 10210, | ||
| 209 | + "status": 0, | ||
| 210 | + "consumingDuration": 12380, | ||
| 211 | + "classPersonNum": 9, | ||
| 212 | + "answeredNum": 1, | ||
| 213 | + "unansweredNum": 16, | ||
| 214 | + "questionNum": 2, | ||
| 215 | + "answerNum": 2, | ||
| 216 | + "totalAnswersNum": 2, | ||
| 217 | + "totalCorrectAnswersNum": 1, | ||
| 218 | + "participationRate": 11.11, | ||
| 219 | + "classCorrectRate": 5.56, | ||
| 220 | + "answerCorrectRate": 50, | ||
| 221 | + "levelConfig": "{\"failed\":0.6,\"pass\":0.8,\"good\":0.9}", | ||
| 222 | + "passedNum": 0, | ||
| 223 | + "passedRate": 0, | ||
| 224 | + "excellenNum": 0, | ||
| 225 | + "excellenRate": 0, | ||
| 226 | + "goodNum": 0, | ||
| 227 | + "goodRate": 0, | ||
| 228 | + "passNum": 0, | ||
| 229 | + "passRate": 0, | ||
| 230 | + "failedNum": 1, | ||
| 231 | + "failedRate": 11.11, | ||
| 232 | + "latestCalculateTime": "2023-04-18 13:59:36", | ||
| 233 | + "createdTime": "2023-04-18 13:59:35", | ||
| 234 | + "modifiedTime": "2023-04-18 13:59:36", | ||
| 235 | + "deleteFlag": 0 | ||
| 236 | + } | ||
| 237 | + ] | ||
| 9 | } | 238 | } |
| 10 | } | 239 | } |
| 11 | ) | 240 | ) |
| @@ -682,8 +911,8 @@ Mock.mock( | @@ -682,8 +911,8 @@ Mock.mock( | ||
| 682 | "participationCount": '5', | 911 | "participationCount": '5', |
| 683 | "classRank": '1', | 912 | "classRank": '1', |
| 684 | "score": '100', | 913 | "score": '100', |
| 685 | - "participationRate":'88', | ||
| 686 | - "correctRate":'90', | 914 | + "participationRate": '88', |
| 915 | + "correctRate": '90', | ||
| 687 | }, | 916 | }, |
| 688 | { | 917 | { |
| 689 | "subjectName": "英语", | 918 | "subjectName": "英语", |
| @@ -691,8 +920,8 @@ Mock.mock( | @@ -691,8 +920,8 @@ Mock.mock( | ||
| 691 | "participationCount": '5', | 920 | "participationCount": '5', |
| 692 | "classRank": '2', | 921 | "classRank": '2', |
| 693 | "score": '100', | 922 | "score": '100', |
| 694 | - "participationRate":'70', | ||
| 695 | - "correctRate":'76', | 923 | + "participationRate": '70', |
| 924 | + "correctRate": '76', | ||
| 696 | }, | 925 | }, |
| 697 | { | 926 | { |
| 698 | "subjectName": "语文", | 927 | "subjectName": "语文", |
| @@ -700,8 +929,8 @@ Mock.mock( | @@ -700,8 +929,8 @@ Mock.mock( | ||
| 700 | "participationCount": '5', | 929 | "participationCount": '5', |
| 701 | "classRank": '2', | 930 | "classRank": '2', |
| 702 | "score": '100', | 931 | "score": '100', |
| 703 | - "participationRate":'99', | ||
| 704 | - "correctRate":'100', | 932 | + "participationRate": '99', |
| 933 | + "correctRate": '100', | ||
| 705 | }, | 934 | }, |
| 706 | ] | 935 | ] |
| 707 | }], | 936 | }], |
src/views/basic/ask/analysis.vue
| @@ -35,39 +35,7 @@ | @@ -35,39 +35,7 @@ | ||
| 35 | icon="el-icon-printer">打印</el-button> | 35 | icon="el-icon-printer">打印</el-button> |
| 36 | </p> | 36 | </p> |
| 37 | </div> | 37 | </div> |
| 38 | - <el-dialog :close-on-click-modal="false" :visible.sync="diaDown" width="360px"> | ||
| 39 | - <div v-show="exportType == 1"> | ||
| 40 | - <div class="down-item"> | ||
| 41 | - <p class="tit">是否将学生表现折线图一起导出</p> | ||
| 42 | - <el-radio-group v-model="downType" @change="changeDownType"> | ||
| 43 | - <el-radio :label="1">不导出</el-radio> | ||
| 44 | - <el-radio :label="2">导出</el-radio> | ||
| 45 | - </el-radio-group> | ||
| 46 | - </div> | ||
| 47 | - <div class="down-item" v-show="downType == 2"> | ||
| 48 | - <p class="tit">选择要导出的学生</p> | ||
| 49 | - <el-radio-group v-model="exportType"> | ||
| 50 | - <el-radio :label="1">导出全部</el-radio> | ||
| 51 | - <el-radio :label="2">导出制定学生</el-radio> | ||
| 52 | - </el-radio-group> | ||
| 53 | - </div> | ||
| 54 | - </div> | ||
| 55 | - <ul v-show="exportType == 2"> | ||
| 56 | - <p class="export-tit">选择学生</p> | ||
| 57 | - <el-table :data="exportStudent" @selection-change="handleSelectionChange" :max-height="300"> | ||
| 58 | - <el-table-column type="selection"></el-table-column> | ||
| 59 | - <el-table-column prop="studentName" label="姓名" align="center"></el-table-column> | ||
| 60 | - <el-table-column prop="classRank" label="班名" align="center"></el-table-column> | ||
| 61 | - <el-table-column prop="correctRate" label="总正确率" align="center"><template slot-scope="scoped">{{ | ||
| 62 | - scoped.row.correctRate }}%</template></el-table-column> | ||
| 63 | - </el-table> | ||
| 64 | - </ul> | ||
| 65 | - <div class="dialog-footer" slot="footer"> | ||
| 66 | - <el-button v-show="downType == 2" size="small" type="primary" round @click="exportData(10)">导出前十</el-button> | ||
| 67 | - <el-button size="small" type="primary" round @click="exportData(0)">确 定</el-button> | ||
| 68 | - <el-button size="small" type="danger" round @click="cancel">取 消</el-button> | ||
| 69 | - </div> | ||
| 70 | - </el-dialog> | 38 | + <ExportDia :exportStudent="exportStudent" :diaShow="diaShow" @cancel="cancel" @exportData="exportData" /> |
| 71 | </div> | 39 | </div> |
| 72 | </div> | 40 | </div> |
| 73 | </template> | 41 | </template> |
| @@ -96,11 +64,9 @@ export default { | @@ -96,11 +64,9 @@ export default { | ||
| 96 | size: 20, | 64 | size: 20, |
| 97 | total: 0, | 65 | total: 0, |
| 98 | status: 0, | 66 | status: 0, |
| 99 | - diaDown: false, | ||
| 100 | - downType: 1, | ||
| 101 | - exportType: 1, | 67 | + //导出相关 |
| 68 | + diaShow: false, | ||
| 102 | exportStudent: [], | 69 | exportStudent: [], |
| 103 | - multipleSelection: [], | ||
| 104 | }; | 70 | }; |
| 105 | }, | 71 | }, |
| 106 | created() { | 72 | created() { |
| @@ -216,7 +182,7 @@ export default { | @@ -216,7 +182,7 @@ export default { | ||
| 216 | } | 182 | } |
| 217 | } | 183 | } |
| 218 | if (this.types == 1) { | 184 | if (this.types == 1) { |
| 219 | - query.type = this.type | 185 | + query.type = this.type - 1 |
| 220 | } | 186 | } |
| 221 | this.loading = true; | 187 | this.loading = true; |
| 222 | let { data, info, status } = await queryData({ | 188 | let { data, info, status } = await queryData({ |
| @@ -265,7 +231,7 @@ export default { | @@ -265,7 +231,7 @@ export default { | ||
| 265 | 231 | ||
| 266 | let query = {}; | 232 | let query = {}; |
| 267 | if (this.types == 1) { | 233 | if (this.types == 1) { |
| 268 | - query.type = this.type | 234 | + query.type = this.type - 1 |
| 269 | } | 235 | } |
| 270 | this.loading = true; | 236 | this.loading = true; |
| 271 | let { data, info, status } = await queryData({ | 237 | let { data, info, status } = await queryData({ |
| @@ -282,38 +248,17 @@ export default { | @@ -282,38 +248,17 @@ export default { | ||
| 282 | } | 248 | } |
| 283 | }, | 249 | }, |
| 284 | 250 | ||
| 285 | - | 251 | + //导出 |
| 286 | openDown() { | 252 | openDown() { |
| 287 | - this.diaDown = true; | ||
| 288 | - this.downType = 1 | 253 | + this.diaShow = true; |
| 289 | }, | 254 | }, |
| 290 | cancel() { | 255 | cancel() { |
| 291 | - if (this.exportType == 2) { | ||
| 292 | - this.exportType = 1 | ||
| 293 | - } else { | ||
| 294 | - this.diaDown = false; | ||
| 295 | - } | 256 | + this.diaShow = false; |
| 296 | }, | 257 | }, |
| 297 | - changeDownType() { | ||
| 298 | - this.exportType = 1 | ||
| 299 | - }, | ||
| 300 | - handleSelectionChange(val) { | ||
| 301 | - this.multipleSelection = val | ||
| 302 | - }, | ||
| 303 | - //导出 | ||
| 304 | - async exportData(length) { | 258 | + async exportData(arr) { |
| 305 | if (this.exportLoading == true) return; | 259 | if (this.exportLoading == true) return; |
| 306 | this.exportLoading = true; | 260 | this.exportLoading = true; |
| 307 | - let studentIds = [] | ||
| 308 | - if (length) { | ||
| 309 | - studentIds = this.exportStudent.slice(0, 10).map(item => { | ||
| 310 | - return item.studentId | ||
| 311 | - }) | ||
| 312 | - } else { | ||
| 313 | - studentIds = this.multipleSelection.map(item => { | ||
| 314 | - return item.studentId | ||
| 315 | - }) | ||
| 316 | - } | 261 | + let studentIds = arr |
| 317 | let query = {}; | 262 | let query = {}; |
| 318 | if (studentIds.length == this.exportStudent.length) { | 263 | if (studentIds.length == this.exportStudent.length) { |
| 319 | query.studentIds = [] | 264 | query.studentIds = [] |
src/views/basic/ask/components/answerQustion.vue
| @@ -147,22 +147,24 @@ export default { | @@ -147,22 +147,24 @@ export default { | ||
| 147 | }, | 147 | }, |
| 148 | methods: { | 148 | methods: { |
| 149 | setDuration(times) { | 149 | setDuration(times) { |
| 150 | - let m = parseInt(times / 1000 / 60); | ||
| 151 | - let s = parseInt((times / 1000) % 60); | ||
| 152 | - let ms = times; | ||
| 153 | - let aTime; | ||
| 154 | - if (times == 0) { | ||
| 155 | - aTime = `0`; | ||
| 156 | - } else { | ||
| 157 | - if (m == 0 && s == 0) { | ||
| 158 | - aTime = `${ms}毫秒`; | ||
| 159 | - } else if (m == 0 && s != 0) { | ||
| 160 | - aTime = `${s}秒`; | ||
| 161 | - } else if (m != 0 && s != 0) { | ||
| 162 | - aTime = `${m}分${s}秒`; | 150 | + if (times) { |
| 151 | + let m = parseInt(times / 1000 / 60); | ||
| 152 | + let s = parseInt((times / 1000) % 60); | ||
| 153 | + let ms = times; | ||
| 154 | + let aTime; | ||
| 155 | + if (times == 0) { | ||
| 156 | + aTime = `0`; | ||
| 157 | + } else { | ||
| 158 | + if (m == 0 && s == 0) { | ||
| 159 | + aTime = `${ms}毫秒`; | ||
| 160 | + } else if (m == 0 && s != 0) { | ||
| 161 | + aTime = `${s}秒`; | ||
| 162 | + } else if (m != 0 && s != 0) { | ||
| 163 | + aTime = `${m}分${s}秒`; | ||
| 164 | + } | ||
| 163 | } | 165 | } |
| 166 | + return aTime; | ||
| 164 | } | 167 | } |
| 165 | - return aTime; | ||
| 166 | }, | 168 | }, |
| 167 | } | 169 | } |
| 168 | }; | 170 | }; |
src/views/basic/ask/components/interact.vue
| @@ -39,26 +39,25 @@ export default { | @@ -39,26 +39,25 @@ export default { | ||
| 39 | resultData: function () { | 39 | resultData: function () { |
| 40 | let resultData = [] | 40 | let resultData = [] |
| 41 | if (this.tableData.length) { | 41 | if (this.tableData.length) { |
| 42 | - if (this.types == "3") { | ||
| 43 | - let subjectName = []; | ||
| 44 | - resultData = data?.list.map((item) => { | ||
| 45 | - let params = {}; | ||
| 46 | - item.dataList.map((items, index) => { | ||
| 47 | - if (!subjectName.includes(items.subjectName)) { | ||
| 48 | - subjectName.push(items.subjectName); | ||
| 49 | - } | ||
| 50 | - params["interactionsNum" + items.subjectName] = | ||
| 51 | - items.interactionsNum; | ||
| 52 | - params["interactionsCorrectNum" + items.subjectName] = | ||
| 53 | - items.interactionsCorrectNum; | ||
| 54 | - }); | ||
| 55 | - return { | ||
| 56 | - ...item, | ||
| 57 | - ...params, | ||
| 58 | - }; | 42 | + |
| 43 | + let subjectName = []; | ||
| 44 | + resultData = this.tableData?.map((item) => { | ||
| 45 | + let params = {}; | ||
| 46 | + item.dataList?.map((items, index) => { | ||
| 47 | + if (!subjectName.includes(items.subjectName)) { | ||
| 48 | + subjectName.push(items.subjectName); | ||
| 49 | + } | ||
| 50 | + params["interactionsNum" + items.subjectName] = | ||
| 51 | + items.interactionsNum; | ||
| 52 | + params["interactionsCorrectNum" + items.subjectName] = | ||
| 53 | + items.interactionsCorrectNum; | ||
| 59 | }); | 54 | }); |
| 60 | - this.phaseInter = [...subjectName]; | ||
| 61 | - } | 55 | + return { |
| 56 | + ...item, | ||
| 57 | + ...params, | ||
| 58 | + }; | ||
| 59 | + }); | ||
| 60 | + this.phaseInter = [...subjectName]; | ||
| 62 | } else { | 61 | } else { |
| 63 | resultData = [] | 62 | resultData = [] |
| 64 | this.optionsList = [] | 63 | this.optionsList = [] |
src/views/basic/ask/list.vue
| @@ -13,14 +13,14 @@ | @@ -13,14 +13,14 @@ | ||
| 13 | </back-box> | 13 | </back-box> |
| 14 | <div v-show="!isDetail" class="table-box"> | 14 | <div v-show="!isDetail" class="table-box"> |
| 15 | <div class="table-cont" v-loading="loading"> | 15 | <div class="table-cont" v-loading="loading"> |
| 16 | - <p class="btn-box"> | 16 | + <p class="btn-box" v-if="tableData.length"> |
| 17 | <el-button type="primary" round @click="linkToDetail2">查看汇总报表</el-button> | 17 | <el-button type="primary" round @click="linkToDetail2">查看汇总报表</el-button> |
| 18 | </p> | 18 | </p> |
| 19 | <div> | 19 | <div> |
| 20 | <el-table :data="tableData" border :show-header="total > 0" style="width: 100%" | 20 | <el-table :data="tableData" border :show-header="total > 0" style="width: 100%" |
| 21 | @selection-change="handleSelectionChange"> | 21 | @selection-change="handleSelectionChange"> |
| 22 | <el-table-column type="selection" width="40"></el-table-column> | 22 | <el-table-column type="selection" width="40"></el-table-column> |
| 23 | - <el-table-column prop="subject" label="科目" align="center" width="80"></el-table-column> | 23 | + <el-table-column prop="subjectName" label="科目" align="center" width="80"></el-table-column> |
| 24 | <el-table-column prop="title" label="课时名称" align="center"></el-table-column> | 24 | <el-table-column prop="title" label="课时名称" align="center"></el-table-column> |
| 25 | <el-table-column prop="participationRate" label="总参与度" align="center"> <template slot-scope="scoped">{{ | 25 | <el-table-column prop="participationRate" label="总参与度" align="center"> <template slot-scope="scoped">{{ |
| 26 | scoped.row.participationRate }}%</template></el-table-column> | 26 | scoped.row.participationRate }}%</template></el-table-column> |
| @@ -142,6 +142,9 @@ export default { | @@ -142,6 +142,9 @@ export default { | ||
| 142 | }, | 142 | }, |
| 143 | //去详情 | 143 | //去详情 |
| 144 | linkToDetail2() { | 144 | linkToDetail2() { |
| 145 | + if (this.multipleSelection.length == 0) { | ||
| 146 | + this.$message.warning("未选择课时,请选择~") | ||
| 147 | + return } | ||
| 145 | let subjectArr = [] | 148 | let subjectArr = [] |
| 146 | const ids = this.multipleSelection.map(item => { | 149 | const ids = this.multipleSelection.map(item => { |
| 147 | subjectArr.push(item.subject) | 150 | subjectArr.push(item.subject) |
src/views/basic/test/analysis.vue
| @@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
| 2 | <div ref="main" class="page-container"> | 2 | <div ref="main" class="page-container"> |
| 3 | <back-box> | 3 | <back-box> |
| 4 | <template slot="title"> | 4 | <template slot="title"> |
| 5 | - <span>{{ type == 1 ? '单卷测练报表' : type == 2 ? subject + "汇总报表" : type == 3 ? "多科汇总报表" : | 5 | + <span>{{ type == 1 ? '单卷测练报表' : type == 2 ? subjectName + "汇总报表" : type == 3 ? "多科汇总报表" : |
| 6 | `多班_${subjectName}_${title}_测练成绩对比分析` }}</span> | 6 | `多班_${subjectName}_${title}_测练成绩对比分析` }}</span> |
| 7 | </template> | 7 | </template> |
| 8 | </back-box> | 8 | </back-box> |
| @@ -44,8 +44,8 @@ export default { | @@ -44,8 +44,8 @@ export default { | ||
| 44 | this.ids = this.$route.query.ids && this.$route.query.ids.split() || ""; | 44 | this.ids = this.$route.query.ids && this.$route.query.ids.split() || ""; |
| 45 | this.type = this.$route.query.type | 45 | this.type = this.$route.query.type |
| 46 | this.classId = this.$route.query.classId || ""; | 46 | this.classId = this.$route.query.classId || ""; |
| 47 | - this.subjectName = this.$route.query.subjectName || "" | ||
| 48 | this.title = this.$route.query.title || "" | 47 | this.title = this.$route.query.title || "" |
| 48 | + this.subjectName = this.$route.query.subjectName || "" | ||
| 49 | }, | 49 | }, |
| 50 | methods: { | 50 | methods: { |
| 51 | 51 |
src/views/basic/test/components/multipleSubTest.vue
| @@ -29,7 +29,7 @@ | @@ -29,7 +29,7 @@ | ||
| 29 | </el-table> | 29 | </el-table> |
| 30 | </div> | 30 | </div> |
| 31 | <div class="down"> | 31 | <div class="down"> |
| 32 | - <el-button @click="exportData" type="primary" plain round icon="fa fa-cloud-download">导出报表</el-button> | 32 | + <el-button @click="openDown" type="primary" plain round icon="fa fa-cloud-download">导出报表</el-button> |
| 33 | <el-button v-if="!this.$store.getters.code" @click="print" type="primary" plain round | 33 | <el-button v-if="!this.$store.getters.code" @click="print" type="primary" plain round |
| 34 | icon="el-icon-printer">打印</el-button> | 34 | icon="el-icon-printer">打印</el-button> |
| 35 | </div> | 35 | </div> |
| @@ -38,6 +38,7 @@ | @@ -38,6 +38,7 @@ | ||
| 38 | <RadarChart id="radarChart" :params="chartData" /> | 38 | <RadarChart id="radarChart" :params="chartData" /> |
| 39 | </div> | 39 | </div> |
| 40 | </el-dialog> | 40 | </el-dialog> |
| 41 | + <ExportDia :exportStudent="exportStudent" :diaShow="diaShow" @cancel="cancel" @exportData="exportData" /> | ||
| 41 | </div> | 42 | </div> |
| 42 | </template> | 43 | </template> |
| 43 | <script> | 44 | <script> |
| @@ -46,7 +47,7 @@ import RadarChart from "@/components/charts/radarChart" | @@ -46,7 +47,7 @@ import RadarChart from "@/components/charts/radarChart" | ||
| 46 | import { downloadFile, tablePrint } from "@/utils"; | 47 | import { downloadFile, tablePrint } from "@/utils"; |
| 47 | export default { | 48 | export default { |
| 48 | components: { | 49 | components: { |
| 49 | - RadarChart | 50 | + RadarChart, |
| 50 | }, | 51 | }, |
| 51 | props: { | 52 | props: { |
| 52 | role: "", | 53 | role: "", |
| @@ -76,6 +77,10 @@ export default { | @@ -76,6 +77,10 @@ export default { | ||
| 76 | }, | 77 | }, |
| 77 | chartDia: false, | 78 | chartDia: false, |
| 78 | chartTitle: "", | 79 | chartTitle: "", |
| 80 | + | ||
| 81 | + //导出相关 | ||
| 82 | + diaShow: false, | ||
| 83 | + exportStudent: [] | ||
| 79 | } | 84 | } |
| 80 | }, | 85 | }, |
| 81 | computed: { | 86 | computed: { |
| @@ -140,6 +145,7 @@ export default { | @@ -140,6 +145,7 @@ export default { | ||
| 140 | this.chartData.indicator.push({ name: item, max: 100 }) | 145 | this.chartData.indicator.push({ name: item, max: 100 }) |
| 141 | } | 146 | } |
| 142 | }) | 147 | }) |
| 148 | + // 为了美观 | ||
| 143 | if (this.chartData.indicator.length < 3) { | 149 | if (this.chartData.indicator.length < 3) { |
| 144 | let num = this.chartData.indicator.length | 150 | let num = this.chartData.indicator.length |
| 145 | for (let i = 0; i < 6; i++) { | 151 | for (let i = 0; i < 6; i++) { |
| @@ -191,16 +197,31 @@ export default { | @@ -191,16 +197,31 @@ export default { | ||
| 191 | }; | 197 | }; |
| 192 | }); | 198 | }); |
| 193 | this.answerList = [...subjectName]; | 199 | this.answerList = [...subjectName]; |
| 200 | + this.exportStudent = [...this.tableData] | ||
| 194 | } else { | 201 | } else { |
| 195 | this.$message.error(info); | 202 | this.$message.error(info); |
| 196 | } | 203 | } |
| 197 | }, | 204 | }, |
| 198 | //导出 | 205 | //导出 |
| 199 | - async exportData() { | 206 | + openDown() { |
| 207 | + this.diaShow = true; | ||
| 208 | + }, | ||
| 209 | + cancel() { | ||
| 210 | + this.diaShow = false; | ||
| 211 | + }, | ||
| 212 | + async exportData(arr) { | ||
| 200 | if (this.exportLoading == true) return; | 213 | if (this.exportLoading == true) return; |
| 201 | this.exportLoading = true; | 214 | this.exportLoading = true; |
| 215 | + let studentIds = arr | ||
| 216 | + let query = {}; | ||
| 217 | + if (studentIds.length == this.exportStudent.length) { | ||
| 218 | + query.studentIds = [] | ||
| 219 | + } else if (studentIds.length > 0) { | ||
| 220 | + query.studentIds = studentIds | ||
| 221 | + } | ||
| 202 | const data = await this.$request.exportExamReport({ | 222 | const data = await this.$request.exportExamReport({ |
| 203 | examId: this.ids, | 223 | examId: this.ids, |
| 224 | + ...query | ||
| 204 | }); | 225 | }); |
| 205 | this.exportLoading = false; | 226 | this.exportLoading = false; |
| 206 | if (data) { | 227 | if (data) { |
src/views/basic/test/components/multipleTest.vue
| @@ -22,7 +22,7 @@ | @@ -22,7 +22,7 @@ | ||
| 22 | </el-table> | 22 | </el-table> |
| 23 | </div> | 23 | </div> |
| 24 | <div class="down"> | 24 | <div class="down"> |
| 25 | - <el-button @click="exportData" type="primary" plain round icon="fa fa-cloud-download">导出报表</el-button> | 25 | + <el-button @click="openDown" type="primary" plain round icon="fa fa-cloud-download">导出报表</el-button> |
| 26 | <el-button v-if="!this.$store.getters.code" @click="print" type="primary" plain round | 26 | <el-button v-if="!this.$store.getters.code" @click="print" type="primary" plain round |
| 27 | icon="el-icon-printer">打印</el-button> | 27 | icon="el-icon-printer">打印</el-button> |
| 28 | </div> | 28 | </div> |
| @@ -31,6 +31,7 @@ | @@ -31,6 +31,7 @@ | ||
| 31 | <LineChart id="lineChart" :params="chartData" :xAxis="xAxis" /> | 31 | <LineChart id="lineChart" :params="chartData" :xAxis="xAxis" /> |
| 32 | </div> | 32 | </div> |
| 33 | </el-dialog> | 33 | </el-dialog> |
| 34 | + <ExportDia :exportStudent="exportStudent" :diaShow="diaShow" @cancel="cancel" @exportData="exportData" /> | ||
| 34 | </div> | 35 | </div> |
| 35 | <!-- 单科多卷 --> | 36 | <!-- 单科多卷 --> |
| 36 | </template> | 37 | </template> |
| @@ -56,6 +57,10 @@ export default { | @@ -56,6 +57,10 @@ export default { | ||
| 56 | studentName: "", | 57 | studentName: "", |
| 57 | xAxis: [], | 58 | xAxis: [], |
| 58 | chartData: [], | 59 | chartData: [], |
| 60 | + | ||
| 61 | + //导出相关 | ||
| 62 | + diaShow: false, | ||
| 63 | + exportStudent: [] | ||
| 59 | } | 64 | } |
| 60 | }, | 65 | }, |
| 61 | computed: { | 66 | computed: { |
| @@ -180,14 +185,29 @@ export default { | @@ -180,14 +185,29 @@ export default { | ||
| 180 | }; | 185 | }; |
| 181 | }); | 186 | }); |
| 182 | this.answerList = dataList; | 187 | this.answerList = dataList; |
| 188 | + | ||
| 189 | + this.exportStudent = [...this.tableData] | ||
| 183 | } else { | 190 | } else { |
| 184 | this.$message.error(info); | 191 | this.$message.error(info); |
| 185 | } | 192 | } |
| 186 | }, | 193 | }, |
| 187 | //导出 | 194 | //导出 |
| 188 | - async exportData() { | 195 | + openDown() { |
| 196 | + this.diaShow = true; | ||
| 197 | + }, | ||
| 198 | + cancel() { | ||
| 199 | + this.diaShow = false; | ||
| 200 | + }, | ||
| 201 | + async exportData(arr) { | ||
| 189 | if (this.exportLoading == true) return; | 202 | if (this.exportLoading == true) return; |
| 190 | this.exportLoading = true; | 203 | this.exportLoading = true; |
| 204 | + let studentIds = arr | ||
| 205 | + let query = {}; | ||
| 206 | + if (studentIds.length == this.exportStudent.length) { | ||
| 207 | + query.studentIds = [] | ||
| 208 | + } else if (studentIds.length > 0) { | ||
| 209 | + query.studentIds = studentIds | ||
| 210 | + } | ||
| 191 | const exportPhaseExamReport = this.role == "ROLE_PERSONAL" | 211 | const exportPhaseExamReport = this.role == "ROLE_PERSONAL" |
| 192 | ? this.$request.pExportPhaseExamReport | 212 | ? this.$request.pExportPhaseExamReport |
| 193 | : this.$request.exportPhaseExamReport; | 213 | : this.$request.exportPhaseExamReport; |
src/views/basic/test/components/test.vue
| @@ -200,7 +200,7 @@ | @@ -200,7 +200,7 @@ | ||
| 200 | </div> | 200 | </div> |
| 201 | <div class="down"> | 201 | <div class="down"> |
| 202 | <div> | 202 | <div> |
| 203 | - <el-button @click="exportData" type="primary" plain round icon="fa fa-cloud-download">导出报表</el-button> | 203 | + <el-button @click="openDown" type="primary" plain round icon="fa fa-cloud-download">导出报表</el-button> |
| 204 | <el-button v-if="!this.$store.getters.code" @click="print" type="primary" plain round | 204 | <el-button v-if="!this.$store.getters.code" @click="print" type="primary" plain round |
| 205 | icon="el-icon-printer">打印</el-button> | 205 | icon="el-icon-printer">打印</el-button> |
| 206 | </div> | 206 | </div> |
| @@ -239,6 +239,7 @@ | @@ -239,6 +239,7 @@ | ||
| 239 | <el-button @click="diaMinScore = false">取 消</el-button> | 239 | <el-button @click="diaMinScore = false">取 消</el-button> |
| 240 | </div> | 240 | </div> |
| 241 | </el-dialog> | 241 | </el-dialog> |
| 242 | + <ExportDia :exportStudent="exportStudent" :diaShow="diaShow" @cancel="cancel" @exportData="exportData" /> | ||
| 242 | </div> | 243 | </div> |
| 243 | </div> | 244 | </div> |
| 244 | </template> | 245 | </template> |
| @@ -247,7 +248,7 @@ import ScoreSet from "./scoreSet.vue" | @@ -247,7 +248,7 @@ import ScoreSet from "./scoreSet.vue" | ||
| 247 | import { downloadFile, tablePrint } from "@/utils"; | 248 | import { downloadFile, tablePrint } from "@/utils"; |
| 248 | export default { | 249 | export default { |
| 249 | components: { | 250 | components: { |
| 250 | - ScoreSet | 251 | + ScoreSet, |
| 251 | }, | 252 | }, |
| 252 | props: { | 253 | props: { |
| 253 | role: "", | 254 | role: "", |
| @@ -310,9 +311,9 @@ export default { | @@ -310,9 +311,9 @@ export default { | ||
| 310 | //答题录分 | 311 | //答题录分 |
| 311 | diaScoreSet: false, | 312 | diaScoreSet: false, |
| 312 | 313 | ||
| 313 | - exportType: 1, | ||
| 314 | - exportStudent: [], | ||
| 315 | - multipleSelection: [], | 314 | + //导出相关 |
| 315 | + diaShow: false, | ||
| 316 | + exportStudent: [] | ||
| 316 | }; | 317 | }; |
| 317 | }, | 318 | }, |
| 318 | created() { | 319 | created() { |
| @@ -492,6 +493,7 @@ export default { | @@ -492,6 +493,7 @@ export default { | ||
| 492 | this.questionList = optionsList.sort((a, b) => { | 493 | this.questionList = optionsList.sort((a, b) => { |
| 493 | return a.id - b.id; | 494 | return a.id - b.id; |
| 494 | }); | 495 | }); |
| 496 | + this.exportStudent = [...this.tableData2] | ||
| 495 | } else { | 497 | } else { |
| 496 | this.$message.error(info); | 498 | this.$message.error(info); |
| 497 | } | 499 | } |
| @@ -512,7 +514,7 @@ export default { | @@ -512,7 +514,7 @@ export default { | ||
| 512 | this.loading = false; | 514 | this.loading = false; |
| 513 | if (status === 0) { | 515 | if (status === 0) { |
| 514 | let optionsList = [{}, {}, {}, {}, {}]; | 516 | let optionsList = [{}, {}, {}, {}, {}]; |
| 515 | - let tableData = data?.list.map((item) => { | 517 | + let tableData = data?.list?.map((item) => { |
| 516 | let params = {}; | 518 | let params = {}; |
| 517 | const detail = JSON.parse(item.detail); | 519 | const detail = JSON.parse(item.detail); |
| 518 | let lastOPtion = detail?.find((item) => { | 520 | let lastOPtion = detail?.find((item) => { |
| @@ -553,7 +555,7 @@ export default { | @@ -553,7 +555,7 @@ export default { | ||
| 553 | ...params, | 555 | ...params, |
| 554 | }; | 556 | }; |
| 555 | }); | 557 | }); |
| 556 | - this.tableData = tableData.sort((a, b) => { | 558 | + this.tableData = tableData?.sort((a, b) => { |
| 557 | return a.questionIndex - b.questionIndex; | 559 | return a.questionIndex - b.questionIndex; |
| 558 | }); | 560 | }); |
| 559 | this.optionsList = [...optionsList]; | 561 | this.optionsList = [...optionsList]; |
| @@ -563,20 +565,18 @@ export default { | @@ -563,20 +565,18 @@ export default { | ||
| 563 | this.$message.error(info); | 565 | this.$message.error(info); |
| 564 | } | 566 | } |
| 565 | }, | 567 | }, |
| 568 | + | ||
| 566 | //导出 | 569 | //导出 |
| 567 | - async exportData() { | 570 | + openDown() { |
| 571 | + this.diaShow = true; | ||
| 572 | + }, | ||
| 573 | + cancel() { | ||
| 574 | + this.diaShow = false; | ||
| 575 | + }, | ||
| 576 | + async exportData(arr) { | ||
| 568 | if (this.exportLoading == true) return; | 577 | if (this.exportLoading == true) return; |
| 569 | this.exportLoading = true; | 578 | this.exportLoading = true; |
| 570 | - let studentIds = [] | ||
| 571 | - if (length) { | ||
| 572 | - studentIds = this.exportStudent.slice(0, 10).map(item => { | ||
| 573 | - return item.studentId | ||
| 574 | - }) | ||
| 575 | - } else { | ||
| 576 | - studentIds = this.multipleSelection.map(item => { | ||
| 577 | - return item.studentId | ||
| 578 | - }) | ||
| 579 | - } | 579 | + let studentIds = arr |
| 580 | let query = {}; | 580 | let query = {}; |
| 581 | if (studentIds.length == this.exportStudent.length) { | 581 | if (studentIds.length == this.exportStudent.length) { |
| 582 | query.studentIds = [] | 582 | query.studentIds = [] |
| @@ -592,7 +592,7 @@ export default { | @@ -592,7 +592,7 @@ export default { | ||
| 592 | ...query | 592 | ...query |
| 593 | }); | 593 | }); |
| 594 | this.exportLoading = false; | 594 | this.exportLoading = false; |
| 595 | - if (data) { | 595 | + if (!data.status) { |
| 596 | let blob = new Blob([data], { | 596 | let blob = new Blob([data], { |
| 597 | type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", | 597 | type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", |
| 598 | }); | 598 | }); |
| @@ -603,7 +603,7 @@ export default { | @@ -603,7 +603,7 @@ export default { | ||
| 603 | blob | 603 | blob |
| 604 | ); | 604 | ); |
| 605 | } else { | 605 | } else { |
| 606 | - this.$message.error("下载失败"); | 606 | + this.$message.error(data.info); |
| 607 | } | 607 | } |
| 608 | }, | 608 | }, |
| 609 | }, | 609 | }, |
src/views/basic/test/list.vue
| @@ -175,7 +175,7 @@ export default { | @@ -175,7 +175,7 @@ export default { | ||
| 175 | title: obj.title, | 175 | title: obj.title, |
| 176 | score: obj.examPaperScore || 0, | 176 | score: obj.examPaperScore || 0, |
| 177 | type: 1, | 177 | type: 1, |
| 178 | - subject: obj.subjectName | 178 | + subjectName: obj.subjectName |
| 179 | }, | 179 | }, |
| 180 | }); | 180 | }); |
| 181 | }, | 181 | }, |
src/views/examinationPaper/edit.vue
| @@ -395,7 +395,6 @@ export default { | @@ -395,7 +395,6 @@ export default { | ||
| 395 | this.type = this.$route.query.type || 1; | 395 | this.type = this.$route.query.type || 1; |
| 396 | this.form.title = this.$route.query.title || ""; | 396 | this.form.title = this.$route.query.title || ""; |
| 397 | this._QueryDetail(); | 397 | this._QueryDetail(); |
| 398 | - this._GradeList() | ||
| 399 | }, | 398 | }, |
| 400 | methods: { | 399 | methods: { |
| 401 | // v1.5 | 400 | // v1.5 |
src/views/examinationPaper/index.vue
| @@ -201,7 +201,6 @@ export default { | @@ -201,7 +201,6 @@ export default { | ||
| 201 | } | 201 | } |
| 202 | await this._QuerySubjectList(); | 202 | await this._QuerySubjectList(); |
| 203 | this._QueryData(); | 203 | this._QueryData(); |
| 204 | - this._QueryTotal(); | ||
| 205 | }, | 204 | }, |
| 206 | methods: { | 205 | methods: { |
| 207 | refreshStic() { | 206 | refreshStic() { |
| @@ -267,7 +266,7 @@ export default { | @@ -267,7 +266,7 @@ export default { | ||
| 267 | }, | 266 | }, |
| 268 | changPaperType(type) { | 267 | changPaperType(type) { |
| 269 | this.query.type = type | 268 | this.query.type = type |
| 270 | - this.changShare(1) | 269 | + this.changShare(0) |
| 271 | }, | 270 | }, |
| 272 | changePage(page) { | 271 | changePage(page) { |
| 273 | this.page = page; | 272 | this.page = page; |
| @@ -311,14 +310,12 @@ export default { | @@ -311,14 +310,12 @@ export default { | ||
| 311 | async getData(bool) { | 310 | async getData(bool) { |
| 312 | this.page = 1; | 311 | this.page = 1; |
| 313 | this._QueryData(bool); | 312 | this._QueryData(bool); |
| 314 | - this._QueryTotal(); | ||
| 315 | }, | 313 | }, |
| 316 | //切换班级 | 314 | //切换班级 |
| 317 | async changClazz() { | 315 | async changClazz() { |
| 318 | this.page = 1; | 316 | this.page = 1; |
| 319 | await this._QuerySubjectList(); | 317 | await this._QuerySubjectList(); |
| 320 | this._QueryData(false); | 318 | this._QueryData(false); |
| 321 | - this._QueryTotal(); | ||
| 322 | }, | 319 | }, |
| 323 | //切换类型 | 320 | //切换类型 |
| 324 | async changShare(share) { | 321 | async changShare(share) { |
| @@ -423,6 +420,8 @@ export default { | @@ -423,6 +420,8 @@ export default { | ||
| 423 | }); | 420 | }); |
| 424 | this.loading = false; | 421 | this.loading = false; |
| 425 | if (status === 0) { | 422 | if (status === 0) { |
| 423 | + this.totalCount.my = data?.myCount || 0; | ||
| 424 | + this.totalCount.share = data?.gradeCount || 0; | ||
| 426 | this.archivedTotal = data.archivedTotal; | 425 | this.archivedTotal = data.archivedTotal; |
| 427 | this.total = data.total; | 426 | this.total = data.total; |
| 428 | this.tableData = (data.list && [...data.list]) || []; | 427 | this.tableData = (data.list && [...data.list]) || []; |
| @@ -430,24 +429,6 @@ export default { | @@ -430,24 +429,6 @@ export default { | ||
| 430 | this.$message.error(info); | 429 | this.$message.error(info); |
| 431 | } | 430 | } |
| 432 | }, | 431 | }, |
| 433 | - async _QueryTotal() { | ||
| 434 | - //获取答题卡列表 | ||
| 435 | - let query = { ...this.query }; | ||
| 436 | - for (let key in query) { | ||
| 437 | - if (!query[key]) { | ||
| 438 | - delete query[key] | ||
| 439 | - } | ||
| 440 | - } | ||
| 441 | - const { data, status, info } = await this.$request.paperShareCount({ | ||
| 442 | - ...query, | ||
| 443 | - }); | ||
| 444 | - if (status === 0) { | ||
| 445 | - this.totalCount.my = data?.myCount || 0; | ||
| 446 | - this.totalCount.share = data?.grade || 0; | ||
| 447 | - } else { | ||
| 448 | - this.$message.error(info); | ||
| 449 | - } | ||
| 450 | - }, | ||
| 451 | 432 | ||
| 452 | 433 | ||
| 453 | //v1.5 | 434 | //v1.5 |