Commit 53424e83366f877003ee875c886a3f634d93ea61

Authored by 梁保满
1 parent dc56294d

教师管理筛选条件

... ... @@ -13,6 +13,7 @@
13 13 "setUpSchool",
14 14 "setUpTeacher",
15 15 "setUpStudent",
  16 + "setUpClazz",
16 17 "card",
17 18 "device",
18 19 "analysis",
... ...
src/views/standard/down/index.vue
... ... @@ -12,12 +12,16 @@
12 12 </p>
13 13 <el-button plan round @click="links">授课端下载</el-button>
14 14 </div>
15   - <div class="down-item" v-loading="loading">
  15 + <div class="down-item" v-loading="loading" v-if="role != 'ROLE_JIAOSHI'">
16 16 <p class="txt">
17 17 配合发卡器硬件,方便学校管理员进行发卡补卡操作的软件。
18 18 </p>
19 19 <el-button plan round @click="downCard">发卡软件下载</el-button>
20 20 </div>
  21 + <div class="down-item" v-loading="loading">
  22 + <p class="txt">。</p>
  23 + <el-button plan round @click="downNet">.Net环境下载</el-button>
  24 + </div>
21 25 </div>
22 26 </div>
23 27 </template>
... ... @@ -26,9 +30,16 @@
26 30 export default {
27 31 data() {
28 32 return {
  33 + role: "",
29 34 loading: false,
  35 + loadingNet: false,
30 36 };
31 37 },
  38 + created() {
  39 + this.role =
  40 + this.$store.getters.info.showRole ||
  41 + this.$store.getters.info.permissions[0].role;
  42 + },
32 43 methods: {
33 44 links() {
34 45 this.$router.push({
... ... @@ -51,6 +62,22 @@ export default {
51 62 this.$message.error(info);
52 63 }
53 64 },
  65 + async downNet() {
  66 + if (this.loadingNet == true) return;
  67 + this.loadingNet = true;
  68 + const { data, status, info } = await this.$request.latestClickersApp();
  69 + this.loadingNet = false;
  70 + if (status == 0) {
  71 + const a = document.createElement("a");
  72 + a.href = data.downloadUrl;
  73 + a.download = data.appName;
  74 + document.body.appendChild(a);
  75 + a.click();
  76 + a.remove();
  77 + } else {
  78 + this.$message.error(info);
  79 + }
  80 + },
54 81 },
55 82 };
56 83 </script>
... ... @@ -62,7 +89,7 @@ export default {
62 89 .page-content {
63 90 display: flex;
64 91 padding-top: 50px;
65   - margin-left: 240px;
  92 + margin-left: 160px;
66 93 .down-item {
67 94 width: 200px;
68 95 padding: 50px 20px;
... ...
src/views/standard/setUp/teacher.vue
... ... @@ -40,26 +40,30 @@
40 40  
41 41 <div class="answer-header">
42 42 <div class="sel-box">
43   - <el-select
44   - class="sel"
45   - v-model="query.gradeName"
46   - placeholder="选择年级"
47   - @change="_QueryData(1)"
48   - >
49   - <el-option
50   - v-for="item in gradeList"
51   - :key="item.value"
52   - :label="item.label"
53   - :value="item.value"
54   - >
55   - </el-option>
56   - <el-option label="未分配教师" value="未分配教师"> </el-option>
  43 + <el-cascader
  44 + size="small"
  45 + class="sel sel2"
  46 + clearable
  47 + placeholder="选择范围"
  48 + v-model="query.gradeClassSub"
  49 + :options="gradeClassSubList"
  50 + :props="{
  51 + multiple: true,
  52 + checkStrictly: true,
  53 + }"
  54 + collapse-tags
  55 + :show-all-levels="false"
  56 + ></el-cascader>
  57 + <el-select class="sel" v-model="query.type" placeholder="选择类型">
  58 + <el-option label="已分配教师" :value="0"></el-option>
  59 + <el-option label="未分配教师" :value="1"></el-option>
57 60 </el-select>
58 61 <el-input
59 62 placeholder="请输入老师姓名"
60 63 v-model="query.teacherName"
61 64 class="input-with-select"
62 65 maxlength="30"
  66 + clearable
63 67 @keyup.enter.native="_QueryData(2)"
64 68 >
65 69 <el-button
... ... @@ -73,6 +77,7 @@
73 77 oninput="if(value.length > 11) value = value.slice(0,11)"
74 78 placeholder="请输入老师手机号"
75 79 v-model="query.phone"
  80 + clearable
76 81 class="input-with-select"
77 82 @keyup.enter.native="_QueryData(3)"
78 83 >
... ... @@ -82,6 +87,9 @@
82 87 @click="_QueryData(3)"
83 88 ></el-button>
84 89 </el-input>
  90 + <el-button class="serach-box" round @click="_QueryData(1)"
  91 + >筛选</el-button
  92 + >
85 93 </div>
86 94 </div>
87 95 <div class="page-content">
... ... @@ -222,9 +230,7 @@
222 230 </el-popconfirm>
223 231 <div class="grade-item">
224 232 <p class="grade-name">
225   - {{ item.gradeName }}({{
226   - item.subjectName
227   - }})
  233 + {{ item.gradeName }}({{ item.subjectName }})
228 234 </p>
229 235 </div>
230 236 </li>
... ... @@ -388,15 +394,15 @@ export default {
388 394 isAdd: false,
389 395 setTercherType: 1,
390 396 query: {
391   - gradeName: "",
  397 + gradeClassSub: [],
  398 + type: 0,
392 399 teacherName: "",
393 400 phone: "",
394 401 },
395 402 subjectList: [],
396 403 gradeList: [],
397 404 classList: [],
398   - gradeClassList: [],
399   - gradeSubList: [],
  405 + gradeClassSubList: [],
400 406 teacherList: [],
401 407 teacherRoleList: [
402 408 //角色
... ... @@ -446,6 +452,7 @@ export default {
446 452 },
447 453 async created() {
448 454 this.code = localStorage.getItem("csCode") || "";
  455 + await this._QuerySubject();
449 456 await this._QueryDataGrade();
450 457 this._QueryData(1);
451 458 this._RoleList();
... ... @@ -693,20 +700,16 @@ export default {
693 700 this.$message.error(info);
694 701 }
695 702 },
696   - async _QueryData(type) {
  703 + setQuery(type) {
697 704 let query = {};
698   - if (type == 1) {
699   - query.gradeName = this.query.gradeName;
700   - this.query.teacherName = "";
701   - this.query.phone = "";
702   - } else if (type == 2) {
  705 + if (type == 2) {
703 706 if (this.query.teacherName == "") {
704 707 this.$message.warning("请输入老师姓名");
705 708 return;
706 709 }
707 710 query.teacherName = this.query.teacherName;
708   - this.query.gradeName = "";
709 711 this.query.phone = "";
  712 + this.query.gradeClassSub = [];
710 713 } else if (type == 3) {
711 714 if (this.query.phone == "") {
712 715 this.$message.warning("请输入老师手机");
... ... @@ -714,16 +717,47 @@ export default {
714 717 }
715 718 query.phone = this.query.phone;
716 719 this.query.teacherName = "";
717   - this.query.gradeName = "";
718   - } else if (type == 10) {
719   - query = { ...this.query };
720   - }
721   - if (query.gradeName == "未分配教师") {
722   - query.type = 1;
  720 + this.query.gradeClassSub = [];
723 721 } else {
724   - query.type = 0;
  722 + query = { ...this.query };
  723 + query.gradeNames = [];
  724 + query.classIds = [];
  725 + query.subjectNames = [];
  726 + this.query.gradeClassSub?.map((item) => {
  727 + if (item.length == 1) {
  728 + if (!query.gradeNames.includes(item[0])) {
  729 + query.gradeNames.push(item[0]);
  730 + }
  731 + } else if (item.length == 2) {
  732 + if (!query.classIds.includes(item[1])) {
  733 + query.classIds.push(item[1]);
  734 + }
  735 + query.gradeNames.includes(item[0]) &&
  736 + query.gradeNames.remove(item[0]);
  737 + } else if (item.length == 3) {
  738 + if (!query.subjectNames.includes(item[2])) {
  739 + query.subjectNames.push(item[2]);
  740 + }
  741 + query.gradeNames.includes(item[0]) &&
  742 + query.gradeNames.remove(item[0]);
  743 + query.classIds.includes(item[0]) && query.classIds.remove(item[0]);
  744 + }
  745 + });
  746 +
  747 + delete query.gradeClassSub;
  748 + query.gradeNames.length ? "" : delete query.gradeNames;
  749 + query.classIds.length ? "" : delete query.classIds;
  750 + query.subjectNames.length ? "" : delete query.subjectNames;
  751 + query.teacherName.length ? "" : delete query.teacherName;
  752 + query.phone.length ? "" : delete query.phone;
725 753 }
  754 +
  755 + return query;
  756 + },
  757 + async _QueryData(type) {
  758 + if (this.loading) return;
726 759 this.loading = true;
  760 + let query = this.setQuery();
727 761 this.teacherList = [];
728 762 const { data, status, info } = await this.$request.teacherList({
729 763 ...query,
... ... @@ -746,26 +780,46 @@ export default {
746 780 this.$message.error(info);
747 781 }
748 782 },
  783 + async _QuerySubject() {
  784 + const { data, status, info } = await this.$request.subjectList();
  785 + if (status === 0) {
  786 + this.subjectList = [...data?.subjectNames] || [];
  787 + } else {
  788 + this.$message.error(info);
  789 + }
  790 + },
749 791 async _QueryDataGrade() {
750 792 //年级数据
751 793 const { data, status, info } = await this.$request.gradeList();
752 794 if (status === 0) {
753 795 this.gradeList =
754 796 data.list?.map((item) => {
755   - return {
  797 + let subList = item.subjectNames?.map((items) => {
  798 + return {
  799 + value: items,
  800 + label: items,
  801 + };
  802 + });
  803 + this.gradeClassSubList.push({
756 804 value: item.gradeName,
757 805 label: item.gradeName,
758 806 id: item.grade,
759   - children: item.subjectNames?.map((items) => {
  807 + children: item.classList.map((clazz) => {
760 808 return {
761   - value: items,
762   - label: items,
  809 + value: clazz.id,
  810 + label: clazz.className,
  811 + id: clazz.id,
  812 + children: [...subList],
763 813 };
764 814 }),
  815 + });
  816 + return {
  817 + value: item.gradeName,
  818 + label: item.gradeName,
  819 + id: item.grade,
  820 + children: [...subList],
765 821 };
766 822 }) || [];
767   -
768   - this.query.gradeName = this.gradeList[0]?.value;
769 823 } else {
770 824 this.$message.error(info);
771 825 }
... ...