Commit c8c928f4e0e75003e5459949cf4257a586a4e14d

Authored by 梁保满
1 parent 31fe9b9a

学生管理交互优化

src/views/standard/setUp/student.vue
@@ -48,17 +48,8 @@ @@ -48,17 +48,8 @@
48 :value="item.value" 48 :value="item.value"
49 > 49 >
50 </el-option> 50 </el-option>
51 - </el-select>  
52 - <el-select  
53 - class="sel"  
54 - v-model="query.status"  
55 - @change="_QueryData(4)"  
56 - placeholder="学生状态"  
57 - >  
58 - <el-option disabled label="请选择" :value=9></el-option>  
59 - <el-option label="正常" :value="0"></el-option>  
60 - <el-option label="未分配" :value="-1"></el-option>  
61 - <el-option label="已毕业" :value="2"></el-option> 51 + <el-option label="未分配" :value="80"></el-option>
  52 + <el-option label="已毕业" :value="81"></el-option>
62 </el-select> 53 </el-select>
63 <el-input 54 <el-input
64 placeholder="请输入学生姓名" 55 placeholder="请输入学生姓名"
@@ -86,15 +77,29 @@ @@ -86,15 +77,29 @@
86 </el-input> 77 </el-input>
87 </div> 78 </div>
88 </div> 79 </div>
89 - <p class="total" v-if="studentList.length && !query.grade"> 80 + <p
  81 + class="total"
  82 + v-if="
  83 + studentList.length &&
  84 + (query.grade == 80 || query.grade == 81 || !query.grade)
  85 + "
  86 + >
90 共筛选出{{ studentList.length }}名学生。 87 共筛选出{{ studentList.length }}名学生。
91 </p> 88 </p>
92 - <p class="total" v-if="getStuTotal && query.grade"> 89 + <p
  90 + class="total"
  91 + v-if="
  92 + getStuTotal && query.grade && query.grade != 80 && query.grade != 81
  93 + "
  94 + >
93 共筛选出{{ getStuTotal }}名学生。 95 共筛选出{{ getStuTotal }}名学生。
94 </p> 96 </p>
95 <div class="page-content"> 97 <div class="page-content">
96 <div class="stu-box"> 98 <div class="stu-box">
97 - <div class="stu-list" v-show="query.grade"> 99 + <div
  100 + class="stu-list"
  101 + v-show="query.grade && query.grade != 80 && query.grade != 81"
  102 + >
98 <div class="h-title">班级列表</div> 103 <div class="h-title">班级列表</div>
99 <ul class="stu-ul"> 104 <ul class="stu-ul">
100 <li 105 <li
@@ -109,7 +114,15 @@ @@ -109,7 +114,15 @@
109 </ul> 114 </ul>
110 </div> 115 </div>
111 <div class="stu-detail" v-loading="loading"> 116 <div class="stu-detail" v-loading="loading">
112 - <div class="clazz-detail" v-if="clazzDetail.stationSn && query.grade"> 117 + <div
  118 + class="clazz-detail"
  119 + v-if="
  120 + clazzDetail.stationSn &&
  121 + query.grade &&
  122 + query.grade != 80 &&
  123 + query.grade != 81
  124 + "
  125 + >
113 <p>基站SN:{{ clazzDetail.stationSn }}</p> 126 <p>基站SN:{{ clazzDetail.stationSn }}</p>
114 <p>配对码:{{ clazzDetail.pairingCode }}</p> 127 <p>配对码:{{ clazzDetail.pairingCode }}</p>
115 <p>频点:{{ clazzDetail.frequency }}</p> 128 <p>频点:{{ clazzDetail.frequency }}</p>
@@ -129,7 +142,7 @@ @@ -129,7 +142,7 @@
129 </el-popconfirm> 142 </el-popconfirm>
130 <i 143 <i
131 class="el-icon-user-solid" 144 class="el-icon-user-solid"
132 - v-if="!code && query.status != 2" 145 + v-if="!code && query.grade != 81"
133 @click.stop="openChangeClazz(item)" 146 @click.stop="openChangeClazz(item)"
134 ></i> 147 ></i>
135 <div class="s-li-box" @click="sayChange(item)"> 148 <div class="s-li-box" @click="sayChange(item)">
@@ -167,13 +180,14 @@ @@ -167,13 +180,14 @@
167 <el-form-item label="当前班级:"> 180 <el-form-item label="当前班级:">
168 <span>{{ formStuCla.className }}</span> 181 <span>{{ formStuCla.className }}</span>
169 </el-form-item> 182 </el-form-item>
170 - <el-form-item label="调到班级:"> 183 + <el-form-item label="调到班级:" prop="classId">
171 <el-col :span="10"> 184 <el-col :span="10">
172 <el-select 185 <el-select
173 class="sel" 186 class="sel"
174 v-model="formStuCla.classId" 187 v-model="formStuCla.classId"
175 placeholder="选择年级" 188 placeholder="选择年级"
176 > 189 >
  190 + <el-option disabled label="请选择" value=""></el-option>
177 <el-option 191 <el-option
178 v-for="item in classList" 192 v-for="item in classList"
179 :key="item.id" 193 :key="item.id"
@@ -345,9 +359,7 @@ export default { @@ -345,9 +359,7 @@ export default {
345 studentCode: "", 359 studentCode: "",
346 }, 360 },
347 rulesStuCla: { 361 rulesStuCla: {
348 - className: [  
349 - { required: true, message: "请输入班级名称", trigger: "blur" },  
350 - ], 362 + classId: [{ required: true, message: "请选择班级", trigger: "blur" }],
351 studentCode: [ 363 studentCode: [
352 { required: true, message: "请输入学生号", trigger: "blur" }, 364 { required: true, message: "请输入学生号", trigger: "blur" },
353 ], 365 ],
@@ -409,7 +421,7 @@ export default { @@ -409,7 +421,7 @@ export default {
409 this._QueryData(3); 421 this._QueryData(3);
410 }, 422 },
411 423
412 - upSuccess(res) { 424 + async upSuccess(res) {
413 this.$message.closeAll(); 425 this.$message.closeAll();
414 this.$message({ 426 this.$message({
415 showClose: true, 427 showClose: true,
@@ -419,7 +431,8 @@ export default { @@ -419,7 +431,8 @@ export default {
419 }); 431 });
420 //导入成功 432 //导入成功
421 this.diaUp = false; 433 this.diaUp = false;
422 - this._QueryData(5); 434 + await this._QueryClazz(this.query.grade);
  435 + this._QueryData();
423 }, 436 },
424 //添加学生 437 //添加学生
425 addStu() { 438 addStu() {
@@ -449,6 +462,7 @@ export default { @@ -449,6 +462,7 @@ export default {
449 if (status === 0) { 462 if (status === 0) {
450 this.$message.success(info); 463 this.$message.success(info);
451 this.diaStu = false; 464 this.diaStu = false;
  465 + await this._QueryClazz(this.query.grade);
452 this._QueryData(); 466 this._QueryData();
453 } else { 467 } else {
454 this.$message.error(info); 468 this.$message.error(info);
@@ -465,13 +479,10 @@ export default { @@ -465,13 +479,10 @@ export default {
465 }, 479 },
466 //学生调班弹窗 480 //学生调班弹窗
467 openChangeClazz(obj) { 481 openChangeClazz(obj) {
468 - if (!this.query.grade) { 482 + if (this.query.grade == 80) {
469 this._QueryClazz(obj.grade); 483 this._QueryClazz(obj.grade);
470 - this.formStuCla.classId = "";  
471 - } else {  
472 - this.formStuCla.classId = this.classList[0].id;  
473 } 484 }
474 - 485 + this.formStuCla.classId = "";
475 this.formStuCla.studentId = obj.id; 486 this.formStuCla.studentId = obj.id;
476 this.formStuCla.className = obj.className; 487 this.formStuCla.className = obj.className;
477 this.formStuCla.studentName = obj.studentName; 488 this.formStuCla.studentName = obj.studentName;
@@ -484,6 +495,10 @@ export default { @@ -484,6 +495,10 @@ export default {
484 function () { 495 function () {
485 this.$refs.formStuCla.validate(async (valid) => { 496 this.$refs.formStuCla.validate(async (valid) => {
486 if (valid) { 497 if (valid) {
  498 + if (this.formStuCla.classId == this.formStuCla.oldClassId) {
  499 + this.$message.warning("班级无变更~");
  500 + return;
  501 + }
487 const { data, status, info } = 502 const { data, status, info } =
488 await this.$request.studentChangeClass({ 503 await this.$request.studentChangeClass({
489 studentId: this.formStuCla.studentId, 504 studentId: this.formStuCla.studentId,
@@ -494,6 +509,7 @@ export default { @@ -494,6 +509,7 @@ export default {
494 if (status == 0) { 509 if (status == 0) {
495 this.diaChangeClass = false; 510 this.diaChangeClass = false;
496 this.$message.success(info); 511 this.$message.success(info);
  512 + await this._QueryClazz(this.query.grade);
497 this._QueryData(); 513 this._QueryData();
498 } else { 514 } else {
499 this.$message.error(info); 515 this.$message.error(info);
@@ -528,7 +544,7 @@ export default { @@ -528,7 +544,7 @@ export default {
528 }); 544 });
529 if (status === 0) { 545 if (status === 0) {
530 this.$message.success("删除成功"); 546 this.$message.success("删除成功");
531 - this.studentList.splice(index, 1); 547 + await this._QueryClazz(this.query.grade);
532 this._QueryData(); 548 this._QueryData();
533 } else { 549 } else {
534 this.$message.error(info); 550 this.$message.error(info);
@@ -539,7 +555,9 @@ export default { @@ -539,7 +555,9 @@ export default {
539 this.query.classId = ""; 555 this.query.classId = "";
540 this.query.studentName = ""; 556 this.query.studentName = "";
541 this.query.studentCode = ""; 557 this.query.studentCode = "";
542 - await this._QueryClass(val); 558 + if (val != 80 && val != 81) {
  559 + await this._QueryClass(val);
  560 + }
543 this._QueryData(3); 561 this._QueryData(3);
544 }, 562 },
545 serQuery(type) { 563 serQuery(type) {
@@ -550,44 +568,33 @@ export default { @@ -550,44 +568,33 @@ export default {
550 return; 568 return;
551 } 569 }
552 this.query.classId = ""; 570 this.query.classId = "";
553 - this.query.status = 9;  
554 this.query.studentCode = ""; 571 this.query.studentCode = "";
555 this.query.grade = ""; 572 this.query.grade = "";
556 query.studentName = this.query.studentName; 573 query.studentName = this.query.studentName;
557 - query.status = this.query.status; 574 + query.status = 9;
558 } else if (type == 2) { 575 } else if (type == 2) {
559 if (!this.query.studentCode) { 576 if (!this.query.studentCode) {
560 this.$message.warning("输入学生学号~"); 577 this.$message.warning("输入学生学号~");
561 return; 578 return;
562 } 579 }
563 this.query.classId = ""; 580 this.query.classId = "";
564 - this.query.status = 9;  
565 this.query.studentName = ""; 581 this.query.studentName = "";
566 this.query.grade = ""; 582 this.query.grade = "";
567 query.studentCode = this.query.studentCode; 583 query.studentCode = this.query.studentCode;
568 - query.status = this.query.status; 584 + query.status = 9;
569 } else if (type == 3) { 585 } else if (type == 3) {
570 this.query.studentName = ""; 586 this.query.studentName = "";
571 this.query.studentCode = ""; 587 this.query.studentCode = "";
572 - this.query.status = 0;  
573 - query.grade = this.query.grade;  
574 - query.classId = this.query.classId;  
575 - } else if (type == 4) {  
576 - this.clazzDetail.stationSn = "";  
577 - this.query.studentName = "";  
578 - this.query.studentCode = "";  
579 - if (this.query.status) {  
580 - this.query.grade = "";  
581 - this.query.classId = ""; 588 + if (this.query.grade == 80) {
  589 + query.status = -1;
  590 + } else if (this.query.grade == 81) {
  591 + query.status = 2;
582 } else { 592 } else {
583 - this.query.grade = this.gradeList[0]?.value;  
584 - this.query.classId = this.classList[0]?.id;  
585 query.grade = this.query.grade; 593 query.grade = this.query.grade;
586 query.classId = this.query.classId; 594 query.classId = this.query.classId;
587 } 595 }
588 - query.status = this.query.status;  
589 } else { 596 } else {
590 - query = this.query; 597 + query = { ...this.query };
591 } 598 }
592 return query; 599 return query;
593 }, 600 },
@@ -645,7 +652,6 @@ export default { @@ -645,7 +652,6 @@ export default {
645 }); 652 });
646 if (status === 0) { 653 if (status === 0) {
647 this.classList = (data.list && [...data?.list]) || []; 654 this.classList = (data.list && [...data?.list]) || [];
648 - this.formStuCla.classId = this.classList[0].id;  
649 } else { 655 } else {
650 this.$message.error(info); 656 this.$message.error(info);
651 } 657 }
@@ -774,7 +780,7 @@ export default { @@ -774,7 +780,7 @@ export default {
774 box-shadow: 2px 2px 5px #7f7f7f; 780 box-shadow: 2px 2px 5px #7f7f7f;
775 margin: 0 20px 20px 0; 781 margin: 0 20px 20px 0;
776 .s-li-box { 782 .s-li-box {
777 - width: 180px; 783 + width: 160px;
778 border-radius: 10px; 784 border-radius: 10px;
779 min-height: 120px; 785 min-height: 120px;
780 padding: 0 12px 5px; 786 padding: 0 12px 5px;