luoyb
2021-01-31 cdfb7d768d971f53d4c897534497c3819a476464
feat(信息录入): 请假记录

员工请假记录勤基本增、删、改功能(缺少员工选择功能和验证)
1个文件已修改
249 ■■■■ 已修改文件
src/views/user/Informationinput.vue 249 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/user/Informationinput.vue
@@ -194,31 +194,28 @@
          <el-table-column prop="absenteeism" label="旷工(天)" width="180" />
          <el-table-column prop="remark" label="备注" width="180" />
        </el-table>
        <el-table v-show="showArr[5].show" :data="leaveData" style="width: 100%">
        <el-table v-show="showArr[5].show" ref="leaveInfoTable" :data="leaveInfoData" style="width: 100%">
          <el-table-column type="selection" width="55" />
          <el-table-column fixed="left" label="操作" width="100">
            <template>
              <el-button type="text" size="small">编辑</el-button>
            </template>
            <template slot-scope="scope"><el-button type="text" size="small" @click="editLeaveInfo(scope.row)">编辑</el-button></template>
          </el-table-column>
          <el-table-column prop="userNumb" label="员工编号" width="180" />
          <el-table-column prop="name" label="姓名" width="180" />
          <el-table-column prop="sex" label="性别" width="180" />
          <el-table-column prop="idNumber" label="身份证号码" width="180" />
          <el-table-column prop="deptName" label="所属部门" width="180" />
          <el-table-column prop="leaveStartDate" label="请假开始时间" width="180" />
          <el-table-column prop="leaveEndDate" label="请假结束时间" width="180" />
          <el-table-column prop="empNumb" label="员工编号" width="180" />
          <el-table-column prop="deptName" label="部门名称" width="180" />
          <el-table-column prop="jobName" label="岗位名称" width="180" />
          <el-table-column prop="empName" label="员工姓名" width="180" />
          <el-table-column prop="certificateNumb" label="证件号码" width="180" />
          <el-table-column prop="beginTime" label="开始时间" width="180" />
          <el-table-column prop="endTime" label="结束时间" width="180" />
          <el-table-column prop="leaveDay" label="请假天数" width="180" />
          <el-table-column prop="leaveType" label="请假类型" width="180" />
          <el-table-column prop="comeDate" label="到岗时间" width="180" />
          <el-table-column prop="report" label="报备人" width="180" />
          <el-table-column prop="returnDate" label="到岗时间" width="180" />
          <el-table-column prop="reporter" label="报备人" width="180" />
          <el-table-column prop="remark" label="备注" width="180" />
        </el-table>
        <el-table v-show="showArr[6].show" :data="resignData" style="width: 100%">
          <el-table-column type="selection" width="55" />
          <el-table-column fixed="left" label="操作" width="100">
            <template>
              <el-button type="text" size="small">编辑</el-button>
            </template>
            <template slot-scope="scope"><el-button type="text" size="small" @click="editLeaveInfo(scope.row)">编辑</el-button></template>
          </el-table-column>
          <el-table-column prop="userNumb" label="员工编号" width="180" />
          <el-table-column prop="name" label="姓名" width="180" />
@@ -231,10 +228,9 @@
          <el-table-column prop="remark" label="备注" width="180" />
        </el-table>
        <el-table v-show="showArr[7].show" :data="unemploymentData" style="width: 100%">
          <el-table-column type="selection" width="55" />
          <el-table-column fixed="left" label="操作" width="100">
            <template>
              <el-button type="text" size="small">编辑</el-button>
            </template>
            <template slot-scope="scope"><el-button type="text" size="small" @click="editLeaveInfo(scope.row)">编辑</el-button></template>
          </el-table-column>
          <el-table-column prop="userNumb" label="员工编号" width="180" />
          <el-table-column prop="name" label="姓名" width="180" />
@@ -248,10 +244,9 @@
          <el-table-column prop="remark" label="备注" width="180" />
        </el-table>
        <el-table v-show="showArr[8].show" :data="socialSecurityData" style="width: 100%">
          <el-table-column type="selection" width="55" />
          <el-table-column fixed="left" label="操作" width="100">
            <template>
              <el-button type="text" size="small">编辑</el-button>
            </template>
            <template slot-scope="scope"><el-button type="text" size="small" @click="editLeaveInfo(scope.row)">编辑</el-button></template>
          </el-table-column>
          <el-table-column prop="userNumb" label="员工编号" width="180" />
          <el-table-column prop="name" label="姓名" width="180" />
@@ -267,10 +262,9 @@
          <el-table-column prop="remark" label="备注" width="280" />
        </el-table>
        <el-table v-show="showArr[9].show" :data="data1" style="width: 100%">
          <el-table-column type="selection" width="55" />
          <el-table-column fixed="left" label="操作" width="100">
            <template>
              <el-button type="text" size="small">编辑</el-button>
            </template>
            <template slot-scope="scope"><el-button type="text" size="small" @click="editLeaveInfo(scope.row)">编辑</el-button></template>
          </el-table-column>
          <el-table-column prop="prop2" label="所属部门" width="180" />
          <el-table-column prop="prop3" label="员工编号" width="180" />
@@ -296,10 +290,9 @@
          <el-table-column prop="prop23" label="案结时间" width="180" />
        </el-table>
        <el-table v-show="showArr[10].show" :data="data2" style="width: 100%">
          <el-table-column type="selection" width="55" />
          <el-table-column fixed="left" label="操作" width="100">
            <template>
              <el-button type="text" size="small">编辑</el-button>
            </template>
            <template slot-scope="scope"><el-button type="text" size="small" @click="editLeaveInfo(scope.row)">编辑</el-button></template>
          </el-table-column>
          <el-table-column prop="prop2" label="员工编号" width="180" />
          <el-table-column prop="prop3" label="姓名" width="180" />
@@ -987,58 +980,65 @@
        <el-button @click="dialogIsShow()">取 消</el-button>
      </div>
    </el-dialog>
    <el-dialog title="请假记录" :visible.sync="dialogshowArr[5].show" width="50%">
      <el-form :model="leaveForm" label-position="right" label-width="120px">
      <el-form :model="leaveInfoForm" label-position="right" label-width="120px">
        <el-row>
          <el-col :span="12">
            <el-form-item label="员工编号">
              <el-input v-model="leaveForm.name" />
              <el-input v-model="leaveInfoForm.empNumb" />
            </el-form-item>
            <el-form-item label="身份证号码">
              <el-input v-model="leaveForm.name" />
            <el-form-item label="性别" prop="region">
              <el-select v-model="leaveInfoForm.sex" placeholder="请选择性别">
                <el-option label="男" value="1" />
                <el-option label="女" value="2" />
              </el-select>
            </el-form-item>
            <el-form-item label="部门名称"><el-input v-model="leaveInfoForm.deptName" /></el-form-item>
            <el-form-item label="请假开始时间">
              <el-date-picker
                v-model="leaveForm.name"
                type="date"
                v-model="leaveInfoForm.beginTime"
                value-format="yyyy-MM-dd HH:mm:ss"
                format="yyyy-MM-dd HH:mm:ss"
                type="datetime"
                placeholder="选择请假开始时间"
              />
            </el-form-item>
            <el-form-item label="请假类型" prop="region">
              <el-select v-model="contractData.name" placeholder="请选择请假类型">
              <el-select v-model="leaveInfoForm.leaveType" placeholder="请选择请假类型">
                <el-option label="事假" value="1" />
                <el-option label="病假" value="2" />
              </el-select>
            </el-form-item>
            <el-form-item label="报备人">
              <el-input v-model="leaveForm.name" />
              <el-input v-model="leaveInfoForm.reporter" />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="姓名">
              <el-input v-model="leaveForm.name" />
              <el-input v-model="leaveInfoForm.empName" />
            </el-form-item>
            <el-form-item label="所属部门">
              <el-input v-model="leaveForm.name" />
            </el-form-item>
            <el-form-item label="证件号码"><el-input v-model="leaveInfoForm.certificateNumb" /></el-form-item>
            <el-form-item label="岗位名称"><el-input v-model="leaveInfoForm.jobName" /></el-form-item>
            <el-form-item label="请假结束时间">
              <el-date-picker
                v-model="leaveForm.name"
                type="date"
                v-model="leaveInfoForm.endTime"
                value-format="yyyy-MM-dd HH:mm:ss"
                format="yyyy-MM-dd HH:mm:ss"
                type="datetime"
                placeholder="选择请假结束时间"
              />
            </el-form-item>
            <el-form-item label="请假天数">
              <el-input v-model="leaveForm.name" />
              <el-input v-model="leaveInfoForm.leaveDay" />
            </el-form-item>
            <el-form-item label="到岗时间">
              <el-date-picker
                v-model="leaveForm.name"
                v-model="leaveInfoForm.returnDate"
                value-format="yyyy-MM-dd"
                type="date"
                placeholder="选择到岗时间"
              />
@@ -1049,14 +1049,15 @@
        <el-row>
          <el-col :span="24">
            <el-form-item label="备注">
              <el-input v-model="leaveForm.name" type="textarea" />
              <el-input v-model="leaveInfoForm.remark" type="textarea" />
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="putLeaveInfo()">保 存</el-button>
        <el-button type="primary" @click="putLeaveInfoContinue()">保存并继续新增</el-button>
        <el-button @click="dialogIsShow()">取 消</el-button>
        <el-button type="primary" @click="dialogIsShow()">确 定</el-button>
      </div>
    </el-dialog>
@@ -1772,7 +1773,7 @@
      basicInformationData: [],
      contractData: [],
      attendanceData: [],
      leaveData: [],
      leaveInfoData: [],
      resignData: [
        {
          userNumb: '12321222',
@@ -2290,18 +2291,29 @@
        report: '',
        remark: ''
      },
      leaveForm: {
        userNumb: '',
        name: '',
        deptName: '',
      leaveInfoForm: {
        leaveId: '',
        empId: '',
        empNumb: '',
        empName: '',
        sex: '',
        idNumber: '',
        leaveStartDate: '',
        leaveEndDate: '',
        leaveDay: '',
        certificateNumb: '',
        deptId: '',
        deptName: '',
        JobId: '',
        jobName: '',
        beginTime: '',
        endTime: '',
        leaveType: '',
        comeDate: '',
        report: '',
        leaveDay: '',
        reporter: '',
        returnDate: '',
        createTime: '',
        creator: '',
        modifyTime: '',
        modifier: '',
        delFlag: '',
        version: '',
        remark: ''
      },
      contractInfoForm: {
@@ -2470,6 +2482,7 @@
    this.selectPhysicalExam()
    this.selectContractInfo()
    this.selectDimissionAttend()
    this.selectLeaveInfo()
  },
  methods: {
    dialogIsShow() {
@@ -2508,6 +2521,7 @@
          }
          break
        case 1:
          // eslint-disable-next-line no-redeclare
          var selected = this.$refs.workExperienceTable.selection
          if (selected.length > 0) {
            const delIds = []
@@ -2571,6 +2585,23 @@
                type: 'success'
              })
              this.selectDimissionAttend()
            })
          }
          break
        case 5:
          // eslint-disable-next-line no-redeclare
          var selected = this.$refs.leaveInfoTable.selection
          if (selected.length > 0) {
            const delIds = []
            selected.forEach((j) => {
              delIds.push(j.leaveId)
            })
            this.$delete(`hr/empLeaveInfo/` + delIds).then(() => {
              this.$message({
                message: this.$t('tips.deleteSuccess'),
                type: 'success'
              })
              this.selectLeaveInfo()
            })
          }
          break
@@ -3178,6 +3209,108 @@
      this.dimissionAttendForm.version = row.version
      this.dimissionAttendForm.remark = row.remark
      this.dialogshowArr[4].show = true
    },
    selectLeaveInfo() {
      this.$get('hr/empLeaveInfo/list').then((r) => {
        this.leaveInfoData = r.data.data.rows
      }).catch((error) => {
        console.error(error)
        this.$message({
          message: this.$t('tips.getDataFail'),
          type: 'error'
        })
      })
    },
    putLeaveInfo() {
      if (this.isAdd) {
        this.$post('hr/empLeaveInfo', { ...this.leaveInfoForm }).then(() => {
          this.buttonLoading = false
          this.$message({
            message: this.$t('tips.createSuccess'),
            type: 'success'
          })
          this.cleanLeaveInfo()
          this.selectLeaveInfo()
        })
      } else {
        this.$put('hr/empLeaveInfo', { ...this.leaveInfoForm }).then(() => {
          this.$message({
            message: this.$t('tips.updateSuccess'),
            type: 'success'
          })
          this.$emit('success')
          this.cleanLeaveInfo()
          this.selectLeaveInfo()
        })
      }
      this.dialogIsShow()
    },
    putLeaveInfoContinue() {
      if (this.isAdd) {
        this.$post('hr/empLeaveInfo', { ...this.leaveInfoForm }).then(() => {
          this.buttonLoading = false
          this.$message({
            message: this.$t('tips.createSuccess'),
            type: 'success'
          })
          this.cleanLeaveInfo()
          this.selectLeaveInfo()
        })
      }
    },
    cleanLeaveInfo() {
      this.leaveInfoForm.leaveId = ''
      this.leaveInfoForm.empId = ''
      this.leaveInfoForm.empNumb = ''
      this.leaveInfoForm.empName = ''
      this.leaveInfoForm.sex = ''
      this.leaveInfoForm.certificateNumb = ''
      this.leaveInfoForm.deptId = ''
      this.leaveInfoForm.deptName = ''
      this.leaveInfoForm.JobId = ''
      this.leaveInfoForm.jobName = ''
      this.leaveInfoForm.beginTime = ''
      this.leaveInfoForm.endTime = ''
      this.leaveInfoForm.leaveType = ''
      this.leaveInfoForm.leaveDay = ''
      this.leaveInfoForm.reporter = ''
      this.leaveInfoForm.returnDate = ''
      this.leaveInfoForm.createTime = ''
      this.leaveInfoForm.creator = ''
      this.leaveInfoForm.modifyTime = ''
      this.leaveInfoForm.modifier = ''
      this.leaveInfoForm.delFlag = ''
      this.leaveInfoForm.version = ''
      this.leaveInfoForm.remark = ''
    },
    editLeaveInfo(row) {
      this.isAdd = false
      this.leaveInfoForm.leaveId = row.leaveId
      this.leaveInfoForm.empId = row.empId
      this.leaveInfoForm.empNumb = row.empNumb
      this.leaveInfoForm.empName = row.empName
      this.leaveInfoForm.sex = row.sex
      this.leaveInfoForm.certificateNumb = row.certificateNumb
      this.leaveInfoForm.deptId = row.deptId
      this.leaveInfoForm.deptName = row.deptName
      this.leaveInfoForm.JobId = row.JobId
      this.leaveInfoForm.jobName = row.jobName
      this.leaveInfoForm.beginTime = row.beginTime
      this.leaveInfoForm.endTime = row.endTime
      this.leaveInfoForm.leaveType = row.leaveType
      this.leaveInfoForm.leaveDay = row.leaveDay
      this.leaveInfoForm.reporter = row.reporter
      this.leaveInfoForm.returnDate = row.returnDate
      this.leaveInfoForm.createTime = row.createTime
      this.leaveInfoForm.creator = row.creator
      this.leaveInfoForm.modifyTime = row.modifyTime
      this.leaveInfoForm.modifier = row.modifier
      this.leaveInfoForm.delFlag = row.delFlag
      this.leaveInfoForm.version = row.version
      this.leaveInfoForm.remark = row.remark
      this.dialogshowArr[5].show = true
    }
  }
}