Commit 1410e5cdd8229e396f0d92d54335fd3b9e93655f
1 parent
68875fba
即时测随堂问多班汇总逻辑
Showing
2 changed files
with
327 additions
and
228 deletions
src/views/basic/ask/list.vue
| ... | ... | @@ -5,56 +5,149 @@ |
| 5 | 5 | <span>随堂问-数据报表</span> |
| 6 | 6 | </template> |
| 7 | 7 | <template slot="btns"> |
| 8 | - <el-tooltip v-if="this.role != 'ROLE_PERSONAL' && !code && gdClass" effect="dark" content="已归档试卷" | |
| 9 | - placement="bottom"> | |
| 10 | - <el-button type="primary" icon="fa fa-archive" size="mini" plain circle @click="toArchiving"></el-button> | |
| 8 | + <el-tooltip | |
| 9 | + v-if="this.role != 'ROLE_PERSONAL' && !code && gdClass" | |
| 10 | + effect="dark" | |
| 11 | + content="已归档试卷" | |
| 12 | + placement="bottom" | |
| 13 | + > | |
| 14 | + <el-button | |
| 15 | + type="primary" | |
| 16 | + icon="fa fa-archive" | |
| 17 | + size="mini" | |
| 18 | + plain | |
| 19 | + circle | |
| 20 | + @click="toArchiving" | |
| 21 | + ></el-button> | |
| 11 | 22 | </el-tooltip> |
| 12 | 23 | </template> |
| 13 | 24 | </back-box> |
| 14 | 25 | <div v-show="!isDetail" class="table-box"> |
| 15 | 26 | <div class="table-cont" v-loading="loading"> |
| 16 | 27 | <p class="btn-box" v-if="tableData.length"> |
| 17 | - <el-button type="primary" round @click="linkToDetail2">查看汇总报表</el-button> | |
| 28 | + <el-button type="primary" round @click="linkToDetail2" | |
| 29 | + >查看汇总报表</el-button | |
| 30 | + > | |
| 18 | 31 | </p> |
| 19 | 32 | <div> |
| 20 | - <el-table :data="tableData" border :show-header="total > 0" style="width: 100%" | |
| 21 | - @selection-change="handleSelectionChange"> | |
| 22 | - <el-table-column type="selection" width="40"></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> | |
| 25 | - <el-table-column prop="participationRate" label="总参与度" align="center"> <template slot-scope="scoped">{{ | |
| 26 | - scoped.row.participationRate }}%</template></el-table-column> | |
| 27 | - <el-table-column prop="answerCorrectRate" label="已答总正确率" align="center"><template slot-scope="scoped">{{ | |
| 28 | - scoped.row.answerCorrectRate }}%</template> | |
| 33 | + <el-table | |
| 34 | + :data="tableData" | |
| 35 | + border | |
| 36 | + :show-header="total > 0" | |
| 37 | + style="width: 100%" | |
| 38 | + > | |
| 39 | + <el-table-column align="center" width="48"> | |
| 40 | + <template slot-scope="scope"> | |
| 41 | + <el-checkbox | |
| 42 | + v-model="multipleSelection" | |
| 43 | + :label="scope.row.id" | |
| 44 | + :disabled="checkboxDisabled(scope.row)" | |
| 45 | + ><span></span | |
| 46 | + ></el-checkbox> | |
| 47 | + </template> | |
| 48 | + </el-table-column> | |
| 49 | + <el-table-column | |
| 50 | + prop="subjectName" | |
| 51 | + label="科目" | |
| 52 | + align="center" | |
| 53 | + width="80" | |
| 54 | + ></el-table-column> | |
| 55 | + <el-table-column | |
| 56 | + prop="title" | |
| 57 | + label="课时名称" | |
| 58 | + align="center" | |
| 59 | + ></el-table-column> | |
| 60 | + <el-table-column | |
| 61 | + prop="participationRate" | |
| 62 | + label="总参与度" | |
| 63 | + align="center" | |
| 64 | + > | |
| 65 | + <template slot-scope="scoped" | |
| 66 | + >{{ scoped.row.participationRate }}%</template | |
| 67 | + ></el-table-column | |
| 68 | + > | |
| 69 | + <el-table-column | |
| 70 | + prop="answerCorrectRate" | |
| 71 | + label="已答总正确率" | |
| 72 | + align="center" | |
| 73 | + ><template slot-scope="scoped" | |
| 74 | + >{{ scoped.row.answerCorrectRate }}%</template | |
| 75 | + > | |
| 29 | 76 | </el-table-column> |
| 30 | - <el-table-column prop="classCorrectRate" label="班级总正确率" align="center"><template slot-scope="scoped">{{ | |
| 31 | - scoped.row.classCorrectRate }}%</template></el-table-column> | |
| 32 | - <el-table-column prop="questionNum" label="题目总数" align="center"></el-table-column> | |
| 33 | - <el-table-column prop="startTime" label="上课时间" align="center"></el-table-column> | |
| 77 | + <el-table-column | |
| 78 | + prop="classCorrectRate" | |
| 79 | + label="班级总正确率" | |
| 80 | + align="center" | |
| 81 | + ><template slot-scope="scoped" | |
| 82 | + >{{ scoped.row.classCorrectRate }}%</template | |
| 83 | + ></el-table-column | |
| 84 | + > | |
| 85 | + <el-table-column | |
| 86 | + prop="questionNum" | |
| 87 | + label="题目总数" | |
| 88 | + align="center" | |
| 89 | + ></el-table-column> | |
| 90 | + <el-table-column | |
| 91 | + prop="startTime" | |
| 92 | + label="上课时间" | |
| 93 | + align="center" | |
| 94 | + ></el-table-column> | |
| 34 | 95 | <el-table-column label="操作" align="center" width="100"> |
| 35 | 96 | <template slot-scope="scoped"> |
| 36 | 97 | <template v-if="scoped.row.answerNum == 0"> |
| 37 | - <el-tooltip v-if="role != 'ROLE_BANZHUREN'" effect="dark" content="设置答案" placement="top"> | |
| 38 | - <el-button type="primary" circle size="mini" icon="fa fa-file-text" | |
| 39 | - @click="edit(scoped.row)"></el-button> | |
| 98 | + <el-tooltip | |
| 99 | + v-if="role != 'ROLE_BANZHUREN'" | |
| 100 | + effect="dark" | |
| 101 | + content="设置答案" | |
| 102 | + placement="top" | |
| 103 | + > | |
| 104 | + <el-button | |
| 105 | + type="primary" | |
| 106 | + circle | |
| 107 | + size="mini" | |
| 108 | + icon="fa fa-file-text" | |
| 109 | + @click="edit(scoped.row)" | |
| 110 | + ></el-button> | |
| 40 | 111 | </el-tooltip> |
| 41 | 112 | <template v-else>未设置答案</template> |
| 42 | 113 | </template> |
| 43 | 114 | <el-tooltip v-else effect="dark" content="详情" placement="top"> |
| 44 | - <el-button type="primary" circle size="mini" icon="fa fa-arrow-right" | |
| 45 | - @click="linkToDetail(scoped.row, 1)"></el-button> | |
| 115 | + <el-button | |
| 116 | + type="primary" | |
| 117 | + circle | |
| 118 | + size="mini" | |
| 119 | + icon="fa fa-arrow-right" | |
| 120 | + @click="linkToDetail(scoped.row, 1)" | |
| 121 | + ></el-button> | |
| 46 | 122 | </el-tooltip> |
| 47 | - <el-tooltip v-if="role != 'ROLE_BANZHUREN'" effect="dark" content="删除" placement="top"> | |
| 48 | - <el-button type="primary" circle size="mini" icon="el-icon-delete" | |
| 49 | - @click="remove(scoped.row)"></el-button> | |
| 123 | + <el-tooltip | |
| 124 | + v-if="role != 'ROLE_BANZHUREN'" | |
| 125 | + effect="dark" | |
| 126 | + content="删除" | |
| 127 | + placement="top" | |
| 128 | + > | |
| 129 | + <el-button | |
| 130 | + type="primary" | |
| 131 | + circle | |
| 132 | + size="mini" | |
| 133 | + icon="el-icon-delete" | |
| 134 | + @click="remove(scoped.row)" | |
| 135 | + ></el-button> | |
| 50 | 136 | </el-tooltip> |
| 51 | 137 | </template> |
| 52 | 138 | </el-table-column> |
| 53 | 139 | </el-table> |
| 54 | 140 | </div> |
| 55 | 141 | <div class="pagination-box"> |
| 56 | - <el-pagination small="" layout="total,prev, pager, next" :hide-on-single-page="true" :total="total" | |
| 57 | - @current-change="changePage" :current-page="page" :page-size="size"> | |
| 142 | + <el-pagination | |
| 143 | + small="" | |
| 144 | + layout="total,prev, pager, next" | |
| 145 | + :hide-on-single-page="true" | |
| 146 | + :total="total" | |
| 147 | + @current-change="changePage" | |
| 148 | + :current-page="page" | |
| 149 | + :page-size="size" | |
| 150 | + > | |
| 58 | 151 | </el-pagination> |
| 59 | 152 | </div> |
| 60 | 153 | </div> |
| ... | ... | @@ -88,38 +181,40 @@ export default { |
| 88 | 181 | }, |
| 89 | 182 | computed: { |
| 90 | 183 | isDetail: function () { |
| 91 | - let bol = (this.$route.name == "随堂问报表分析") ? true : false | |
| 92 | - return bol | |
| 93 | - } | |
| 184 | + let bol = this.$route.name == "随堂问报表分析" ? true : false; | |
| 185 | + return bol; | |
| 186 | + }, | |
| 94 | 187 | }, |
| 95 | 188 | async created() { |
| 96 | 189 | this.code = this.$store.getters.csCode; |
| 97 | - this.init() | |
| 190 | + this.init(); | |
| 98 | 191 | }, |
| 99 | 192 | watch: { |
| 100 | 193 | "$route.query.params": function (nVal) { |
| 101 | 194 | let isFromAskDetail = sessionStorage.getItem("isFromAskDetail"); |
| 102 | 195 | if (!isFromAskDetail && nVal) { |
| 103 | - this.init() | |
| 196 | + this.init(); | |
| 104 | 197 | } |
| 105 | - } | |
| 198 | + }, | |
| 106 | 199 | }, |
| 107 | 200 | methods: { |
| 108 | 201 | //初始化 |
| 109 | 202 | init() { |
| 110 | - const queryData = this.$route.query.params | |
| 111 | - queryData ? this.query = { ...this.query, ...JSON.parse(queryData) } : '' | |
| 203 | + const queryData = this.$route.query.params; | |
| 204 | + queryData | |
| 205 | + ? (this.query = { ...this.query, ...JSON.parse(queryData) }) | |
| 206 | + : ""; | |
| 112 | 207 | this.role = |
| 113 | 208 | this.$store.getters.info.showRole || |
| 114 | 209 | this.$store.getters.info.permissions[0].role; |
| 115 | 210 | if (this.role != "ROLE_PERSONAL") { |
| 116 | - this._QueryGdClass() | |
| 117 | - }; | |
| 118 | - this.$store.commit('setClasses', this.query.classId) | |
| 119 | - this.page = 1 | |
| 120 | - this.total = 0 | |
| 121 | - this.tableData = [] | |
| 122 | - this._QueryData() | |
| 211 | + this._QueryGdClass(); | |
| 212 | + } | |
| 213 | + this.$store.commit("setClasses", this.query.classId); | |
| 214 | + this.page = 1; | |
| 215 | + this.total = 0; | |
| 216 | + this.tableData = []; | |
| 217 | + this._QueryData(); | |
| 123 | 218 | }, |
| 124 | 219 | //归档 |
| 125 | 220 | toArchiving() { |
| ... | ... | @@ -127,8 +222,23 @@ export default { |
| 127 | 222 | path: "/askArchiving", |
| 128 | 223 | }); |
| 129 | 224 | }, |
| 130 | - handleSelectionChange(val) { | |
| 131 | - this.multipleSelection = val; | |
| 225 | + // 班主任教学班不能与行政班汇总 | |
| 226 | + checkboxDisabled(obj) { | |
| 227 | + if (this.role == "ROLE_BANZHUREN") { | |
| 228 | + let id = this.multipleSelection[0] || ""; | |
| 229 | + if (id) { | |
| 230 | + let classId; | |
| 231 | + for (let i = 0; i < this.tableData.length; i++) { | |
| 232 | + if (this.tableData[i].id == id) { | |
| 233 | + classId = this.tableData[i].classId; | |
| 234 | + break; | |
| 235 | + } | |
| 236 | + } | |
| 237 | + return obj.classId == classId ? false : true; | |
| 238 | + } else { | |
| 239 | + return false; | |
| 240 | + } | |
| 241 | + } | |
| 132 | 242 | }, |
| 133 | 243 | //去详情 |
| 134 | 244 | linkToDetail(obj, types) { |
| ... | ... | @@ -146,21 +256,27 @@ export default { |
| 146 | 256 | //去详情 |
| 147 | 257 | linkToDetail2() { |
| 148 | 258 | if (this.multipleSelection.length == 0) { |
| 149 | - this.$message.warning("未选择课时,请选择~") | |
| 150 | - return | |
| 259 | + this.$message.warning("未选择课时,请选择~"); | |
| 260 | + return; | |
| 151 | 261 | } |
| 152 | - let subjectArr = [] | |
| 153 | - const ids = this.multipleSelection.map(item => { | |
| 154 | - subjectArr.push(item.subjectName) | |
| 155 | - return item.id | |
| 156 | - }) | |
| 157 | - subjectArr = [...new Set(subjectArr)] | |
| 262 | + let subjectArr = []; | |
| 263 | + this.tableData.map((item) => { | |
| 264 | + if(this.multipleSelection.includes(item.id)){ | |
| 265 | + subjectArr.push(item.subjectName); | |
| 266 | + } | |
| 267 | + }); | |
| 268 | + subjectArr = [...new Set(subjectArr)]; | |
| 158 | 269 | this.$router.push({ |
| 159 | 270 | path: "/askAnalysis", |
| 160 | 271 | query: { |
| 161 | - id: JSON.stringify(ids), | |
| 162 | - types: this.multipleSelection.length == 1 ? 1 : subjectArr.length == 1 ? 2 : 3, | |
| 163 | - subjectNames: subjectArr.join(','), | |
| 272 | + id: JSON.stringify(this.multipleSelection), | |
| 273 | + types: | |
| 274 | + this.multipleSelection.length == 1 | |
| 275 | + ? 1 | |
| 276 | + : subjectArr.length == 1 | |
| 277 | + ? 2 | |
| 278 | + : 3, | |
| 279 | + subjectNames: subjectArr.join(","), | |
| 164 | 280 | params: this.$route.query.params, |
| 165 | 281 | className: this.$route.query.className, |
| 166 | 282 | }, |
| ... | ... | @@ -216,9 +332,10 @@ export default { |
| 216 | 332 | query[key] = this.query[key]; |
| 217 | 333 | } |
| 218 | 334 | } |
| 219 | - const periodReportList = this.role == "ROLE_PERSONAL" ? | |
| 220 | - this.$request.pPhaseInteractiveReport : | |
| 221 | - this.$request.periodReportList; | |
| 335 | + const periodReportList = | |
| 336 | + this.role == "ROLE_PERSONAL" | |
| 337 | + ? this.$request.pPhaseInteractiveReport | |
| 338 | + : this.$request.periodReportList; | |
| 222 | 339 | const { data, status, info } = await periodReportList({ |
| 223 | 340 | ...query, |
| 224 | 341 | page: this.page, |
| ... | ... | @@ -242,11 +359,12 @@ export default { |
| 242 | 359 | } |
| 243 | 360 | } |
| 244 | 361 | this.exportLoading = true; |
| 245 | - let exportData = this.role == "ROLE_BANZHUREN" ? | |
| 246 | - this.$request.cTExportPhaseInteractiveReport : | |
| 247 | - this.role == "ROLE_PERSONAL" ? | |
| 248 | - this.$request.pExportPhaseReport : | |
| 249 | - this.$request.exportPhaseInteractiveReport; | |
| 362 | + let exportData = | |
| 363 | + this.role == "ROLE_BANZHUREN" | |
| 364 | + ? this.$request.cTExportPhaseInteractiveReport | |
| 365 | + : this.role == "ROLE_PERSONAL" | |
| 366 | + ? this.$request.pExportPhaseReport | |
| 367 | + : this.$request.exportPhaseInteractiveReport; | |
| 250 | 368 | const data = await exportData({ ...query }); |
| 251 | 369 | this.exportLoading = false; |
| 252 | 370 | if (data) { | ... | ... |
src/views/basic/test/list.vue
| ... | ... | @@ -23,8 +23,8 @@ |
| 23 | 23 | </template> |
| 24 | 24 | </back-box> |
| 25 | 25 | <div v-show="!isDetail" class="table-box" v-loading="loading"> |
| 26 | - <div v-if="!isMultipleClass"> | |
| 27 | - <p class="btn-box"> | |
| 26 | + <div> | |
| 27 | + <p v-if="!isMultipleClass" class="btn-box"> | |
| 28 | 28 | <el-button type="primary" round @click="linkToDetail2" |
| 29 | 29 | >查看汇总报表</el-button |
| 30 | 30 | > |
| ... | ... | @@ -34,116 +34,153 @@ |
| 34 | 34 | :max-height="tableMaxHeight" |
| 35 | 35 | border |
| 36 | 36 | style="width: 100%" |
| 37 | - @selection-change="handleSelectionChange" | |
| 38 | 37 | > |
| 39 | - <el-table-column width="36" v-if="role == 'ROLE_BANZHUREN'"> | |
| 40 | - <template slot-scope="scope"> | |
| 41 | - <el-checkbox | |
| 42 | - v-model="multipleSelection" | |
| 43 | - :label="scope.row.id" | |
| 44 | - :disabled="checkboxDisabled(scope.row)" | |
| 45 | - ><span></span | |
| 46 | - ></el-checkbox> | |
| 47 | - </template> | |
| 48 | - </el-table-column> | |
| 49 | - <el-table-column type="selection" width="40" v-else></el-table-column> | |
| 50 | - <el-table-column | |
| 51 | - prop="subjectName" | |
| 52 | - label="科目" | |
| 53 | - align="center" | |
| 54 | - ></el-table-column> | |
| 55 | - <el-table-column | |
| 56 | - prop="className" | |
| 57 | - label="班级" | |
| 58 | - align="center" | |
| 59 | - ></el-table-column> | |
| 60 | - <el-table-column | |
| 61 | - prop="title" | |
| 62 | - label="试卷名称" | |
| 63 | - align="center" | |
| 64 | - ></el-table-column> | |
| 65 | - <el-table-column | |
| 66 | - prop="examPaperScore" | |
| 67 | - label="卷面分" | |
| 68 | - align="center" | |
| 69 | - ></el-table-column> | |
| 70 | - <el-table-column label="测验人数/班级人数" align="center"> | |
| 71 | - <template slot-scope="scoped">{{ | |
| 72 | - `${scoped.row.answeredNum}/${scoped.row.classPersonNum}` | |
| 73 | - }}</template> | |
| 74 | - </el-table-column> | |
| 75 | - <el-table-column | |
| 76 | - prop="examStartTime" | |
| 77 | - label="测验开始时间" | |
| 78 | - align="center" | |
| 79 | - ></el-table-column> | |
| 80 | - <el-table-column label="操作" align="center"> | |
| 81 | - <template slot-scope="scoped"> | |
| 82 | - <el-tooltip | |
| 83 | - v-if="scoped.row.answerNum != 0 || scoped.row.recordStatus != 0" | |
| 84 | - effect="dark" | |
| 85 | - content="详情" | |
| 86 | - placement="top" | |
| 87 | - > | |
| 38 | + <template v-if="isMultipleClass"> | |
| 39 | + <el-table-column | |
| 40 | + prop="subjectName" | |
| 41 | + label="科目" | |
| 42 | + align="center" | |
| 43 | + ></el-table-column> | |
| 44 | + <el-table-column prop="classList" label="班级" align="center"> | |
| 45 | + <template slot-scope="scoped"> | |
| 46 | + <span v-for="(item, index) in scoped.row.classNames">{{ | |
| 47 | + `${index == 0 ? "" : "/"}` + item | |
| 48 | + }}</span> | |
| 49 | + </template> | |
| 50 | + </el-table-column> | |
| 51 | + <el-table-column | |
| 52 | + prop="title" | |
| 53 | + label="试卷名称" | |
| 54 | + align="center" | |
| 55 | + ></el-table-column> | |
| 56 | + <el-table-column | |
| 57 | + prop="examPaperScore" | |
| 58 | + label="卷面分" | |
| 59 | + align="center" | |
| 60 | + ></el-table-column> | |
| 61 | + <el-table-column label="操作" align="center"> | |
| 62 | + <template slot-scope="scoped"> | |
| 88 | 63 | <el-button |
| 89 | 64 | type="primary" |
| 90 | 65 | circle |
| 91 | 66 | size="mini" |
| 92 | - icon="fa fa-arrow-right" | |
| 93 | - @click="linkTo(scoped.row)" | |
| 67 | + icon="el-icon-arrow-right" | |
| 68 | + @click="linkContrast(scoped.row)" | |
| 94 | 69 | ></el-button> |
| 95 | - </el-tooltip> | |
| 96 | - <template v-if="scoped.row.answerNum == 0"> | |
| 70 | + </template> | |
| 71 | + </el-table-column> | |
| 72 | + </template> | |
| 73 | + <template v-if="!isMultipleClass"> | |
| 74 | + <el-table-column width="48"> | |
| 75 | + <template slot-scope="scope"> | |
| 76 | + <el-checkbox | |
| 77 | + v-model="multipleSelection" | |
| 78 | + :label="scope.row.id" | |
| 79 | + :disabled="checkboxDisabled(scope.row)" | |
| 80 | + ><span></span | |
| 81 | + ></el-checkbox> | |
| 82 | + </template> | |
| 83 | + </el-table-column> | |
| 84 | + <el-table-column | |
| 85 | + prop="subjectName" | |
| 86 | + label="科目" | |
| 87 | + align="center" | |
| 88 | + ></el-table-column> | |
| 89 | + <el-table-column | |
| 90 | + prop="className" | |
| 91 | + label="班级" | |
| 92 | + align="center" | |
| 93 | + ></el-table-column> | |
| 94 | + <el-table-column | |
| 95 | + prop="title" | |
| 96 | + label="试卷名称" | |
| 97 | + align="center" | |
| 98 | + ></el-table-column> | |
| 99 | + <el-table-column | |
| 100 | + prop="examPaperScore" | |
| 101 | + label="卷面分" | |
| 102 | + align="center" | |
| 103 | + ></el-table-column> | |
| 104 | + <el-table-column label="测验人数/班级人数" align="center"> | |
| 105 | + <template slot-scope="scoped">{{ | |
| 106 | + `${scoped.row.answeredNum}/${scoped.row.classPersonNum}` | |
| 107 | + }}</template> | |
| 108 | + </el-table-column> | |
| 109 | + <el-table-column | |
| 110 | + prop="examStartTime" | |
| 111 | + label="测验开始时间" | |
| 112 | + align="center" | |
| 113 | + ></el-table-column> | |
| 114 | + <el-table-column label="操作" align="center"> | |
| 115 | + <template slot-scope="scoped"> | |
| 97 | 116 | <el-tooltip |
| 98 | - v-if="role != 'ROLE_BANZHUREN'" | |
| 117 | + v-if=" | |
| 118 | + scoped.row.answerNum != 0 || scoped.row.recordStatus != 0 | |
| 119 | + " | |
| 99 | 120 | effect="dark" |
| 100 | - content="设置答案" | |
| 121 | + content="详情" | |
| 101 | 122 | placement="top" |
| 102 | 123 | > |
| 103 | 124 | <el-button |
| 104 | 125 | type="primary" |
| 105 | 126 | circle |
| 106 | 127 | size="mini" |
| 107 | - icon="fa fa-file-text" | |
| 108 | - @click="edit(scoped.row)" | |
| 128 | + icon="fa fa-arrow-right" | |
| 129 | + @click="linkTo(scoped.row)" | |
| 109 | 130 | ></el-button> |
| 110 | 131 | </el-tooltip> |
| 111 | - <template v-else>未设置答案</template> | |
| 112 | - </template> | |
| 113 | - <!-- <el-tooltip v-else effect="dark" content="答卷录分" placement="top"> | |
| 132 | + <template v-if="scoped.row.answerNum == 0"> | |
| 133 | + <el-tooltip | |
| 134 | + v-if="role != 'ROLE_BANZHUREN'" | |
| 135 | + effect="dark" | |
| 136 | + content="设置答案" | |
| 137 | + placement="top" | |
| 138 | + > | |
| 139 | + <el-button | |
| 140 | + type="primary" | |
| 141 | + circle | |
| 142 | + size="mini" | |
| 143 | + icon="fa fa-file-text" | |
| 144 | + @click="edit(scoped.row)" | |
| 145 | + ></el-button> | |
| 146 | + </el-tooltip> | |
| 147 | + <template v-else>未设置答案</template> | |
| 148 | + </template> | |
| 149 | + <!-- <el-tooltip v-else effect="dark" content="答卷录分" placement="top"> | |
| 114 | 150 | <el-button type="primary" circle size="mini" @click="openScoreSet(scoped.row)">分</el-button> |
| 115 | 151 | </el-tooltip> --> |
| 116 | - <el-tooltip | |
| 117 | - v-else | |
| 118 | - effect="dark" | |
| 119 | - content="答卷录分" | |
| 120 | - placement="top" | |
| 121 | - > | |
| 122 | - <el-button | |
| 123 | - type="primary" | |
| 124 | - circle | |
| 125 | - size="mini" | |
| 126 | - @click="openScoreSet(scoped.row)" | |
| 127 | - >分</el-button | |
| 152 | + <el-tooltip | |
| 153 | + v-else | |
| 154 | + effect="dark" | |
| 155 | + content="答卷录分" | |
| 156 | + placement="top" | |
| 128 | 157 | > |
| 129 | - </el-tooltip> | |
| 130 | - <el-popconfirm | |
| 131 | - v-if="role != 'ROLE_BANZHUREN'" | |
| 132 | - title="确定删除吗?" | |
| 133 | - @confirm="removeReport(scoped.row, scoped.$index)" | |
| 134 | - > | |
| 135 | - <el-button | |
| 136 | - class="remove-test" | |
| 137 | - slot="reference" | |
| 138 | - type="danger" | |
| 139 | - circle | |
| 140 | - size="mini" | |
| 141 | - icon="el-icon-delete" | |
| 142 | - :loading="scoped.row.loading" | |
| 143 | - ></el-button> | |
| 144 | - </el-popconfirm> | |
| 145 | - </template> | |
| 146 | - </el-table-column> | |
| 158 | + <el-button | |
| 159 | + type="primary" | |
| 160 | + circle | |
| 161 | + size="mini" | |
| 162 | + @click="openScoreSet(scoped.row)" | |
| 163 | + >分</el-button | |
| 164 | + > | |
| 165 | + </el-tooltip> | |
| 166 | + <el-popconfirm | |
| 167 | + v-if="role != 'ROLE_BANZHUREN'" | |
| 168 | + title="确定删除吗?" | |
| 169 | + @confirm="removeReport(scoped.row, scoped.$index)" | |
| 170 | + > | |
| 171 | + <el-button | |
| 172 | + class="remove-test" | |
| 173 | + slot="reference" | |
| 174 | + type="danger" | |
| 175 | + circle | |
| 176 | + size="mini" | |
| 177 | + icon="el-icon-delete" | |
| 178 | + :loading="scoped.row.loading" | |
| 179 | + ></el-button> | |
| 180 | + </el-popconfirm> | |
| 181 | + </template> | |
| 182 | + </el-table-column> | |
| 183 | + </template> | |
| 147 | 184 | </el-table> |
| 148 | 185 | <div class="pagination-box"> |
| 149 | 186 | <el-pagination |
| ... | ... | @@ -167,60 +204,6 @@ |
| 167 | 204 | @closeScoreSet="closeScoreSet" |
| 168 | 205 | /> |
| 169 | 206 | </div> |
| 170 | - <div v-else> | |
| 171 | - <el-table | |
| 172 | - :data="tableData" | |
| 173 | - :max-height="tableMaxHeight" | |
| 174 | - border | |
| 175 | - style="width: 100%" | |
| 176 | - > | |
| 177 | - <el-table-column | |
| 178 | - prop="subjectName" | |
| 179 | - label="科目" | |
| 180 | - align="center" | |
| 181 | - ></el-table-column> | |
| 182 | - <el-table-column prop="classList" label="班级" align="center"> | |
| 183 | - <template slot-scope="scoped"> | |
| 184 | - <span v-for="(item, index) in scoped.row.classNames">{{ | |
| 185 | - `${index == 0 ? "" : "/"}` + item | |
| 186 | - }}</span> | |
| 187 | - </template> | |
| 188 | - </el-table-column> | |
| 189 | - <el-table-column | |
| 190 | - prop="title" | |
| 191 | - label="试卷名称" | |
| 192 | - align="center" | |
| 193 | - ></el-table-column> | |
| 194 | - <el-table-column | |
| 195 | - prop="examPaperScore" | |
| 196 | - label="卷面分" | |
| 197 | - align="center" | |
| 198 | - ></el-table-column> | |
| 199 | - <el-table-column label="操作" align="center"> | |
| 200 | - <template slot-scope="scoped"> | |
| 201 | - <el-button | |
| 202 | - type="primary" | |
| 203 | - circle | |
| 204 | - size="mini" | |
| 205 | - icon="el-icon-arrow-right" | |
| 206 | - @click="linkContrast(scoped.row)" | |
| 207 | - ></el-button> | |
| 208 | - </template> | |
| 209 | - </el-table-column> | |
| 210 | - </el-table> | |
| 211 | - <div class="pagination-box"> | |
| 212 | - <el-pagination | |
| 213 | - small="" | |
| 214 | - layout="total,prev, pager, next" | |
| 215 | - :hide-on-single-page="true" | |
| 216 | - :total="total" | |
| 217 | - @current-change="changePage" | |
| 218 | - :current-page="page" | |
| 219 | - :page-size="size" | |
| 220 | - > | |
| 221 | - </el-pagination> | |
| 222 | - </div> | |
| 223 | - </div> | |
| 224 | 207 | </div> |
| 225 | 208 | <router-view v-show="isDetail"></router-view> |
| 226 | 209 | </div> |
| ... | ... | @@ -380,18 +363,20 @@ export default { |
| 380 | 363 | }, |
| 381 | 364 | // 班主任教学班不能与行政班汇总 |
| 382 | 365 | checkboxDisabled(obj) { |
| 383 | - let id = this.multipleSelection[0] || ""; | |
| 384 | - if (id) { | |
| 385 | - let classId; | |
| 386 | - for (let i = 0; i < this.tableData.length; i++) { | |
| 387 | - if (this.tableData[i].id == id) { | |
| 388 | - classId = this.tableData[i].classId; | |
| 389 | - break; | |
| 366 | + if (this.role == "ROLE_BANZHUREN") { | |
| 367 | + let id = this.multipleSelection[0] || ""; | |
| 368 | + if (id) { | |
| 369 | + let classId; | |
| 370 | + for (let i = 0; i < this.tableData.length; i++) { | |
| 371 | + if (this.tableData[i].id == id) { | |
| 372 | + classId = this.tableData[i].classId; | |
| 373 | + break; | |
| 374 | + } | |
| 390 | 375 | } |
| 376 | + return obj.classId == classId ? false : true; | |
| 377 | + } else { | |
| 378 | + return false; | |
| 391 | 379 | } |
| 392 | - return obj.classId == classId ? false : true; | |
| 393 | - } else { | |
| 394 | - return false; | |
| 395 | 380 | } |
| 396 | 381 | }, |
| 397 | 382 | handleSelectionChange(val) { |
| ... | ... | @@ -478,17 +463,12 @@ export default { |
| 478 | 463 | this.loading = false; |
| 479 | 464 | if (status === 0) { |
| 480 | 465 | if (this.role == "ROLE_BANZHUREN") { |
| 466 | + this.isMultipleClass = false; | |
| 481 | 467 | this.tableData = (data?.list && [...data?.list]) || []; |
| 482 | 468 | this.total = data?.count || 0; |
| 483 | 469 | } else { |
| 484 | - this.isMultipleClass = true; | |
| 485 | - let classArr = []; | |
| 486 | - data?.list?.map((item) => { | |
| 487 | - if (!classArr.includes(item.classId)) { | |
| 488 | - classArr.push(item.classId); | |
| 489 | - } | |
| 490 | - }); | |
| 491 | - if (classArr.length > 1) { | |
| 470 | + if (this.query.classId.length > 1) { | |
| 471 | + this.isMultipleClass = true; | |
| 492 | 472 | //多班级 |
| 493 | 473 | let tableObj = {}; |
| 494 | 474 | data?.list?.map((item) => { |
| ... | ... | @@ -528,6 +508,7 @@ export default { |
| 528 | 508 | } |
| 529 | 509 | }); |
| 530 | 510 | } else { |
| 511 | + this.isMultipleClass = false; | |
| 531 | 512 | this.tableData = (data?.list && [...data?.list]) || []; |
| 532 | 513 | this.total = data?.count || 0; |
| 533 | 514 | } | ... | ... |