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 { | ... | ... |