wolyshaw 4 éve
szülő
commit
ecfa21e2a1

+ 57 - 15
src/views/categroyManager/insideSetting/modals/handover.vue

@@ -1,23 +1,25 @@
 <template>
   <div>
-    <div>
-      <select-user
-        v-for="(item, key) in list"
-        :key="key"
-        :name="key"
-        :item="item"
-        :subjectsById="subjectsById"
-      />
-    </div>
+    <el-form ref="form" inline :model="form">
+      <template v-for="(item, key) in form">
+        <select-user
+          v-if="item.length > 0"
+          :key="key"
+          :name="key"
+          :item="item"
+          :branchsyId="branchsyId"
+        />
+      </template>
+    </el-form>
     <span slot="footer" class="dialog-footer">
       <el-button @click="$listeners.close">取 消</el-button>
-      <!-- <el-button @click="submitEducation" type="primary">确 定</el-button> -->
+      <el-button @click="submit" type="primary">确 定</el-button>
     </span>
   </div>
 </template>
 <script>
 import { array2object } from '@/helpers/utils'
-import { employeeLevelDetail } from '../api'
+import { employeeLevelDetail, employeeLevel } from '../api'
 import selectUser from './select-user'
 export default {
   props: ['detail'],
@@ -26,29 +28,69 @@ export default {
   },
   data() {
     return {
-      list: []
+      list: [],
+      form: {
+        repairOrgans: [],
+        directorOrgans: [],
+        educationOrgans: [],
+        teamTeacherOrgans: [],
+      }
     }
   },
   computed: {
-    subjectsById() {
-      return array2object(this.selects.subjects, 'id')
+    branchsyId() {
+      return array2object(this.selects.branchs, 'id')
     }
   },
   mounted() {
-    this.$store.dispatch('setSubjects')
+    this.$store.dispatch('setBranchs')
     this.FetchDetail()
   },
   methods: {
+    async submit() {
+      this.$refs.form.validate(async valid => {
+        if (valid) {
+          let list = []
+          for (const key in this.form) {
+            if (Object.hasOwnProperty.call(this.form, key)) {
+              const item = this.form[key];
+              list = list.concat(item.map(row => ({...row, roleName: key})))
+            }
+          }
+          await employeeLevel(list)
+          this.$message.success('提交成功')
+          this.$listeners.submited()
+        }
+      })
+    },
     async FetchDetail() {
       try {
         const res = await employeeLevelDetail({
           userId: this.detail.id
         })
         this.list = res.data
+        for (const key in res.data) {
+          if (Object.hasOwnProperty.call(res.data, key)) {
+            const type = res.data[key];
+            for (const item of type) {
+              this.form[key].push({
+                organId: item,
+                transferUserId: '',
+                levelUserId: this.detail.id
+              })
+            }
+          }
+        }
+        this.form = this.form
       } catch (error) {}
     }
   }
 };
 </script>
 <style lang="less" scoped>
+.dialog-footer{
+  text-align: right;
+  display: block;
+  padding-bottom: 20px;
+}
 </style>

+ 52 - 15
src/views/categroyManager/insideSetting/modals/select-user.vue

@@ -1,29 +1,66 @@
 <template>
   <div>
-    <el-alert type="info">老师选择</el-alert>
-
+    <el-alert type="info">{{formatName}}</el-alert>
+    <div class="content">
+      <el-row v-for="(row, index) in item" :key="row.organId">
+        <el-col :span="6">
+          <el-form-item :label="branchsyId[row.organId] && branchsyId[row.organId].name"></el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item
+            label="交接人"
+            :prop="`${name}.${index}.transferUserId`"
+            :rules="[{
+              required: true, message: '请选择交接人'
+            }]"
+          >
+            <remote-search :commit='"setTeachers"' @change="val => change(val, row)" :value="row.transferUserId" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-button
+            type="text"
+            v-if="index == 0"
+            :disabled="!row.transferUserId"
+            @click="quickSetting(row.transferUserId)"
+          >快速设置</el-button>
+        </el-col>
+      </el-row>
+    </div>
   </div>
 </template>
 <script>
-import { employeeLevelDetail } from '../api'
+import { employeeLevelDetail, employeeLevel } from '../api'
 export default {
-  props: ['item', 'name', 'subjectsById'],
-  mounted() {
-    console.log(this)
-    // this.FetchDetail()
+  props: ['item', 'name', 'branchsyId'],
+  computed: {
+    formatName() {
+      const types = {
+        repairOrgans: '维修技师',
+        directorOrgans: '乐队指导',
+        educationOrgans: '教务老师',
+        teamTeacherOrgans: '运营主管',
+      }
+      return types[this.name]
+    }
   },
   methods: {
-    async FetchDetail() {
-      try {
-        await employeeLevelDetail({
-          id: this.detail.id
-        })
-      } catch (error) {
-        console.log(error)
-      }
+    quickSetting(id) {
+      this.item.forEach(row => {
+        if (!row.transferUserId) {
+          row.transferUserId = id
+        }
+      })
+    },
+    change(val, row) {
+      row.transferUserId = val
     }
   }
 };
 </script>
 <style lang="less" scoped>
+.content{
+  padding: 0 24px;
+  padding-top: 24px;
+}
 </style>

+ 9 - 1
src/views/categroyManager/insideSetting/staffManager.vue

@@ -265,8 +265,14 @@
     <el-dialog
       title="工作交接"
       :visible.sync="handoverVisible"
+      width="700px"
     >
-      <handover v-if="handoverVisible" :detail="detail" @close="handoverVisible = false"/>
+      <handover
+        v-if="handoverVisible"
+        :detail="detail"
+        @close="handoverVisible = false"
+        @submited="getList"
+      />
     </el-dialog>
     <el-dialog title="教务交接"
                width="400px"
@@ -307,6 +313,7 @@
 </template>
 <script>
 import pagination from '@/components/Pagination/index'
+import { permission } from "@/utils/directivePage";
 import { queryEmployByOrganId, employeeOperate, getUserRole, employeeAdd, employeeUpdate, hasCourseGroupRelation, updateEducationTeacherId } from '@/api/systemManage'
 import { findEducationTeacher } from '@/api/specialSetting'
 import { findEducationUsers } from '@/api/buildTeam'
@@ -385,6 +392,7 @@ export default {
     this.getRoleList()
   },
   methods: {
+    permission,
     handover(row) {
       this.detail = row
       this.handoverVisible = true