dedsudiyu 2 yıl önce
ebeveyn
işleme
249b7e6c33
1 değiştirilmiş dosya ile 25 ekleme ve 11 silme
  1. 25 11
      src/views/comprehensive/personnel/teacher/index.vue

+ 25 - 11
src/views/comprehensive/personnel/teacher/index.vue

@@ -304,14 +304,15 @@
         <el-form-item label="上级部门" prop="parentId" label-width="90px" v-if="treeForm.parentId != 0">
           <treeselect v-model="treeForm.parentId" :options="deptOptions" :show-count="true" @select="deptSelect" placeholder="请选择上级部门" />
         </el-form-item>
-        <el-form-item label="部门编号" prop="" label-width="90px" v-if="treeForm.parentId != 0">
-          <el-input v-model="treeForm.deptNum" maxlength="10" disabled
+        <el-form-item label="部门编号" prop="deptNum" label-width="90px" v-if="treeForm.parentId != 0">
+          <el-input v-model="treeForm.deptNum" maxlength="15"
                     onkeyup="this.value=this.value.replace(/[^\d.]/g,'')" placeholder="请输入部门编号"/>
         </el-form-item>
         <el-form-item label="部门名称" prop="deptName" label-width="90px">
-          <el-input v-model="treeForm.deptName" maxlength="10" placeholder="请输入部门名称"/>
+          <el-input v-model="treeForm.deptName" maxlength="15" placeholder="请输入部门名称"/>
         </el-form-item>
-        <el-form-item label="部门类型" prop="deptType" label-width="90px">
+        <el-form-item  v-if="deptType"
+          label="部门类型" prop="deptType" label-width="90px">
           <el-radio-group v-model="treeForm.deptType" style="margin:4px 0 0 10px;">
             <el-radio :label="1">学院</el-radio>
             <el-radio :label="0">非学院</el-radio>
@@ -327,19 +328,21 @@
     <el-dialog title="新增部门" v-if="treeAddOpen" :visible.sync="treeAddOpen" width="600px" append-to-body class="teacher-tree-dialog-box">
       <el-form :model="treeAddForm" class="teacher-tree-dialog-form-box" ref="treeAddForm" :rules="rules" v-show="showSearch">
         <el-form-item label="上级部门" prop="id" label-width="110px">
-          <treeselect style="width:402px;" v-model="treeAddForm.id" :options="deptOptions" :show-count="true" @select="deptAddSelect" placeholder="请选择上级部门" />
+          <treeselect style="width:402px;" v-model="treeAddForm.id" :options="deptOptions" :show-count="true"
+                      @select="deptAddSelect" placeholder="请选择上级部门"/>
         </el-form-item>
         <div class="scrollbar-box" style="max-height:456px">
           <div style="display:flex;border:1px solid #d8d8d8;border-radius:6px;margin:0 20px 20px;padding-top:20px;position: relative"
                v-for="(item,index) in treeAddForm.teaCherDpetList" :key="index">
             <div style="width:490px;">
               <el-form-item label="部门编号" :prop="'teaCherDpetList.' + index + '.deptNum'" :rules="rules.deptNum" label-width="90px">
-                <el-input v-model="item.deptNum" maxlength="10" placeholder="请输入部门编号"/>
+                <el-input v-model="item.deptNum" maxlength="15" placeholder="请输入部门编号"/>
               </el-form-item>
               <el-form-item label="部门名称" :prop="'teaCherDpetList.' + index + '.deptName'" :rules="rules.deptName" label-width="90px">
-                <el-input v-model="item.deptName" maxlength="10" placeholder="请输入部门名称"/>
+                <el-input v-model="item.deptName" maxlength="15" placeholder="请输入部门名称"/>
               </el-form-item>
-              <el-form-item label="部门类型" :prop="'teaCherDpetList.' + index + '.deptType'" :rules="rules.deptType" label-width="90px">
+              <el-form-item v-if="deptType"
+                label="部门类型" :prop="'teaCherDpetList.' + index + '.deptType'" :rules="rules.deptType" label-width="90px">
                 <el-radio-group v-model="item.deptType" style="margin:4px 0 0 10px;">
                   <el-radio :label="1">学院</el-radio>
                   <el-radio :label="0">非学院</el-radio>
@@ -500,6 +503,9 @@
         },
         // 表单校验
         rules: {
+          parentId: [
+            { required: true, message: "请选择上级部门", trigger: "blur" }
+          ],
           id: [
             { required: true, message: "请选择上级部门", trigger: "blur" }
           ],
@@ -577,6 +583,8 @@
         userId:"",
         currentDate:'',
         inputDeptName:"",
+        //部门类型开关
+        deptType:false,
       };
     },
     watch: {
@@ -656,8 +664,8 @@
               let obj = {
                 deptId:this.treeForm.id,
                 deptName:this.treeForm.deptName,
-                deptType:this.treeForm.deptType,
               }
+              obj.deptType = this.deptType?this.treeForm.deptType:'0'
               updateDeptName(obj).then(response => {
                 this.treeOpen = false;
                 this.delTreeForm();
@@ -670,10 +678,11 @@
               let obj = {
                 deptId:this.treeForm.id,
                 parentId:this.treeForm.parentId,
+                deptNum:this.treeForm.deptNum,
                 ancestors:this.treeForm.ancestors,
                 deptName:this.treeForm.deptName,
-                deptType:this.treeForm.deptType,
               };
+              obj.deptType = this.deptType?this.treeForm.deptType:'0'
               putDeptByTeacher(obj).then(response => {
                 this.treeOpen = false;
                 this.delTreeForm();
@@ -708,8 +717,8 @@
                 parentId:this.treeAddForm.id,
                 deptNum:this.treeAddForm.teaCherDpetList[i].deptNum,
                 deptName:this.treeAddForm.teaCherDpetList[i].deptName,
-                deptType:this.treeAddForm.teaCherDpetList[i].deptType,
               }
+              obj.deptType = this.deptType?this.treeAddForm.teaCherDpetList[i].deptType:'0'
               newObj.teaCherDpetList.push(obj);
             }
             addDeptByTeacher(newObj).then(response => {
@@ -728,11 +737,13 @@
       },
       //新增节点选择部门
       deptAddSelect(item){
+        this.$set(this,'deptType',item.ancestors == '0'?true:false);
         this.treeAddForm.parentId = item.id;
         this.treeAddForm.ancestors = item.ancestors;
       },
       //编辑节点选择部门
       deptSelect(item){
+        this.$set(this,'deptType',item.ancestors == '0'?true:false);
         this.treeForm.parentId = item.id;
         this.treeForm.ancestors = item.ancestors;
       },
@@ -802,6 +813,7 @@
             obj.parentId = this.treeForm.parentId;
             obj.ancestors = this.treeForm.ancestors;
           }
+          this.$set(this,'deptType',this.treeForm.ancestors == '0'?true:false);
           this.$set(this,'treeAddForm',obj);
           this.treeAddOpen = true;
         }else {
@@ -836,6 +848,8 @@
           }else if(type == 4){
             //部门编辑
             this.$set(this,'treeForm',JSON.parse(JSON.stringify(this.treeFormOne)));
+            let list = this.treeForm.ancestors.split(',')
+            this.$set(this,'deptType',(list[0]&&list[1]&&!list[2])?true:false);
             this.treeOpen = true;
           }else if(type == 5){
             //部门添加人员