Commit d3ca55ac5f419d120eb3160057afd4fdbd2efea0
1 parent
fcb9ef36
等级设置
Showing
4 changed files
with
206 additions
and
587 deletions
package.json
src/main.js
... | ... | @@ -20,13 +20,11 @@ import "@/router/permission" |
20 | 20 | import "@/assets/css/base.css" |
21 | 21 | import "@/assets/css/index.scss" |
22 | 22 | |
23 | -import { VueMasonryPlugin } from 'vue-masonry' | |
24 | 23 | |
25 | 24 | Vue.config.productionTip = false |
26 | 25 | Vue.use(ElementUI) |
27 | 26 | Vue.use(globalPlugin) |
28 | 27 | Vue.use(permission) |
29 | -Vue.use(VueMasonryPlugin) | |
30 | 28 | |
31 | 29 | NProgress.inc(0.2) |
32 | 30 | NProgress.configure({ easing: "ease", speed: 500, showSpinner: false }) | ... | ... |
src/views/standard/test/contrast.vue
... | ... | @@ -8,40 +8,15 @@ |
8 | 8 | <div class="page-content"> |
9 | 9 | <div class="content-header"> |
10 | 10 | <div class="tab-box"> |
11 | - <span | |
12 | - v-for="(item, index) in tabList" | |
13 | - :key="item" | |
14 | - class="tab-item" | |
15 | - :class="type == index ? 'active' : ''" | |
16 | - @click="setType(index)" | |
17 | - >{{ item }}</span | |
18 | - > | |
11 | + <span v-for="(item, index) in tabList" :key="item" class="tab-item" :class="type == index ? 'active' : ''" | |
12 | + @click="setType(index)">{{ item }}</span> | |
19 | 13 | </div> |
20 | - <el-button class="setMinScore" @click="openDia" round size="small" | |
21 | - >对比成绩等级设置</el-button | |
22 | - > | |
14 | + <el-button class="setMinScore" @click="openDia" round size="small">对比成绩等级设置</el-button> | |
23 | 15 | </div> |
24 | 16 | <div id="print-content" class="table-box" v-loading="loading"> |
25 | - <el-table | |
26 | - :max-height="tableMaxHeight" | |
27 | - v-show="type == 0" | |
28 | - :data="tableData" | |
29 | - border | |
30 | - style="width: 100%" | |
31 | - > | |
32 | - <el-table-column | |
33 | - type="index" | |
34 | - label="序号" | |
35 | - fixed | |
36 | - align="center" | |
37 | - width="60" | |
38 | - ></el-table-column> | |
39 | - <el-table-column | |
40 | - prop="className" | |
41 | - label="班级" | |
42 | - align="center" | |
43 | - fixed | |
44 | - ></el-table-column> | |
17 | + <el-table :max-height="tableMaxHeight" v-show="type == 0" :data="tableData" border style="width: 100%"> | |
18 | + <el-table-column type="index" label="序号" fixed align="center" width="60"></el-table-column> | |
19 | + <el-table-column prop="className" label="班级" align="center" fixed></el-table-column> | |
45 | 20 | <el-table-column label="测验人数/班级人数" align="center" width="84"> |
46 | 21 | <template slot-scope="scope"> |
47 | 22 | <p v-for="(item, index) in scope.row.count.split('/')"> |
... | ... | @@ -49,113 +24,39 @@ |
49 | 24 | </p> |
50 | 25 | </template> |
51 | 26 | </el-table-column> |
52 | - <el-table-column | |
53 | - prop="percent" | |
54 | - label="参与度" | |
55 | - align="center" | |
56 | - ></el-table-column> | |
57 | - <el-table-column | |
58 | - prop="avg" | |
59 | - label="班平均分" | |
60 | - align="center" | |
61 | - ></el-table-column> | |
62 | - <el-table-column | |
63 | - prop="max" | |
64 | - label="班最高分" | |
65 | - sortable | |
66 | - align="center" | |
67 | - ></el-table-column> | |
68 | - <el-table-column | |
69 | - prop="min" | |
70 | - label="班最低分" | |
71 | - sortable | |
72 | - align="center" | |
73 | - ></el-table-column> | |
74 | - | |
75 | - <el-table-column | |
76 | - v-for="(item, index) in defaultLevels.levels" | |
77 | - :label="item[0] + '数(率)'" | |
78 | - align="center" | |
79 | - ><template slot-scope="scoped"> | |
27 | + <el-table-column prop="percent" label="参与度" align="center"></el-table-column> | |
28 | + <el-table-column prop="avg" label="班平均分" align="center"></el-table-column> | |
29 | + <el-table-column prop="max" label="班最高分" sortable align="center"></el-table-column> | |
30 | + <el-table-column prop="min" label="班最低分" sortable align="center"></el-table-column> | |
31 | + | |
32 | + <el-table-column v-for="(item, index) in defaultLevels.levels" :label="item[0] + '数(率)'" | |
33 | + align="center"><template slot-scope="scoped"> | |
80 | 34 | <p class="p1">{{ scoped.row.levels[index].people }}</p> |
81 | 35 | <p class="p1">({{ scoped.row.levels[index].percent }})</p> |
82 | - </template></el-table-column | |
83 | - > | |
36 | + </template></el-table-column> | |
84 | 37 | </el-table> |
85 | - <el-table | |
86 | - v-show="type == 1" | |
87 | - :max-height="tableMaxHeight" | |
88 | - :data="tableData2" | |
89 | - border | |
90 | - style="width: 100%" | |
91 | - > | |
92 | - <el-table-column | |
93 | - prop="rank" | |
94 | - label="排名" | |
95 | - sortable | |
96 | - align="center" | |
97 | - ></el-table-column> | |
98 | - <el-table-column | |
99 | - prop="name" | |
100 | - label="姓名" | |
101 | - align="center" | |
102 | - ></el-table-column> | |
103 | - <el-table-column | |
104 | - prop="className" | |
105 | - label="班级" | |
106 | - align="center" | |
107 | - ></el-table-column> | |
108 | - <el-table-column | |
109 | - prop="score" | |
110 | - label="总分" | |
111 | - sortable | |
112 | - align="center" | |
113 | - ></el-table-column> | |
114 | - <el-table-column | |
115 | - prop="levelName" | |
116 | - label="成绩等级" | |
117 | - align="center" | |
118 | - ></el-table-column> | |
38 | + <el-table v-show="type == 1" :max-height="tableMaxHeight" :data="tableData2" border style="width: 100%"> | |
39 | + <el-table-column prop="rank" label="排名" sortable align="center"></el-table-column> | |
40 | + <el-table-column prop="name" label="姓名" align="center"></el-table-column> | |
41 | + <el-table-column prop="className" label="班级" align="center"></el-table-column> | |
42 | + <el-table-column prop="score" label="总分" sortable align="center"></el-table-column> | |
43 | + <el-table-column prop="levelName" label="成绩等级" align="center"></el-table-column> | |
119 | 44 | </el-table> |
120 | 45 | </div> |
121 | 46 | <div class="down"> |
122 | 47 | <div> |
123 | - <el-button | |
124 | - v-loading="exportLoading" | |
125 | - @click="exportData" | |
126 | - type="primary" | |
127 | - plain | |
128 | - round | |
129 | - icon="fa fa-cloud-download" | |
130 | - >导出报表</el-button | |
131 | - > | |
132 | - <el-button | |
133 | - v-if="!this.$store.getters.code" | |
134 | - @click="print" | |
135 | - type="primary" | |
136 | - plain | |
137 | - round | |
138 | - icon="el-icon-printer" | |
139 | - >打印</el-button | |
140 | - > | |
48 | + <el-button v-loading="exportLoading" @click="exportData" type="primary" plain round | |
49 | + icon="fa fa-cloud-download">导出报表</el-button> | |
50 | + <el-button v-if="!this.$store.getters.code" @click="print" type="primary" plain round | |
51 | + icon="el-icon-printer">打印</el-button> | |
141 | 52 | </div> |
142 | 53 | </div> |
143 | 54 | |
144 | - <el-dialog | |
145 | - :close-on-click-modal="false" | |
146 | - title="等级设置" | |
147 | - :visible.sync="diaLogBox" | |
148 | - width="800px" | |
149 | - @closed="closeDia" | |
150 | - > | |
55 | + <el-dialog :close-on-click-modal="false" title="等级设置" :visible.sync="diaLogBox" width="800px" @closed="closeDia"> | |
151 | 56 | <el-form class="use-form"> |
152 | 57 | <el-form-item class="use-form-item-box"> |
153 | 58 | <el-form-item label="等级名称:" class="use-form-item"> |
154 | - <el-select | |
155 | - size="small" | |
156 | - v-model="fromData.type" | |
157 | - @change="changeType" | |
158 | - > | |
59 | + <el-select size="small" v-model="fromData.type" @change="changeType"> | |
159 | 60 | <el-option label="优良合格不合格" :value="0"></el-option> |
160 | 61 | <el-option label="ABCD" :value="1"></el-option> |
161 | 62 | <el-option label="自定义" :value="2"></el-option> |
... | ... | @@ -177,47 +78,29 @@ |
177 | 78 | <span class="item3"><i>*</i>等级最低</span> |
178 | 79 | <span class="item"></span> |
179 | 80 | </p> |
180 | - <div | |
181 | - class="dia-tab-item" | |
182 | - v-for="(item, index) in fromData.levels" | |
183 | - > | |
81 | + <div class="dia-tab-item" v-for="(item, index) in fromData.levels"> | |
184 | 82 | <span class="item1">{{ index + 1 }}</span> |
185 | 83 | <p class="item2"> |
186 | - <el-input | |
187 | - class="score-ipt" | |
188 | - v-model="item[0]" | |
189 | - :maxlength="12" | |
190 | - @keydown.native="keydownRange($event)" | |
191 | - ></el-input> | |
84 | + <el-input class="score-ipt" v-model="item[0]" :maxlength="12" | |
85 | + @keydown.native="keydownRange($event)"></el-input> | |
192 | 86 | </p> |
193 | 87 | <p class="item3"> |
194 | - <el-input | |
195 | - class="score-ipt" | |
196 | - type="number" | |
197 | - v-model="item[1]" | |
198 | - :min="item[2]" | |
88 | + <el-input class="score-ipt" type="number" v-model="item[1]" :min="item[2]" | |
199 | 89 | :max="index == 0 ? 100 : fromData.levels[index - 1][2]" |
200 | - @keydown.native="keydownRange($event)" | |
201 | - ></el-input> | |
90 | + @keydown.native="keydownRange($event)"></el-input> | |
202 | 91 | % |
203 | 92 | <template v-if="fromData.levelType == 0"> |
204 | 93 | ({{ index != 0 ? "不含" : "" |
205 | 94 | }}{{ |
206 | - Number(((item[1] / 100) * examPaperScore).toFixed(1)) | |
207 | - }}分) | |
95 | + Number(((item[1] / 100) * examPaperScore).toFixed(1)) | |
96 | +}}分) | |
208 | 97 | </template> |
209 | 98 | <template v-else>{{ index != 0 ? "不含" : "" }}</template> |
210 | 99 | </p> |
211 | 100 | <p>~</p> |
212 | 101 | <p class="item3"> |
213 | - <el-input | |
214 | - class="score-ipt" | |
215 | - type="number" | |
216 | - v-model="item[2]" | |
217 | - :min="0" | |
218 | - :max="item[1]" | |
219 | - @keydown.native="keydownRange($event)" | |
220 | - ></el-input> | |
102 | + <el-input class="score-ipt" type="number" v-model="item[2]" :min="0" :max="item[1]" | |
103 | + @keydown.native="keydownRange($event)"></el-input> | |
221 | 104 | % |
222 | 105 | <template v-if="fromData.levelType == 0"> |
223 | 106 | ({{ |
... | ... | @@ -226,23 +109,12 @@ |
226 | 109 | </template> |
227 | 110 | </p> |
228 | 111 | <p class="item"> |
229 | - <el-link | |
230 | - type="danger" | |
231 | - :underline="false" | |
232 | - @click="fromData.levels.splice(index, 1)" | |
233 | - >删除</el-link | |
234 | - > | |
112 | + <el-link type="danger" :underline="false" @click="fromData.levels.splice(index, 1)">删除</el-link> | |
235 | 113 | </p> |
236 | 114 | </div> |
237 | 115 | <div class="add"> |
238 | 116 | <p @click="fromData.levels.push(['', '', ''])"> |
239 | - <el-button | |
240 | - size="mini" | |
241 | - icon="el-icon-plus" | |
242 | - circle | |
243 | - type="primary" | |
244 | - ></el-button | |
245 | - >添加一行 | |
117 | + <el-button size="mini" icon="el-icon-plus" circle type="primary"></el-button>添加一行 | |
246 | 118 | </p> |
247 | 119 | </div> |
248 | 120 | </div> |
... | ... | @@ -293,8 +165,9 @@ export default { |
293 | 165 | }, |
294 | 166 | async created() { |
295 | 167 | this.ids = this.$route.query.ids; |
296 | - await this._QueryData(); | |
168 | + this.examPaperScore = Number(this.$route.query.examPaperScore || 100); | |
297 | 169 | await this._QueryDefaultLevels(); |
170 | + await this._QueryData(); | |
298 | 171 | }, |
299 | 172 | destroyed() { |
300 | 173 | sessionStorage.setItem("levelFromData", ""); |
... | ... | @@ -416,19 +289,17 @@ export default { |
416 | 289 | this.$message.error(info); |
417 | 290 | } |
418 | 291 | }, |
419 | - async _QueryData(params) { | |
292 | + async _QueryData() { | |
420 | 293 | let query = {}; |
421 | - if (params) { | |
422 | - let paramObj = JSON.parse(JSON.stringify(params)) | |
423 | - if (paramObj.levelType == 0) { | |
424 | - paramObj.levels = paramObj.levels.map((item) => { | |
425 | - item[1] = ((item[1] / 100) * this.examPaperScore).toFixed(1); | |
426 | - item[2] = ((item[2] / 100) * this.examPaperScore).toFixed(1); | |
427 | - return item; | |
428 | - }); | |
429 | - } | |
430 | - query = { ...paramObj }; | |
294 | + let paramObj = JSON.parse(JSON.stringify(this.fromData)) | |
295 | + if (paramObj.levelType == 0) { | |
296 | + paramObj.levels = paramObj.levels.map((item) => { | |
297 | + item[1] = ((item[1] / 100) * this.examPaperScore).toFixed(1); | |
298 | + item[2] = ((item[2] / 100) * this.examPaperScore).toFixed(1); | |
299 | + return item; | |
300 | + }); | |
431 | 301 | } |
302 | + query = { ...paramObj }; | |
432 | 303 | const { data, info, status } = await this.$request.examMultiClassReport({ |
433 | 304 | examIds: this.ids, |
434 | 305 | ...query, |
... | ... | @@ -455,7 +326,6 @@ export default { |
455 | 326 | let params = { ...this.fromData }; |
456 | 327 | if (params.levelType == 0) { |
457 | 328 | params.levels = params.levels.map((item) => { |
458 | - console.log(item); | |
459 | 329 | item[1] = ((item[1] / 100) * this.examPaperScore).toFixed(1); |
460 | 330 | item[2] = ((item[2] / 100) * this.examPaperScore).toFixed(1); |
461 | 331 | return item; |
... | ... | @@ -487,25 +357,31 @@ export default { |
487 | 357 | .page-container { |
488 | 358 | position: relative; |
489 | 359 | height: 100%; |
360 | + | |
490 | 361 | .table-box { |
491 | 362 | min-height: 100%; |
492 | 363 | } |
364 | + | |
493 | 365 | &.active { |
494 | 366 | overflow: hidden; |
495 | 367 | } |
368 | + | |
496 | 369 | .content-header { |
497 | 370 | width: 100%; |
498 | 371 | position: relative; |
372 | + | |
499 | 373 | .setMinScore { |
500 | 374 | position: absolute; |
501 | 375 | bottom: 0; |
502 | 376 | right: 0; |
503 | 377 | } |
504 | 378 | } |
379 | + | |
505 | 380 | .page-content { |
506 | 381 | padding: 20px 20px 0; |
507 | 382 | } |
508 | 383 | } |
384 | + | |
509 | 385 | .tab-box { |
510 | 386 | width: 400px; |
511 | 387 | margin: 0 auto 12px; |
... | ... | @@ -513,6 +389,7 @@ export default { |
513 | 389 | border-radius: 20px; |
514 | 390 | display: flex; |
515 | 391 | user-select: none; |
392 | + | |
516 | 393 | .tab-item { |
517 | 394 | flex: 1; |
518 | 395 | height: 40px; |
... | ... | @@ -524,72 +401,91 @@ export default { |
524 | 401 | background: transparent; |
525 | 402 | border-radius: 20px; |
526 | 403 | cursor: pointer; |
404 | + | |
527 | 405 | &.active { |
528 | 406 | background: #667ffd; |
529 | 407 | color: #fff; |
530 | 408 | } |
531 | 409 | } |
532 | 410 | } |
411 | + | |
533 | 412 | .down { |
534 | 413 | padding-top: 20px; |
535 | 414 | width: 100%; |
536 | 415 | display: flex; |
537 | 416 | justify-content: space-between; |
538 | 417 | } |
418 | + | |
539 | 419 | .use-form { |
540 | 420 | padding: 0 12px; |
421 | + | |
541 | 422 | .use-form-item-box { |
542 | 423 | :deep(.el-form-item__content) { |
543 | 424 | display: flex; |
544 | 425 | } |
426 | + | |
545 | 427 | .use-form-item { |
546 | 428 | width: 40%; |
547 | 429 | margin-right: 20px; |
548 | 430 | } |
549 | 431 | } |
550 | 432 | } |
433 | + | |
551 | 434 | .dia-tab-box { |
435 | + | |
552 | 436 | .dia-tab-tit, |
553 | 437 | .dia-tab-item { |
554 | 438 | margin-bottom: 10px; |
439 | + | |
555 | 440 | i { |
556 | 441 | color: #f30; |
557 | 442 | padding-right: 5px; |
558 | 443 | } |
444 | + | |
559 | 445 | display: flex; |
446 | + | |
560 | 447 | .item { |
561 | 448 | width: 40px; |
562 | 449 | } |
450 | + | |
563 | 451 | .item1 { |
564 | 452 | padding-left: 10px; |
565 | 453 | width: 10%; |
566 | 454 | } |
455 | + | |
567 | 456 | .item2 { |
568 | 457 | width: 18%; |
569 | 458 | } |
459 | + | |
570 | 460 | .item3 { |
571 | 461 | padding-left: 12px; |
572 | 462 | flex: 1; |
573 | 463 | } |
464 | + | |
574 | 465 | .score-ipt { |
575 | 466 | width: 100px; |
576 | 467 | } |
577 | 468 | } |
469 | + | |
578 | 470 | .dia-tab-tit { |
579 | 471 | background: rgba(243, 243, 243, 1); |
580 | 472 | } |
473 | + | |
581 | 474 | .add { |
582 | 475 | display: flex; |
583 | 476 | justify-content: center; |
584 | 477 | margin: 0 auto; |
478 | + | |
585 | 479 | p { |
586 | 480 | cursor: pointer; |
587 | 481 | } |
482 | + | |
588 | 483 | .el-button { |
589 | 484 | margin-right: 6px; |
590 | 485 | } |
591 | 486 | } |
592 | 487 | } |
488 | + | |
593 | 489 | .p1 { |
594 | 490 | line-height: 18px; |
595 | 491 | } | ... | ... |
src/views/standard/test/index.vue
... | ... | @@ -5,122 +5,51 @@ |
5 | 5 | <span>即时测-数据报表</span> |
6 | 6 | </template> |
7 | 7 | <template slot="btns"> |
8 | - <el-tooltip | |
9 | - v-if="!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> | |
8 | + <el-tooltip v-if="!code && gdClass" effect="dark" content="已归档试卷" placement="bottom"> | |
9 | + <el-button type="primary" icon="fa fa-archive" size="mini" plain circle @click="toArchiving"></el-button> | |
22 | 10 | </el-tooltip> |
23 | 11 | </template> |
24 | 12 | </back-box> |
25 | 13 | <div class="answer-header"> |
26 | 14 | <div class="sel-box"> |
27 | - <el-select | |
28 | - class="sel" | |
29 | - v-model="query.classIds" | |
30 | - placeholder="选择班级" | |
31 | - @change="changeclass" | |
32 | - multiple | |
33 | - collapse-tags | |
34 | - > | |
15 | + <el-select class="sel" v-model="query.classIds" placeholder="选择班级" @change="changeclass" multiple collapse-tags> | |
35 | 16 | <p class="select-all"> |
36 | - <el-checkbox v-model="classAll" @change="selectAll" | |
37 | - >全选</el-checkbox | |
38 | - > | |
17 | + <el-checkbox v-model="classAll" @change="selectAll">全选</el-checkbox> | |
39 | 18 | </p> |
40 | - <el-option | |
41 | - :disabled=" | |
42 | - query.classIds.length == 1 && query.classIds[0] == item.value | |
43 | - " | |
44 | - v-for="item in classList" | |
45 | - :key="item.value" | |
46 | - :label="item.label" | |
47 | - :value="item.value" | |
48 | - > | |
19 | + <el-option :disabled="query.classIds.length == 1 && query.classIds[0] == item.value | |
20 | + " v-for="item in classList" :key="item.value" :label="item.label" :value="item.value"> | |
49 | 21 | </el-option> |
50 | 22 | </el-select> |
51 | - <el-select | |
52 | - v-if="role == 'ROLE_BANZHUREN'" | |
53 | - class="sel sel2" | |
54 | - multiple | |
55 | - v-model="query.subjectNames" | |
56 | - placeholder="选择科目" | |
57 | - @change="changeSub" | |
58 | - > | |
59 | - <el-option | |
60 | - v-for="item in subjectList" | |
61 | - :key="item.value" | |
62 | - :label="item.label" | |
63 | - :value="item.value" | |
64 | - > | |
23 | + <el-select v-if="role == 'ROLE_BANZHUREN'" class="sel sel2" multiple v-model="query.subjectNames" | |
24 | + placeholder="选择科目" @change="changeSub"> | |
25 | + <el-option v-for="item in subjectList" :key="item.value" :label="item.label" :value="item.value"> | |
65 | 26 | </el-option> |
66 | 27 | </el-select> |
67 | - <el-select | |
68 | - v-else | |
69 | - class="sel sel2" | |
70 | - v-model="query.subjectNames" | |
71 | - placeholder="选择科目" | |
72 | - > | |
73 | - <el-option | |
74 | - v-for="item in subjectList" | |
75 | - :key="item.value" | |
76 | - :label="item.label" | |
77 | - :value="item.value" | |
78 | - > | |
28 | + <el-select v-else class="sel sel2" v-model="query.subjectNames" placeholder="选择科目"> | |
29 | + <el-option v-for="item in subjectList" :key="item.value" :label="item.label" :value="item.value"> | |
79 | 30 | </el-option> |
80 | 31 | </el-select> |
81 | 32 | <div class="d1"> |
82 | - <el-date-picker | |
83 | - v-model="query.startDay" | |
84 | - type="date" | |
85 | - @change="handleChangeTimeStart" | |
86 | - placeholder="选择日期时间" | |
87 | - value-format="yyyy-MM-dd" | |
88 | - > | |
33 | + <el-date-picker v-model="query.startDay" type="date" @change="handleChangeTimeStart" placeholder="选择日期时间" | |
34 | + value-format="yyyy-MM-dd"> | |
89 | 35 | </el-date-picker> |
90 | 36 | ~ |
91 | - <el-date-picker | |
92 | - v-model="query.endDay" | |
93 | - type="date" | |
94 | - placeholder="选择日期时间" | |
95 | - @change="handleChangeTimeEnd" | |
96 | - value-format="yyyy-MM-dd" | |
97 | - > | |
37 | + <el-date-picker v-model="query.endDay" type="date" placeholder="选择日期时间" @change="handleChangeTimeEnd" | |
38 | + value-format="yyyy-MM-dd"> | |
98 | 39 | </el-date-picker> |
99 | 40 | </div> |
100 | 41 | <p class="p1"> |
101 | - <span @click="setDate(1)" :class="[date == 1 ? 'active' : '', 's1']" | |
102 | - >今天</span | |
103 | - > | |
104 | - <span @click="setDate(2)" :class="[date == 2 ? 'active' : '', 's1']" | |
105 | - >本周</span | |
106 | - > | |
107 | - <span @click="setDate(3)" :class="[date == 3 ? 'active' : '', 's1']" | |
108 | - >本月</span | |
109 | - > | |
110 | - <span @click="setDate(4)" :class="[date == 4 ? 'active' : '', 's1']" | |
111 | - >本季度</span | |
112 | - > | |
42 | + <span @click="setDate(1)" :class="[date == 1 ? 'active' : '', 's1']">今天</span> | |
43 | + <span @click="setDate(2)" :class="[date == 2 ? 'active' : '', 's1']">本周</span> | |
44 | + <span @click="setDate(3)" :class="[date == 3 ? 'active' : '', 's1']">本月</span> | |
45 | + <span @click="setDate(4)" :class="[date == 4 ? 'active' : '', 's1']">本季度</span> | |
113 | 46 | </p> |
114 | 47 | <el-button type="primary" round @click="_QueryData()">筛选</el-button> |
115 | 48 | </div> |
116 | 49 | </div> |
117 | 50 | <div v-show="query.classIds.length == 1" class="table-box"> |
118 | - <el-radio-group | |
119 | - v-if="query.startDay != query.endDay" | |
120 | - v-model="tabIndex" | |
121 | - @change="changeTab" | |
122 | - style="margin-bottom: 20px" | |
123 | - > | |
51 | + <el-radio-group v-if="query.startDay != query.endDay" v-model="tabIndex" @change="changeTab" | |
52 | + style="margin-bottom: 20px"> | |
124 | 53 | <template v-for="(item, index) in tabList"> |
125 | 54 | <el-radio-button :label="index + 1">{{ item }}</el-radio-button> |
126 | 55 | </template> |
... | ... | @@ -132,50 +61,15 @@ |
132 | 61 | </div> |
133 | 62 | <div v-show="tabIndex == 1" v-loading="loading"> |
134 | 63 | <el-table :data="tableData" border style="width: 100%"> |
135 | - <el-table-column | |
136 | - prop="subjectName" | |
137 | - label="科目" | |
138 | - align="center" | |
139 | - width="100" | |
140 | - ></el-table-column> | |
141 | - <el-table-column | |
142 | - prop="title" | |
143 | - label="试卷名称" | |
144 | - align="center" | |
145 | - ></el-table-column> | |
146 | - <el-table-column | |
147 | - prop="className" | |
148 | - label="考试班级" | |
149 | - align="center" | |
150 | - width="100" | |
151 | - ></el-table-column> | |
152 | - <el-table-column | |
153 | - prop="examPaperScore" | |
154 | - label="卷面分" | |
155 | - align="center" | |
156 | - width="68" | |
157 | - ></el-table-column> | |
158 | - <el-table-column | |
159 | - width="80" | |
160 | - prop="answeredNum" | |
161 | - label="测验人数" | |
162 | - align="center" | |
163 | - ><template slot-scope="scoped">{{ | |
164 | - `${scoped.row.answeredNum}/${scoped.row.classPersonNum}` | |
165 | - }}</template></el-table-column | |
166 | - > | |
167 | - <el-table-column | |
168 | - prop="examStartTime" | |
169 | - label="测验开始时间" | |
170 | - width="160" | |
171 | - align="center" | |
172 | - ></el-table-column> | |
173 | - <el-table-column | |
174 | - prop="examEndTime" | |
175 | - label="测验结束时间" | |
176 | - width="160" | |
177 | - align="center" | |
178 | - ></el-table-column> | |
64 | + <el-table-column prop="subjectName" label="科目" align="center" width="100"></el-table-column> | |
65 | + <el-table-column prop="title" label="试卷名称" align="center"></el-table-column> | |
66 | + <el-table-column prop="className" label="考试班级" align="center" width="100"></el-table-column> | |
67 | + <el-table-column prop="examPaperScore" label="卷面分" align="center" width="68"></el-table-column> | |
68 | + <el-table-column width="80" prop="answeredNum" label="测验人数" align="center"><template slot-scope="scoped">{{ | |
69 | + `${scoped.row.answeredNum}/${scoped.row.classPersonNum}` | |
70 | + }}</template></el-table-column> | |
71 | + <el-table-column prop="examStartTime" label="测验开始时间" width="160" align="center"></el-table-column> | |
72 | + <el-table-column prop="examEndTime" label="测验结束时间" width="160" align="center"></el-table-column> | |
179 | 73 | <!-- 添加对比删除 --> |
180 | 74 | <!-- <el-table-column prop="avgScore" label="班平均分" align="center" |
181 | 75 | ><template slot-scope="scoped">{{ |
... | ... | @@ -306,324 +200,134 @@ |
306 | 200 | > --> |
307 | 201 | <el-table-column label="操作" width="100" align="center"> |
308 | 202 | <template slot-scope="scoped"> |
309 | - <el-tooltip | |
310 | - v-if=" | |
311 | - scoped.row.answerNum != 0 || | |
203 | + <el-tooltip v-if="scoped.row.answerNum != 0 || | |
312 | 204 | (scoped.row.recordStatus != 0 && |
313 | 205 | scoped.row.subjectiveScore == scoped.row.examPaperScore) |
314 | - " | |
315 | - effect="dark" | |
316 | - content="详情" | |
317 | - placement="top" | |
318 | - > | |
319 | - <el-button | |
320 | - type="primary" | |
321 | - circle | |
322 | - size="mini" | |
323 | - icon="fa fa-arrow-right" | |
324 | - @click="linkTo(scoped.row)" | |
325 | - ></el-button> | |
206 | + " effect="dark" content="详情" placement="top"> | |
207 | + <el-button type="primary" circle size="mini" icon="fa fa-arrow-right" | |
208 | + @click="linkTo(scoped.row)"></el-button> | |
326 | 209 | </el-tooltip> |
327 | - <template | |
328 | - v-if=" | |
329 | - scoped.row.answerNum == 0 && | |
330 | - scoped.row.subjectiveScore != scoped.row.examPaperScore | |
331 | - " | |
332 | - > | |
333 | - <el-tooltip | |
334 | - v-if="role == 'ROLE_JIAOSHI'" | |
335 | - effect="dark" | |
336 | - content="设置答案" | |
337 | - placement="top" | |
338 | - > | |
339 | - <el-button | |
340 | - type="primary" | |
341 | - circle | |
342 | - size="mini" | |
343 | - icon="fa fa-file-text" | |
344 | - @click="edit(scoped.row)" | |
345 | - ></el-button> | |
210 | + <template v-if="scoped.row.answerNum == 0 && | |
211 | + scoped.row.subjectiveScore != scoped.row.examPaperScore | |
212 | + "> | |
213 | + <el-tooltip v-if="role == 'ROLE_JIAOSHI'" effect="dark" content="设置答案" placement="top"> | |
214 | + <el-button type="primary" circle size="mini" icon="fa fa-file-text" | |
215 | + @click="edit(scoped.row)"></el-button> | |
346 | 216 | </el-tooltip> |
347 | 217 | <template v-else>未设置答案</template> |
348 | 218 | </template> |
349 | - <el-tooltip | |
350 | - v-if=" | |
351 | - scoped.row.subjectiveScore == scoped.row.examPaperScore && | |
352 | - scoped.row.recordStatus == 0 | |
353 | - " | |
354 | - effect="dark" | |
355 | - content="导入主观题" | |
356 | - placement="top" | |
357 | - > | |
358 | - <el-button | |
359 | - type="primary" | |
360 | - circle | |
361 | - size="mini" | |
362 | - icon="fa fa-cloud" | |
363 | - @click="uploadSJ(scoped.row)" | |
364 | - ></el-button> | |
219 | + <el-tooltip v-if="scoped.row.subjectiveScore == scoped.row.examPaperScore && | |
220 | + scoped.row.recordStatus == 0 | |
221 | + " effect="dark" content="导入主观题" placement="top"> | |
222 | + <el-button type="primary" circle size="mini" icon="fa fa-cloud" @click="uploadSJ(scoped.row)"></el-button> | |
365 | 223 | </el-tooltip> |
366 | - <el-popconfirm | |
367 | - v-if="role != 'ROLE_BANZHUREN'" | |
368 | - title="确定删除吗?" | |
369 | - @confirm="removeReport(scoped.row, scoped.$index)" | |
370 | - > | |
371 | - <el-button | |
372 | - class="remove-test" | |
373 | - slot="reference" | |
374 | - type="danger" | |
375 | - circle | |
376 | - size="mini" | |
377 | - icon="el-icon-delete" | |
378 | - :loading="scoped.row.loading" | |
379 | - ></el-button> | |
224 | + <el-popconfirm v-if="role != 'ROLE_BANZHUREN'" title="确定删除吗?" | |
225 | + @confirm="removeReport(scoped.row, scoped.$index)"> | |
226 | + <el-button class="remove-test" slot="reference" type="danger" circle size="mini" icon="el-icon-delete" | |
227 | + :loading="scoped.row.loading"></el-button> | |
380 | 228 | </el-popconfirm> |
381 | 229 | </template> |
382 | 230 | </el-table-column> |
383 | 231 | </el-table> |
384 | 232 | <div class="pagination-box"> |
385 | - <el-pagination | |
386 | - small="" | |
387 | - layout="total,prev, pager, next" | |
388 | - :hide-on-single-page="true" | |
389 | - :total="total" | |
390 | - @current-change="changePage" | |
391 | - :current-page="page" | |
392 | - :page-size="size" | |
393 | - > | |
233 | + <el-pagination small="" layout="total,prev, pager, next" :hide-on-single-page="true" :total="total" | |
234 | + @current-change="changePage" :current-page="page" :page-size="size"> | |
394 | 235 | </el-pagination> |
395 | 236 | </div> |
396 | 237 | </div> |
397 | 238 | <div v-show="tabIndex == 2" v-loading="loading"> |
398 | - <el-empty | |
399 | - :image-size="100" | |
400 | - v-if="!tableData.length && loading == false" | |
401 | - description="没有更多数据" | |
402 | - ></el-empty> | |
239 | + <el-empty :image-size="100" v-if="!tableData.length && loading == false" description="没有更多数据"></el-empty> | |
403 | 240 | <template v-if="tableData.length && loading == false"> |
404 | 241 | <div id="print-content"> |
405 | - <el-table | |
406 | - :max-height="tableMaxHeight" | |
407 | - v-if="role == 'ROLE_JIAOSHI'" | |
408 | - :data="tableData" | |
409 | - border | |
410 | - style="width: 100%" | |
411 | - > | |
412 | - <el-table-column | |
413 | - prop="studentCode" | |
414 | - label="学号" | |
415 | - align="center" | |
416 | - fixed | |
417 | - ></el-table-column> | |
418 | - <el-table-column | |
419 | - prop="studentName" | |
420 | - label="姓名" | |
421 | - fixed | |
422 | - align="center" | |
423 | - > | |
424 | - <template slot-scope="scoped" | |
425 | - ><span class="click-b" @click="toPortrait(scoped.row)"> | |
242 | + <el-table :max-height="tableMaxHeight" v-if="role == 'ROLE_JIAOSHI'" :data="tableData" border | |
243 | + style="width: 100%"> | |
244 | + <el-table-column prop="studentCode" label="学号" align="center" fixed></el-table-column> | |
245 | + <el-table-column prop="studentName" label="姓名" fixed align="center"> | |
246 | + <template slot-scope="scoped"><span class="click-b" @click="toPortrait(scoped.row)"> | |
426 | 247 | {{ scoped.row.studentName }} |
427 | - </span></template | |
428 | - ></el-table-column | |
429 | - > | |
430 | - <el-table-column | |
431 | - align="center" | |
432 | - v-for="(item, index) in answerList" | |
433 | - :key="index" | |
434 | - :label="item.title" | |
435 | - > | |
436 | - <el-table-column | |
437 | - :prop="'score' + index" | |
438 | - :label="index == 0 ? '总分' : '成绩'" | |
439 | - align="center" | |
440 | - :class-name="index % 2 == 0 ? 'bg' : ''" | |
441 | - > | |
248 | + </span></template></el-table-column> | |
249 | + <el-table-column align="center" v-for="(item, index) in answerList" :key="index" :label="item.title"> | |
250 | + <el-table-column :prop="'score' + index" :label="index == 0 ? '总分' : '成绩'" align="center" | |
251 | + :class-name="index % 2 == 0 ? 'bg' : ''"> | |
442 | 252 | <template slot-scope="scoped"> |
443 | 253 | {{ Number(scoped.row["score" + index]) }} |
444 | - </template></el-table-column | |
445 | - > | |
446 | - <el-table-column | |
447 | - :prop="'classRank' + index" | |
448 | - label="班名" | |
449 | - align="center" | |
450 | - :class-name="index % 2 == 0 ? 'bg' : ''" | |
451 | - ></el-table-column> | |
254 | + </template></el-table-column> | |
255 | + <el-table-column :prop="'classRank' + index" label="班名" align="center" | |
256 | + :class-name="index % 2 == 0 ? 'bg' : ''"></el-table-column> | |
452 | 257 | </el-table-column> |
453 | 258 | </el-table> |
454 | - <el-table | |
455 | - v-else | |
456 | - :data="tableData" | |
457 | - :max-height="tableMaxHeight" | |
458 | - border | |
459 | - style="width: 100%" | |
460 | - > | |
461 | - <el-table-column | |
462 | - prop="studentCode" | |
463 | - label="学号" | |
464 | - align="center" | |
465 | - fixed | |
466 | - ></el-table-column> | |
259 | + <el-table v-else :data="tableData" :max-height="tableMaxHeight" border style="width: 100%"> | |
260 | + <el-table-column prop="studentCode" label="学号" align="center" fixed></el-table-column> | |
467 | 261 | |
468 | - <el-table-column | |
469 | - prop="studentName" | |
470 | - label="姓名" | |
471 | - fixed | |
472 | - align="center" | |
473 | - > | |
474 | - <template slot-scope="scoped" | |
475 | - ><span class="click-b" @click="toPortrait(scoped.row)"> | |
262 | + <el-table-column prop="studentName" label="姓名" fixed align="center"> | |
263 | + <template slot-scope="scoped"><span class="click-b" @click="toPortrait(scoped.row)"> | |
476 | 264 | {{ scoped.row.studentName }} |
477 | - </span></template | |
478 | - > | |
265 | + </span></template> | |
479 | 266 | </el-table-column> |
480 | - <el-table-column | |
481 | - align="center" | |
482 | - v-for="(item, index) in answerList" | |
483 | - :key="index" | |
484 | - :label="item" | |
485 | - > | |
486 | - <el-table-column | |
487 | - :prop="'examCount' + item" | |
488 | - label="测练数" | |
489 | - align="center" | |
490 | - :class-name="index % 2 == 0 ? 'bg' : ''" | |
491 | - ></el-table-column> | |
492 | - <el-table-column | |
493 | - :prop="'participationCount' + item" | |
494 | - label="参与数" | |
495 | - align="center" | |
496 | - :class-name="index % 2 == 0 ? 'bg' : ''" | |
497 | - ></el-table-column> | |
498 | - <el-table-column | |
499 | - :prop="'score' + item" | |
500 | - label="总分" | |
501 | - align="center" | |
502 | - :class-name="index % 2 == 0 ? 'bg' : ''" | |
503 | - ></el-table-column> | |
504 | - <el-table-column | |
505 | - :prop="'classRank' + item" | |
506 | - label="班名" | |
507 | - align="center" | |
508 | - :class-name="index % 2 == 0 ? 'bg' : ''" | |
509 | - ></el-table-column> | |
267 | + <el-table-column align="center" v-for="(item, index) in answerList" :key="index" :label="item"> | |
268 | + <el-table-column :prop="'examCount' + item" label="测练数" align="center" | |
269 | + :class-name="index % 2 == 0 ? 'bg' : ''"></el-table-column> | |
270 | + <el-table-column :prop="'participationCount' + item" label="参与数" align="center" | |
271 | + :class-name="index % 2 == 0 ? 'bg' : ''"></el-table-column> | |
272 | + <el-table-column :prop="'score' + item" label="总分" align="center" | |
273 | + :class-name="index % 2 == 0 ? 'bg' : ''"></el-table-column> | |
274 | + <el-table-column :prop="'classRank' + item" label="班名" align="center" | |
275 | + :class-name="index % 2 == 0 ? 'bg' : ''"></el-table-column> | |
510 | 276 | </el-table-column> |
511 | 277 | </el-table> |
512 | 278 | </div> |
513 | 279 | </template> |
514 | 280 | </div> |
515 | 281 | <p class="down" v-if="tabIndex == 2 && tableData.length"> |
516 | - <el-button | |
517 | - type="primary" | |
518 | - plain | |
519 | - round | |
520 | - icon="fa fa-cloud-download" | |
521 | - @click="downExl" | |
522 | - >导出报表</el-button | |
523 | - > | |
524 | - <el-button | |
525 | - v-if="!this.$store.getters.code" | |
526 | - @click="print" | |
527 | - type="primary" | |
528 | - plain | |
529 | - round | |
530 | - icon="el-icon-printer" | |
531 | - >打印</el-button | |
532 | - > | |
282 | + <el-button type="primary" plain round icon="fa fa-cloud-download" @click="downExl">导出报表</el-button> | |
283 | + <el-button v-if="!this.$store.getters.code" @click="print" type="primary" plain round | |
284 | + icon="el-icon-printer">打印</el-button> | |
533 | 285 | </p> |
534 | 286 | </div> |
535 | - <div | |
536 | - v-show="query.classIds.length > 1" | |
537 | - class="table-box" | |
538 | - v-loading="loading" | |
539 | - > | |
287 | + <div v-show="query.classIds.length > 1" class="table-box" v-loading="loading"> | |
540 | 288 | <div class="head-box"> |
541 | 289 | <div class="tit"> |
542 | 290 | <p class="txt"> |
543 | 291 | 已考试卷信息 |
544 | - <em class="red" | |
545 | - >(相同报表名称后的数字代表同一份试卷的考试次数,例如:模拟卷_1指模拟卷第1次考试成绩,模拟卷_2指模拟卷第2次考试成绩)</em | |
546 | - > | |
292 | + <em class="red">(相同报表名称后的数字代表同一份试卷的考试次数,例如:模拟卷_1指模拟卷第1次考试成绩,模拟卷_2指模拟卷第2次考试成绩)</em> | |
547 | 293 | </p> |
548 | 294 | <p> |
549 | - 共筛选出{{ classTable.length }}个班级的已考试卷,<em class="red" | |
550 | - >不同班级请选择同一份试卷进行对比</em | |
551 | - > | |
295 | + 共筛选出{{ classTable.length }}个班级的已考试卷,<em class="red">不同班级请选择同一份试卷进行对比</em> | |
552 | 296 | </p> |
553 | 297 | </div> |
554 | - <el-input | |
555 | - placeholder="输入试卷名称" | |
556 | - v-model="examReportName" | |
557 | - class="input-with-select" | |
558 | - @keyup.enter.native="examReportList(examReportName)" | |
559 | - > | |
560 | - <el-button | |
561 | - slot="append" | |
562 | - icon="el-icon-search" | |
563 | - @click="examReportList(examReportName)" | |
564 | - ></el-button> | |
298 | + <el-input placeholder="输入试卷名称" v-model="examReportName" class="input-with-select" | |
299 | + @keyup.enter.native="examReportList(examReportName)"> | |
300 | + <el-button slot="append" icon="el-icon-search" @click="examReportList(examReportName)"></el-button> | |
565 | 301 | </el-input> |
566 | 302 | </div> |
567 | - <el-empty | |
568 | - :imag-size="48" | |
569 | - v-if="total === 0 && !loading" | |
570 | - description="暂无数据" | |
571 | - ></el-empty> | |
572 | - <ul | |
573 | - class="tab-ul" | |
574 | - v-if="classTable.length" | |
575 | - v-masonry | |
576 | - transition-duration="0.5s" | |
577 | - gutter="0" | |
578 | - item-selector=".tab-li" | |
579 | - > | |
303 | + <el-empty :imag-size="48" v-if="total === 0 && !loading" description="暂无数据"></el-empty> | |
304 | + <ul class="tab-ul" v-if="classTable.length" v-masonry transition-duration="0.5s" gutter="0" item-selector=".tab-li"> | |
580 | 305 | <template v-for="(item, index) in classTable"> |
581 | 306 | <li class="tab-li"> |
582 | 307 | <p class="tab-tit"> |
583 | 308 | {{ |
584 | - `${item[0].className} ${ | |
585 | - item.length ? "(" + item.length + "份已考试卷)" : "" | |
586 | - }` | |
309 | + `${item[0].className} ${item.length ? "(" + item.length + "份已考试卷)" : "" | |
310 | + }` | |
587 | 311 | }} |
588 | 312 | </p> |
589 | - <el-table | |
590 | - :data="item" | |
591 | - border | |
592 | - style="width: 100%" | |
593 | - v-if="item.length" | |
594 | - > | |
313 | + <el-table :data="item" border style="width: 100%" v-if="item.length"> | |
595 | 314 | <el-table-column label="选择" align="center" width="60"> |
596 | 315 | <template slot-scope="scope"> |
597 | - <el-checkbox | |
598 | - v-model="multipleSelection" | |
599 | - :label="scope.row.id" | |
600 | - :disabled="checkboxDisabled(scope.row)" | |
601 | - > | |
602 | - {{ ` ` }}</el-checkbox | |
603 | - > | |
316 | + <el-checkbox v-model="multipleSelection" :label="scope.row.id" :disabled="checkboxDisabled(scope.row)"> | |
317 | + {{ ` ` }}</el-checkbox> | |
604 | 318 | </template> |
605 | 319 | </el-table-column> |
606 | - <el-table-column | |
607 | - prop="title" | |
608 | - label="报表名称" | |
609 | - align="center" | |
610 | - ></el-table-column> | |
320 | + <el-table-column prop="title" label="报表名称" align="center"></el-table-column> | |
611 | 321 | <el-table-column label="测验人数" align="center" width="80"> |
612 | 322 | <template slot-scope="scope">{{ |
613 | 323 | `${scope.row.answeredNum}/${scope.row.classPersonNum}` |
614 | 324 | }}</template> |
615 | 325 | </el-table-column> |
616 | - <el-table-column | |
617 | - prop="examStartTime" | |
618 | - label="测验开始时间" | |
619 | - width="120" | |
620 | - align="center" | |
621 | - ></el-table-column> | |
326 | + <el-table-column prop="examStartTime" label="测验开始时间" width="120" align="center"></el-table-column> | |
622 | 327 | <el-table-column label="测验时长" align="center" width="80"> |
623 | 328 | <template slot-scope="scope">{{ |
624 | - `${Math.floor(scope.row.duration / 60)}分${ | |
625 | - scope.row.duration % 60 | |
626 | - }` | |
329 | + `${Math.floor(scope.row.duration / 60)}分${scope.row.duration % 60 | |
330 | + }` | |
627 | 331 | }}</template> |
628 | 332 | </el-table-column> |
629 | 333 | </el-table> |
... | ... | @@ -635,19 +339,8 @@ |
635 | 339 | <el-button @click="linkToContrast">生成对比报表</el-button> |
636 | 340 | </p> |
637 | 341 | </div> |
638 | - <el-dialog | |
639 | - :close-on-click-modal="false" | |
640 | - title="导入主观题分数" | |
641 | - :visible.sync="diaUp" | |
642 | - width="600" | |
643 | - > | |
644 | - <up-load | |
645 | - :url="url" | |
646 | - :examId="examId" | |
647 | - @upSuccess="upSuccess" | |
648 | - fileName="主观题分数" | |
649 | - v-loading="loadingDown" | |
650 | - > | |
342 | + <el-dialog :close-on-click-modal="false" title="导入主观题分数" :visible.sync="diaUp" width="600"> | |
343 | + <up-load :url="url" :examId="examId" @upSuccess="upSuccess" fileName="主观题分数" v-loading="loadingDown"> | |
651 | 344 | <template slot="down"> |
652 | 345 | <p class="down-txt"> |
653 | 346 | 第一步:下载模板并编辑完成学生分数 |
... | ... | @@ -814,11 +507,21 @@ export default { |
814 | 507 | this.$message.warning("请选择同一份试卷多个班级进行对比!"); |
815 | 508 | return; |
816 | 509 | } |
510 | + let examPaperScore | |
511 | + console.log(this.multipleSelection[0]) | |
512 | + this.tableData.map(item => { | |
513 | + console.log(item.id) | |
514 | + if (item.id == this.multipleSelection[0]) { | |
515 | + examPaperScore = item.examPaperScore | |
516 | + } | |
517 | + }) | |
518 | + console.log(examPaperScore) | |
817 | 519 | this.$router.push({ |
818 | 520 | path: "/testContrast", |
819 | 521 | query: { |
820 | 522 | ids: this.multipleSelection, |
821 | 523 | subjectNames: this.query.subjectNames, |
524 | + examPaperScore: examPaperScore | |
822 | 525 | }, |
823 | 526 | }); |
824 | 527 | }, |
... | ... | @@ -1302,6 +1005,7 @@ div::-webkit-scrollbar { |
1302 | 1005 | width: 3px; |
1303 | 1006 | height: 10px; |
1304 | 1007 | } |
1008 | + | |
1305 | 1009 | div::-webkit-scrollbar-thumb { |
1306 | 1010 | border-radius: 10px; |
1307 | 1011 | background-color: #ccc; |
... | ... | @@ -1311,42 +1015,51 @@ div::-webkit-scrollbar-thumb { |
1311 | 1015 | .page-container { |
1312 | 1016 | position: relative; |
1313 | 1017 | height: 100%; |
1018 | + | |
1314 | 1019 | &.active { |
1315 | 1020 | overflow: hidden; |
1316 | 1021 | } |
1317 | 1022 | } |
1023 | + | |
1318 | 1024 | .table-box { |
1319 | 1025 | margin: 0 20px; |
1320 | 1026 | padding: 16px; |
1321 | 1027 | background: #f8f8f8; |
1322 | 1028 | border-radius: 5px; |
1323 | 1029 | min-height: 300px; |
1030 | + | |
1324 | 1031 | :deep(.fa-arrow-right) { |
1325 | 1032 | padding-left: 2px; |
1326 | 1033 | } |
1034 | + | |
1327 | 1035 | :deep(.fa-file-text) { |
1328 | 1036 | padding-left: 2px; |
1329 | 1037 | } |
1330 | 1038 | } |
1039 | + | |
1331 | 1040 | .down { |
1332 | 1041 | padding-top: 16px; |
1333 | 1042 | } |
1043 | + | |
1334 | 1044 | .click-b { |
1335 | 1045 | cursor: pointer; |
1336 | 1046 | color: #409eff; |
1337 | 1047 | text-decoration: underline; |
1338 | 1048 | } |
1049 | + | |
1339 | 1050 | .head-box { |
1340 | 1051 | display: flex; |
1341 | 1052 | justify-content: space-between; |
1342 | 1053 | font-size: 12px; |
1343 | 1054 | color: #999; |
1055 | + | |
1344 | 1056 | .txt { |
1345 | 1057 | font-size: 16px; |
1346 | 1058 | color: #333; |
1347 | 1059 | line-height: 20px; |
1348 | 1060 | position: relative; |
1349 | 1061 | margin-bottom: 6px; |
1062 | + | |
1350 | 1063 | &:after { |
1351 | 1064 | content: ""; |
1352 | 1065 | position: absolute; |
... | ... | @@ -1357,27 +1070,34 @@ div::-webkit-scrollbar-thumb { |
1357 | 1070 | background: #409eff; |
1358 | 1071 | } |
1359 | 1072 | } |
1073 | + | |
1360 | 1074 | .red { |
1361 | 1075 | font-style: normal; |
1362 | 1076 | font-size: 12px; |
1363 | 1077 | color: #f30; |
1364 | 1078 | } |
1079 | + | |
1365 | 1080 | .sel { |
1366 | 1081 | width: 200px; |
1082 | + | |
1367 | 1083 | :deep(.el-input__inner) { |
1368 | 1084 | border-radius: 20px; |
1369 | 1085 | } |
1370 | 1086 | } |
1371 | 1087 | } |
1088 | + | |
1372 | 1089 | .tab-ul { |
1373 | 1090 | display: flex; |
1374 | 1091 | flex-wrap: wrap; |
1092 | + | |
1375 | 1093 | .tab-li { |
1376 | 1094 | width: calc(50% - 12px); |
1377 | 1095 | margin: 0 12px 12px 0; |
1096 | + | |
1378 | 1097 | &:nth-child(2n) { |
1379 | 1098 | margin-right: 0; |
1380 | 1099 | } |
1100 | + | |
1381 | 1101 | .tab-tit { |
1382 | 1102 | font-size: 15px; |
1383 | 1103 | line-height: 40px; |
... | ... | @@ -1386,13 +1106,16 @@ div::-webkit-scrollbar-thumb { |
1386 | 1106 | } |
1387 | 1107 | } |
1388 | 1108 | } |
1109 | + | |
1389 | 1110 | .btn-box { |
1390 | 1111 | padding-top: 12px; |
1391 | 1112 | text-align: right; |
1392 | 1113 | } |
1114 | + | |
1393 | 1115 | .remove-test { |
1394 | 1116 | margin-left: 10px; |
1395 | 1117 | } |
1118 | + | |
1396 | 1119 | .input-with-select { |
1397 | 1120 | width: 200px; |
1398 | 1121 | height: 36px; |
... | ... | @@ -1401,6 +1124,7 @@ div::-webkit-scrollbar-thumb { |
1401 | 1124 | border: 1px solid #e2e2e2; |
1402 | 1125 | box-sizing: border-box; |
1403 | 1126 | background: #fff; |
1127 | + | |
1404 | 1128 | :deep(.el-input__inner) { |
1405 | 1129 | border-radius: 20px; |
1406 | 1130 | border: none; |
... | ... | @@ -1408,6 +1132,7 @@ div::-webkit-scrollbar-thumb { |
1408 | 1132 | line-height: 34px; |
1409 | 1133 | padding-right: 0; |
1410 | 1134 | } |
1135 | + | |
1411 | 1136 | :deep(.el-button) { |
1412 | 1137 | padding: 12px; |
1413 | 1138 | } |
... | ... | @@ -1418,6 +1143,7 @@ div::-webkit-scrollbar-thumb { |
1418 | 1143 | background: transparent; |
1419 | 1144 | } |
1420 | 1145 | } |
1146 | + | |
1421 | 1147 | .select-all { |
1422 | 1148 | padding-left: 16px; |
1423 | 1149 | padding-bottom: 10px; | ... | ... |