dedsudiyu 2 år sedan
förälder
incheckning
bd036b846a

+ 8 - 0
src/api/system/user_teacher.js

@@ -284,6 +284,14 @@ export function treeselect(query) {
     params: query
   })
 }
+// 查询部门下拉树结构
+export function roleOptionselect(query) {
+  return request({
+    url: '/system/role/optionselect',
+    method: 'get',
+    params: query
+  })
+}
 
 //批量获取老师数据
 export function teacherBatchSelect(data) {

+ 60 - 2
src/views/comprehensive/personnel/student/addPage.vue

@@ -79,6 +79,25 @@
             </el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="角色:" prop="roleIds">
+          <el-select
+            :disabled="editType"
+            v-model="form.roleIds"
+            filterable
+            remote
+            clearable
+            reserve-keyword
+            multiple
+            collapse-tags
+            placeholder="请选择角色">
+            <el-option
+              v-for="item in roleOptionselectOptions"
+              :key="item.roleId"
+              :label="item.roleName"
+              :value="item.roleId">
+            </el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="专业:" prop="majorId">
           <el-select
             :disabled="editType"
@@ -265,7 +284,7 @@
 
 <script>
 import { listDepartments } from "@/api/system/dept";
-import { optionselect } from "@/api/system/user_teacher";
+import { optionselect, roleOptionselect } from "@/api/system/user_teacher";
 import { getWorkList, getVague, addSystemClass, getMajorList,getTeacherOption,addUserStudent,putUserStudent } from "@/api/system/user_student";
 import { getToken } from "@/utils/auth";
 import addPageSubPagePublic from './differenceComponent/addPageSubPagePublic.vue'
@@ -355,7 +374,9 @@ export default {
       gradeOpen:false,
       gradeForm:{
         gradeName:"",
-      }
+      },
+      //角色列表
+      roleOptionselectOptions:[],
     }
   },
   created(){
@@ -451,6 +472,11 @@ export default {
       }else{
         this.form.signature = '';
       }
+      if(this.propsData.roleIds){
+        this.form.roleIds = this.propsData.roleIds;
+      }else{
+        this.form.roleIds = [];
+      }
       // if(this.propsData.position){
       //   this.form.position = this.propsData.position.split(',');
       //   for(let i=0;i<self.form.position.length;i++){
@@ -533,6 +559,10 @@ export default {
     },
     //查询所有搜索接口数据
     getAll(){
+      //查询角色
+      roleOptionselect().then(response => {
+        this.roleOptionselectOptions = response.data;
+      });
       //学籍状态查询
       getVague({dictType:"student_status", dictLabel:""}).then(response => {
         this.workStatusOptions = response.data;
@@ -545,6 +575,10 @@ export default {
     getSelect(){
       //身份查询
       this.positionSelectAll();
+      //查询角色
+      roleOptionselect().then(response => {
+        this.roleOptionselectOptions = response.data;
+      });
       //导师查询
       if(this.propsData.tutorUserName){
         getTeacherOption({nickName:this.propsData.tutorUserName}).then(response => {
@@ -616,9 +650,33 @@ export default {
       });
     },
     positionSelectClick(data){
+      //选中
+      let self = this;
+      if(this.form.position){
+        let num = 0;
+        for(let i=0;i<self.positionOptions.length;i++){
+          if(self.form.position == self.positionOptions[i].postId && self.positionOptions[i].roleIds){
+            let list = self.positionOptions[i].roleIds.split(',')
+            let newList = [];
+            for(let o=0;o<list.length;o++){
+              for(let s=0;s<self.roleOptionselectOptions.length;s++){
+                if(list[o] == self.roleOptionselectOptions[s].roleId){
+                  newList.push(parseInt(list[o]));
+                }
+              }
+            }
+            self.$set(self.form,'roleIds',newList);
+            num++
+          }
+        }
+        if(num == 0){
+          self.$set(self.form,'roleIds',[]);
+        }
+      }
       this.$forceUpdate();
     },
     positionClearClick(){
+      this.$set(this.form,'roleIds',[])
       this.positionSelectAll();
     },
     //*************************学籍状态查询

+ 1 - 0
src/views/comprehensive/personnel/student/index.vue

@@ -485,6 +485,7 @@ export default {
         getStudentInfo(item.row.userId).then(response => {
           this.titleName = '学生编辑';
           this.propsData = response.data;
+          this.propsData.roleIds = response.roleIds;
           this.editType = false;
           this.pageType = 2;
         });

+ 57 - 3
src/views/comprehensive/personnel/teacher/addPage.vue

@@ -78,6 +78,25 @@
               </el-option>
             </el-select>
           </el-form-item>
+          <el-form-item label="角色:" prop="roleIds">
+            <el-select
+              :disabled="editType"
+              v-model="form.roleIds"
+              filterable
+              remote
+              clearable
+              reserve-keyword
+              multiple
+              collapse-tags
+              placeholder="请选择角色">
+              <el-option
+                v-for="item in roleOptionselectOptions"
+                :key="item.roleId"
+                :label="item.roleName"
+                :value="item.roleId">
+              </el-option>
+            </el-select>
+          </el-form-item>
           <el-form-item label="手机号码:" prop="phonenumber">
             <el-input
               :disabled="editType"
@@ -185,7 +204,7 @@ import userListOne from "./userListOne.vue"
 import { listMenuAll} from "@/api/system/menu";
 import { getToken } from "@/utils/auth";
 import { treeselect } from "@/api/system/dept";
-import { optionselect, getVaguet, userPermit, addUserTeacher, putUserTeacherNew } from "@/api/system/user_teacher";
+import { optionselect, roleOptionselect, getVaguet, userPermit, addUserTeacher, putUserTeacherNew } from "@/api/system/user_teacher";
 import { getPermitOptionList, getPermitInfo } from "@/api/laboratory/managePermissionTemplates";
 import { addSystemPermit } from "@/api/laboratory/managePermissionTemplates";
 import Treeselect from "@riophae/vue-treeselect";
@@ -299,6 +318,8 @@ export default {
         type:0,
         text:"",
       },
+      //角色列表
+      roleOptionselectOptions:[],
     }
   },
   created(){
@@ -389,6 +410,11 @@ export default {
       }else{
         this.form.status = '';
       }
+      if(this.propsData.roleIds){
+        this.form.roleIds = this.propsData.roleIds;
+      }else{
+        this.form.roleIds = [];
+      }
       if(!this.editType){
         this.getPermitOptionList();
         this.getMenuOne();
@@ -589,6 +615,10 @@ export default {
       optionselect({postName:""}).then(response => {
         this.positionOptions = response.data;
       });
+      //查询角色
+      roleOptionselect().then(response => {
+        this.roleOptionselectOptions = response.data;
+      });
       //职称
       getVaguet({dictType:"professional",dictLabel:""}).then(response => {
         this.categoryOptions = response.data;
@@ -618,10 +648,34 @@ export default {
       }
     },
     positionSelectClick(){
-
+      //选中
+      let self = this;
+      if(this.form.position){
+        let num = 0;
+        for(let i=0;i<self.positionOptions.length;i++){
+          if(self.form.position == self.positionOptions[i].postId && self.positionOptions[i].roleIds){
+            let list = self.positionOptions[i].roleIds.split(',')
+            let newList = [];
+            for(let o=0;o<list.length;o++){
+              for(let s=0;s<self.roleOptionselectOptions.length;s++){
+                if(list[o] == self.roleOptionselectOptions[s].roleId){
+                  newList.push(parseInt(list[o]));
+                }
+              }
+            }
+            self.$set(self.form,'roleIds',newList);
+            num++
+          }
+        }
+        if(num == 0){
+          self.$set(self.form,'roleIds',[]);
+        }
+      }
+      this.$forceUpdate();
     },
     positionClearClick(){
-
+      //清空
+      this.$set(this.form,'roleIds',[])
     },
     //查询职称列表
     categorySelect(query){

+ 1 - 0
src/views/comprehensive/personnel/teacher/index.vue

@@ -931,6 +931,7 @@
           getTeacherInfo(item.row.userId).then(response => {
             this.titleName = '教职工编辑';
             this.propsData = response.data;
+            this.propsData.roleIds = response.roleIds;
             this.editType = false;
             this.pageType = 2;
           });