From cdfb7d768d971f53d4c897534497c3819a476464 Mon Sep 17 00:00:00 2001
From: luoyb <412940104@qq.com>
Date: 星期日, 31 一月 2021 23:18:53 +0800
Subject: [PATCH] feat(信息录入): 请假记录

---
 src/views/user/Informationinput.vue |  249 ++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 191 insertions(+), 58 deletions(-)

diff --git a/src/views/user/Informationinput.vue b/src/views/user/Informationinput.vue
index 7487ad8..805644c 100644
--- a/src/views/user/Informationinput.vue
+++ b/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
     }
   }
 }

--
Gitblit v1.8.0