Ver Fonte

修复交接

wolyshaw há 4 anos atrás
pai
commit
a1d78896b7

+ 1 - 0
src/store/modules/selects.js

@@ -34,6 +34,7 @@ export default {
     commit_teachers: (state, teachers) => {
       state.teachers = teachers.map(teacher=>{
         return {
+          ...teacher,
           id:teacher.id,
           userId:teacher.id,
           userName:teacher.realName,

+ 16 - 4
src/views/categroyManager/insideSetting/modals/handover.vue

@@ -8,6 +8,7 @@
           :name="key"
           :item="item"
           :branchsyId="branchsyId"
+          :teachersByOrganId="teachersByOrganId"
         />
       </template>
     </el-form>
@@ -30,20 +31,31 @@ export default {
     return {
       list: [],
       form: {
-        repairOrgans: [],
-        directorOrgans: [],
-        educationOrgans: [],
-        teamTeacherOrgans: [],
+        repair: [],
+        director: [],
+        education: [],
+        teamTeacher: [],
       }
     }
   },
   computed: {
     branchsyId() {
       return array2object(this.selects.branchs, 'id')
+    },
+    teachersByOrganId() {
+      const data = {}
+      for (const item of this.selects.teachers) {
+        if (!data[item.organId]) {
+          data[item.organId] = []
+        }
+        data[item.organId].push(item)
+      }
+      return data
     }
   },
   mounted() {
     this.$store.dispatch('setBranchs')
+    this.$store.dispatch('setTeachers')
     this.FetchDetail()
   },
   methods: {

+ 45 - 11
src/views/categroyManager/insideSetting/modals/select-user.vue

@@ -1,12 +1,19 @@
 <template>
   <div>
-    <el-alert type="info">{{formatName}}</el-alert>
+    <el-alert class="alert" type="info" :closable="false">
+      <template #title>
+        <div class="title">
+          <span>{{formatName}}</span>
+          <el-button style="padding: 5px;" type="text" @click="clear">清空</el-button>
+        </div>
+      </template>
+    </el-alert>
     <div class="content">
       <el-row v-for="(row, index) in item" :key="row.organId">
-        <el-col :span="6">
+        <el-col :span="8">
           <el-form-item :label="branchsyId[row.organId] && branchsyId[row.organId].name"></el-form-item>
         </el-col>
-        <el-col :span="12">
+        <el-col :span="16">
           <el-form-item
             label="交接人"
             :prop="`${name}.${index}.transferUserId`"
@@ -14,17 +21,29 @@
               required: true, message: '请选择交接人'
             }]"
           >
-            <remote-search :commit='"setTeachers"' @change="val => change(val, row)" :value="row.transferUserId" />
+            <el-select
+              @change="val => change(val, row)"
+              :value="row.transferUserId"
+              clearable
+              filterable
+            >
+              <el-option
+                v-for="option in teachersByOrganId[row.organId]"
+                :key="option.id"
+                :value="option.id"
+                :label="option.realName"
+              ></el-option>
+            </el-select>
           </el-form-item>
         </el-col>
-        <el-col :span="6">
+        <!-- <el-col :span="6">
           <el-button
             type="text"
             v-if="index == 0"
             :disabled="!row.transferUserId"
             @click="quickSetting(row.transferUserId)"
           >快速设置</el-button>
-        </el-col>
+        </el-col> -->
       </el-row>
     </div>
   </div>
@@ -32,14 +51,14 @@
 <script>
 import { employeeLevelDetail, employeeLevel } from '../api'
 export default {
-  props: ['item', 'name', 'branchsyId'],
+  props: ['item', 'name', 'branchsyId', 'teachersByOrganId'],
   computed: {
     formatName() {
       const types = {
-        repairOrgans: '维修技师',
-        directorOrgans: '乐队指导',
-        educationOrgans: '教务老师',
-        teamTeacherOrgans: '运营主管',
+        repair: '维修技师',
+        director: '乐队指导',
+        education: '教务老师',
+        teamTeacher: '运营主管',
       }
       return types[this.name]
     }
@@ -54,11 +73,26 @@ export default {
     },
     change(val, row) {
       row.transferUserId = val
+    },
+    clear() {
+      this.item.forEach(row => {
+        row.transferUserId = ''
+      })
     }
   }
 };
 </script>
 <style lang="less" scoped>
+.alert{
+  /deep/ .el-alert__content{
+    width: 100%;
+  }
+  .title{
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+  }
+}
 .content{
   padding: 0 24px;
   padding-top: 24px;

+ 7 - 3
src/views/categroyManager/insideSetting/staffManager.vue

@@ -137,9 +137,13 @@
               <el-button @click="onStaffOperation('LOCK_UNLOCK', scope.row)"
                          v-permission="'employee/employeeOperate'"
                          type="text">{{ scope.row.lockFlag == 1 ? '解冻' : '冻结' }}</el-button>
+              <el-button @click="onStaffOperation('DEMISSION', scope.row)"
+                         v-permission="'employee/employeeOperate'"
+                         v-if="scope.row.demissionDate"
+                         type="text">复职</el-button>
               <el-button @click="handover(scope.row)"
-                         v-permission="'employee/level'"
-                         type="text">{{ scope.row.demissionDate ? '复职' : '离职' }}</el-button>
+                         v-if="!scope.row.demissionDate && permission('employee/level') && permission('employee/levelDetail')"
+                         type="text">离职</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -265,7 +269,7 @@
     <el-dialog
       title="工作交接"
       :visible.sync="handoverVisible"
-      width="700px"
+      width="500px"
     >
       <handover
         v-if="handoverVisible"