Commit e5f407d66dd92a8a3ad8a8ad38a8f5769b241948
1 parent
f04179ad
测试问题
Showing
3 changed files
with
78 additions
and
23 deletions
src/views/standard/test/analysis.vue
src/views/standard/test/contrast.vue
| ... | ... | @@ -46,11 +46,13 @@ |
| 46 | 46 | align="center" |
| 47 | 47 | fixed |
| 48 | 48 | ></el-table-column> |
| 49 | - <el-table-column | |
| 50 | - prop="count" | |
| 51 | - label="测验人数/班级人数" | |
| 52 | - align="center" | |
| 53 | - ></el-table-column> | |
| 49 | + <el-table-column label="测验人数/班级人数" align="center" width="84"> | |
| 50 | + <template slot-scope="scope"> | |
| 51 | + <p v-for="(item, index) in scope.row.count.split('/')"> | |
| 52 | + {{ item }}{{ index == 0 ? "/" : "" }} | |
| 53 | + </p> | |
| 54 | + </template> | |
| 55 | + </el-table-column> | |
| 54 | 56 | <el-table-column |
| 55 | 57 | prop="percent" |
| 56 | 58 | label="参与度" |
| ... | ... | @@ -175,9 +177,9 @@ |
| 175 | 177 | <p class="dia-tab-tit"> |
| 176 | 178 | <span class="item1">编号</span> |
| 177 | 179 | <span class="item2"><i>*</i>等级名称</span> |
| 178 | - <span class="item2"><i>*</i>等级最高</span> | |
| 179 | - <span class="item2"><i>*</i>等级最低</span> | |
| 180 | - <span class="item1"></span> | |
| 180 | + <span class="item3"><i>*</i>等级最高</span> | |
| 181 | + <span class="item3"><i>*</i>等级最低</span> | |
| 182 | + <span class="item"></span> | |
| 181 | 183 | </p> |
| 182 | 184 | <div |
| 183 | 185 | class="dia-tab-item" |
| ... | ... | @@ -192,29 +194,42 @@ |
| 192 | 194 | @keydown.native="keydownRange($event)" |
| 193 | 195 | ></el-input> |
| 194 | 196 | </p> |
| 195 | - <p class="item2"> | |
| 197 | + <p class="item3"> | |
| 196 | 198 | <el-input |
| 197 | 199 | class="score-ipt" |
| 198 | 200 | type="number" |
| 199 | 201 | v-model="item[1]" |
| 200 | 202 | :min="item[2]" |
| 201 | - :max="index == 0 ? 150 : fromData.levels[index - 1][2]" | |
| 203 | + :max=" | |
| 204 | + index == 0 ? 100 : fromData.levels[index - 1][2] - 0.1 | |
| 205 | + " | |
| 202 | 206 | @keydown.native="keydownRange($event)" |
| 203 | 207 | ></el-input> |
| 204 | - {{ fromData.levelType == 1 ? "%" : "分" }} - | |
| 208 | + % | |
| 209 | + <template v-if="fromData.levelType == 0"> | |
| 210 | + ({{ | |
| 211 | + Number(((item[1] / 100) * examPaperScore).toFixed(1)) | |
| 212 | + }}分) | |
| 213 | + </template> | |
| 205 | 214 | </p> |
| 206 | - <p class="item2"> | |
| 215 | + <p>~</p> | |
| 216 | + <p class="item3"> | |
| 207 | 217 | <el-input |
| 208 | 218 | class="score-ipt" |
| 209 | 219 | type="number" |
| 210 | 220 | v-model="item[2]" |
| 211 | 221 | :min="0" |
| 212 | - :max="item[1]" | |
| 222 | + :max="item[1] - 1" | |
| 213 | 223 | @keydown.native="keydownRange($event)" |
| 214 | 224 | ></el-input> |
| 215 | - {{ fromData.levelType == 1 ? "%" : "分" }} | |
| 225 | + % | |
| 226 | + <template v-if="fromData.levelType == 0"> | |
| 227 | + ({{ | |
| 228 | + Number(((item[2] / 100) * examPaperScore).toFixed(1)) | |
| 229 | + }}分) | |
| 230 | + </template> | |
| 216 | 231 | </p> |
| 217 | - <p class="item1"> | |
| 232 | + <p class="item"> | |
| 218 | 233 | <el-link |
| 219 | 234 | type="danger" |
| 220 | 235 | :underline="false" |
| ... | ... | @@ -277,12 +292,13 @@ export default { |
| 277 | 292 | tableMaxHeight: 600, |
| 278 | 293 | tableData: [], |
| 279 | 294 | tableData2: [], |
| 295 | + examPaperScore: 100, //卷面最高分 | |
| 280 | 296 | }; |
| 281 | 297 | }, |
| 282 | - created() { | |
| 298 | + async created() { | |
| 283 | 299 | this.ids = this.$route.query.ids; |
| 284 | - this._QueryDefaultLevels(); | |
| 285 | - this._QueryData(); | |
| 300 | + await this._QueryData(); | |
| 301 | + await this._QueryDefaultLevels(); | |
| 286 | 302 | }, |
| 287 | 303 | destroyed() { |
| 288 | 304 | sessionStorage.setItem("levelFromData", ""); |
| ... | ... | @@ -338,6 +354,7 @@ export default { |
| 338 | 354 | } |
| 339 | 355 | }, |
| 340 | 356 | savefrom() { |
| 357 | + console.log(this.fromData); | |
| 341 | 358 | for (let i = 0; i < this.fromData.levels.length; i++) { |
| 342 | 359 | if (this.fromData.levels[i].includes("")) { |
| 343 | 360 | this.$message.warning("请补全编号" + (i + 1) + "设置信息!"); |
| ... | ... | @@ -346,8 +363,23 @@ export default { |
| 346 | 363 | } |
| 347 | 364 | if (this.fromData.levels.length == 0) { |
| 348 | 365 | this.$message.warning("请添加等级设置!"); |
| 349 | - return | |
| 366 | + return; | |
| 367 | + } | |
| 368 | + let nums = []; | |
| 369 | + let ERR_OK = false; | |
| 370 | + this.fromData.levels.map((item) => { | |
| 371 | + nums.push(Number(item[1])); | |
| 372 | + nums.push(Number(item[2])); | |
| 373 | + }); | |
| 374 | + for (let i = 0; i < nums.length; i++) { | |
| 375 | + console.log(nums[i + 1] && (nums[i + 1] >= nums[i])) | |
| 376 | + if (nums[i + 1] && (nums[i + 1] >= nums[i])) { | |
| 377 | + ERR_OK = true; | |
| 378 | + this.$message.warning("高等级比例不能低于低等级比例!请检查"); | |
| 379 | + break; | |
| 380 | + } | |
| 350 | 381 | } |
| 382 | + if (ERR_OK) return; | |
| 351 | 383 | this.tableData = []; |
| 352 | 384 | this.tableData2 = []; |
| 353 | 385 | this.defaultLevels.levelType = this.fromData.levelType; |
| ... | ... | @@ -381,6 +413,15 @@ export default { |
| 381 | 413 | async _QueryData(params) { |
| 382 | 414 | let query = {}; |
| 383 | 415 | if (params) { |
| 416 | + if (params.levelType == 0) { | |
| 417 | + params.levels = params.levels.map((item) => { | |
| 418 | + console.log(item); | |
| 419 | + item[1] = ((item[1] / 100) * this.examPaperScore).toFixed(1); | |
| 420 | + item[2] = ((item[2] / 100) * this.examPaperScore).toFixed(1); | |
| 421 | + return item; | |
| 422 | + }); | |
| 423 | + } | |
| 424 | + | |
| 384 | 425 | query = { ...params }; |
| 385 | 426 | } |
| 386 | 427 | const { data, info, status } = await this.$request.examMultiClassReport({ |
| ... | ... | @@ -389,6 +430,7 @@ export default { |
| 389 | 430 | }); |
| 390 | 431 | if (status === 0) { |
| 391 | 432 | this.title = data.title; |
| 433 | + this.examPaperScore = data.examPaperScore || 100; | |
| 392 | 434 | this.subjectNames = data.subjectName; |
| 393 | 435 | this.tableData = data.classes || []; |
| 394 | 436 | this.tableData2 = |
| ... | ... | @@ -501,11 +543,18 @@ export default { |
| 501 | 543 | padding-right: 5px; |
| 502 | 544 | } |
| 503 | 545 | display: flex; |
| 546 | + .item { | |
| 547 | + width: 40px; | |
| 548 | + } | |
| 504 | 549 | .item1 { |
| 505 | 550 | padding-left: 10px; |
| 506 | - width: 15%; | |
| 551 | + width: 10%; | |
| 507 | 552 | } |
| 508 | 553 | .item2 { |
| 554 | + width: 18%; | |
| 555 | + } | |
| 556 | + .item3 { | |
| 557 | + padding-left: 12px; | |
| 509 | 558 | flex: 1; |
| 510 | 559 | } |
| 511 | 560 | .score-ipt { | ... | ... |
src/views/standard/test/index.vue
| ... | ... | @@ -539,7 +539,12 @@ |
| 539 | 539 | > |
| 540 | 540 | <div class="head-box"> |
| 541 | 541 | <div class="tit"> |
| 542 | - <p class="txt">已考试卷信息</p> | |
| 542 | + <p class="txt"> | |
| 543 | + 已考试卷信息 | |
| 544 | + <em class="red" | |
| 545 | + >(相同报表名称后的数字代表同一份试卷的考试次数,例如:模拟卷_1指模拟卷第1次考试成绩,模拟卷_2指模拟卷第2次考试成绩)</em | |
| 546 | + > | |
| 547 | + </p> | |
| 543 | 548 | <p> |
| 544 | 549 | 共筛选出{{ classTable.length }}个班级的已考试卷,<em class="red" |
| 545 | 550 | >不同班级请选择同一份试卷进行对比</em |
| ... | ... | @@ -1104,7 +1109,7 @@ export default { |
| 1104 | 1109 | this.loading = false; |
| 1105 | 1110 | if (status === 0) { |
| 1106 | 1111 | this.tableData = |
| 1107 | - data?.list.map((item) => { | |
| 1112 | + data?.list?.map((item) => { | |
| 1108 | 1113 | item.loading = false; |
| 1109 | 1114 | return item; |
| 1110 | 1115 | }) || []; |
| ... | ... | @@ -1354,6 +1359,7 @@ div::-webkit-scrollbar-thumb { |
| 1354 | 1359 | } |
| 1355 | 1360 | .red { |
| 1356 | 1361 | font-style: normal; |
| 1362 | + font-size: 12px; | |
| 1357 | 1363 | color: #f30; |
| 1358 | 1364 | } |
| 1359 | 1365 | .sel { | ... | ... |