luoyb
2021-02-18 e6e8e56ea08e6712d95eda421c88f51df07c8ada
feat(在职员工): 员工调岗

完成了员工调岗功能
1个文件已修改
82 ■■■■■ 已修改文件
src/views/user/inemployees.vue 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/user/inemployees.vue
@@ -1180,12 +1180,12 @@
      </div>
    </el-dialog>
    <el-dialog title="员工调岗" :visible.sync="dialogShowYgdg" width="50%">
      <el-form :model="ygdgForm" label-position="right" label-width="120px">
      <el-form ref="ygdgForm" :model="ygdgForm" :rules="ygdgRules" label-position="right" label-width="120px">
        <el-row>
          <el-col span="24">
            <el-form-item label="调岗人员">
              <input v-model="ygdgForm.dgryIds" type="hidden">
              <el-input v-model="ygdgForm.dgryNames" type="textarea" />
              <input v-model="ygdgForm.empIds" type="hidden">
              <el-input v-model="ygdgForm.empNames" type="textarea" />
            </el-form-item>
            <el-form-item label="现部门(护卫点)" required message="请选择护卫点" prop="deptId">
              <treeselect
@@ -1195,40 +1195,41 @@
                :clear-value-text="$t('common.clear')"
                placeholder="请选择部门(护卫点)"
                style="width:100%"
                @select="deptNameSelect"
              />
            </el-form-item>
            <el-form-item label="现岗位" prop="jobName">
            <el-form-item label="现岗位" prop="jobId">
              <el-autocomplete
                v-model="ygdgForm.jobName"
                v-model="ygdgForm.newJobName"
                class="inline-input"
                :fetch-suggestions="querySearchJob"
                placeholder="请输入岗位"
                @select="jobNameSelect"
              />
            </el-form-item>
            <el-form-item label="调岗类型" prop="region">
              <el-select v-model="ygdgForm.dglx" placeholder="请选择">
            <el-form-item label="调岗类型" prop="changeType">
              <el-select v-model="ygdgForm.changeType" placeholder="请选择">
                <el-option label="升职" value="2" />
                <el-option label="调动" value="3" />
              </el-select>
            </el-form-item>
            <el-form-item label="调岗日期">
            <el-form-item label="调岗日期" prop="changeDate">
              <el-date-picker
                v-model="ygdgForm.dgrq"
                v-model="ygdgForm.changeDate"
                type="date"
                value-format="yyyy-MM-dd"
                placeholder="选择日期"
              />
            </el-form-item>
            <el-form-item label="理由描述">
              <el-input v-model="ygdgForm.lyms" type="textarea" />
            <el-form-item label="理由描述" prop="changeReason">
              <el-input v-model="ygdgForm.changeReason" type="textarea" />
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="showYgdg(1)">取 消</el-button>
        <el-button type="primary" @click="showYgdg(2)">确 定</el-button>
        <el-button @click="showYgdg(1,'')">取 消</el-button>
        <el-button type="primary" @click="showYgdg(2,'ygdgForm')">确 定</el-button>
      </div>
    </el-dialog>
    <el-dialog title="导入员工信息" :visible.sync="dialogShowDryg" width="50%">
@@ -1616,6 +1617,13 @@
        reporter: [{ required: true, validator: this.validReporter }],
        remark: [{ max: 500, message: '长度不超过500个字符', trigger: 'blur' }]
      },
      ygdgRules: {
        changeType: [{ required: true, message: '请选择调岗类型', trigger: 'change' }],
        changeDate: [{ required: true, message: '请选择调岗日期', trigger: 'change' }],
        jobId: [{ required: true, message: '请选择现岗位', trigger: 'change' }],
        deptId: [{ required: true, message: '请选择现部门', trigger: 'change' }],
        changeReason: [{ max: 500, message: '长度不超过500个字符', trigger: 'blur' }]
      },
      restaurants: [{ value: '北京市', code: '110000' },
        { value: '天津市', code: '120000' },
        { value: '河北省', code: '130000' },
@@ -1950,7 +1958,7 @@
          break
      }
    },
    showYgdg(operate) {
    showYgdg(operate, formName) {
      switch (operate) {
        case 0:
          var selection = this.$refs.multipleTable.store.states.selection
@@ -1960,16 +1968,22 @@
              type: 'error'
            })
          } else {
            var empIds = []
            var ids = []
            var names = []
            var deptNames = []
            var jobNames = []
            for (var i = 0; i < selection.length; i++) {
              var data = selection[i]
              empIds.push(data.empId)
              ids.push(data.empId)
              names.push(data.empName)
              deptNames.push(data.deptName)
              jobNames.push(data.jobName)
            }
            this.ygdgForm = {
              dgryIds: empIds.join(','),
              dgryNames: names.join(',')
              empIds: ids.join(','),
              empNames: names.join(','),
              oldDeptNames: deptNames.join(','),
              oldJobNames: jobNames.join(',')
            }
            this.dialogShowYgdg = true
          }
@@ -1978,12 +1992,20 @@
          this.dialogShowYgdg = false
          break
        case 2:
          this.$post('hr/empBaseInfo', { ...this.ygdgForm }).then(() => {
          this.$refs[formName].validate((valid) => {
            if (valid) {
              this.$post('hr/empBaseInfo/jobChange', { ...this.ygdgForm }).then(() => {
            this.dialogShowYgdg = false
            this.$message({
              message: this.$t('tips.createSuccess'),
                  message: this.$t('员工调岗成功'),
              type: 'success'
            })
                this.fetch({
                  ...this.queryParams,
                  ...this.sort
                })
              })
            }
          })
          break
      }
@@ -2003,6 +2025,9 @@
      this.empBaseInfoForm.nativePlaceName = item.value
      this.empBaseInfoForm.nativePlace = item.code
    },
    deptNameSelect(node) {
      this.ygdgForm.newDeptName = node.label
    },
    querySearchJob(queryString, cb) {
      const restaurants = this.restaurJob
      const results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants
@@ -2012,6 +2037,9 @@
    jobNameSelect(item) {
      this.empBaseInfoForm.jobName = item.value
      this.empBaseInfoForm.JobId = item.code
      this.ygdgForm.newJobName = item.value
      this.ygdgForm.jobId = item.code
    },
    generateUserInfo(index, val) {
      var userinfo = toCardGetUserInfo(val)
@@ -2046,11 +2074,6 @@
      } else {
        callback()
      }
      // if (!value && type === 2) {
      //   callback(new Error('自动离职时自离天数不能为空!'))
      // } else {
      //   callback()
      // }
    },
    validReporter(rule, value, callback) {
      const type = this.gbdaForm.dimissionType
@@ -2067,15 +2090,6 @@
      } else {
        callback()
      }
      // if (!value && type === 2) {
      //   callback(new Error('自动离职时报告人不能为空!'))
      // } else {
      //   if (value.length > 32) {
      //     callback(new Error('自动离职时报告人最多32个字符!'))
      //   } else {
      //     callback()
      //   }
      // }
    },
    showGbda(operate, formName) {
      switch (operate) {