From 4676141dae020bd3e2a078b8350df84ed6c325ab Mon Sep 17 00:00:00 2001
From: luoyb <412940104@qq.com>
Date: 星期一, 07 六月 2021 10:05:39 +0800
Subject: [PATCH] fix(在职员工界面文字):

---
 src/views/user/inemployees.vue |  305 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 249 insertions(+), 56 deletions(-)

diff --git a/src/views/user/inemployees.vue b/src/views/user/inemployees.vue
index 719dda3..2581289 100644
--- a/src/views/user/inemployees.vue
+++ b/src/views/user/inemployees.vue
@@ -124,7 +124,7 @@
                   </td>
                 </tr>
                 <tr>
-                  <td class="td">保险类型:</td>
+                  <td class="td">社保档位:</td>
                   <td class="td-group">
                     <el-checkbox-group v-model="queryParams.insuranceType" class="fj-checkbox">
                       <el-checkbox label="" @change="selectAllInsuranceType">全部</el-checkbox>
@@ -188,9 +188,9 @@
                   <td class="td-group">
                     <el-checkbox-group v-model="queryParams.entryType" class="fj-checkbox">
                       <el-checkbox label="" @change="selectAllEntryType">全部</el-checkbox>
-                      <el-checkbox :label="4">新入职</el-checkbox>
-                      <el-checkbox :label="5">最新入职</el-checkbox>
-                      <el-checkbox :label="6">返聘入职</el-checkbox>
+                      <el-checkbox :label="20">新入职</el-checkbox>
+                      <el-checkbox :label="21">重新入职</el-checkbox>
+                      <el-checkbox :label="22">返聘入职</el-checkbox>
                       <!--                      <el-checkbox-->
                       <!--                        v-for="data in dimissionTypeOptions"-->
                       <!--                        :key="data.dicItemName"-->
@@ -198,6 +198,21 @@
                       <!--                      >-->
                       <!--                        {{ data.dicItemName }}-->
                       <!--                      </el-checkbox>-->
+                    </el-checkbox-group>
+                  </td>
+                </tr>
+                <tr>
+                  <td class="td">相关证件:</td>
+                  <td class="td-group">
+                    <el-checkbox-group v-model="queryParams.certificateList" class="fj-checkbox">
+                      <el-checkbox label="" @change="selectAllCertificateList">全部</el-checkbox>
+                      <el-checkbox
+                        v-for="data in certificateListOptions"
+                        :key="data.dicItemName"
+                        :label="data.dicItemCode"
+                      >
+                        {{ data.dicItemName }}
+                      </el-checkbox>
                     </el-checkbox-group>
                   </td>
                 </tr>
@@ -248,24 +263,28 @@
               >编辑</span>
             </template>
           </el-table-column>
-          <el-table-column show-overflow-tooltip="true" prop="empNumb" label="编号" width="80" sortable="custom" :sort-orders="['ascending', 'descending']" />
-          <el-table-column show-overflow-tooltip="true" prop="allDeptName" label="部门(护卫点)" width="300" sortable="custom" :sort-orders="['ascending', 'descending']" />
-          <el-table-column show-overflow-tooltip="true" prop="jobName" label="岗位" width="80" />
-          <el-table-column show-overflow-tooltip="true" prop="empName" label="姓名" width="100" sortable="custom" :sort-orders="['ascending', 'descending']" />
-          <el-table-column show-overflow-tooltip="true" prop="certificateNumb" label="身份证号码" width="160" />
-          <el-table-column show-overflow-tooltip="true" prop="sex" label="性别" width="60" :formatter="sexFormat" />
-          <el-table-column show-overflow-tooltip="true" prop="age" label="年龄" width="60" />
-          <el-table-column show-overflow-tooltip="true" prop="education" label="学历" width="60" :formatter="educationFormat" />
-          <el-table-column show-overflow-tooltip="true" prop="nativePlace" label="籍贯" width="70" :formatter="nativePlaceFormat" />
-          <el-table-column show-overflow-tooltip="true" prop="telePhone" label="联系电话" width="110" />
-          <el-table-column show-overflow-tooltip="true" prop="empTypeName" label="员工类型" width="80" />
-          <el-table-column show-overflow-tooltip="true" prop="entryDate" label="入职日期" width="110" sortable="custom" :sort-orders="['ascending', 'descending']" />
-          <el-table-column show-overflow-tooltip="true" prop="empStatus" label="员工状态" width="80">
+          <el-table-column show-overflow-tooltip prop="empNumb" label="编号" width="80" sortable="custom" :sort-orders="['ascending', 'descending']" />
+          <el-table-column show-overflow-tooltip prop="allDeptName" label="部门(护卫点)" width="300" sortable="custom" :sort-orders="['ascending', 'descending']" />
+          <el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="80" />
+          <el-table-column show-overflow-tooltip prop="empName" label="姓名" width="100" sortable="custom" :sort-orders="['ascending', 'descending']" />
+          <el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="160" />
+          <el-table-column show-overflow-tooltip prop="sex" label="性别" width="60" :formatter="sexFormat" />
+          <el-table-column show-overflow-tooltip prop="age" label="年龄" width="80" sortable="custom" :sort-orders="['ascending', 'descending']" />
+          <el-table-column show-overflow-tooltip prop="education" label="学历" width="80" :formatter="educationFormat" sortable="custom" :sort-orders="['ascending', 'descending']" />
+          <el-table-column show-overflow-tooltip prop="nativePlace" label="籍贯" width="70" :formatter="nativePlaceFormat" />
+          <el-table-column show-overflow-tooltip prop="telePhone" label="联系电话" width="110" />
+          <el-table-column show-overflow-tooltip prop="empTypeName" label="员工类型" width="80" />
+          <el-table-column show-overflow-tooltip prop="entryDate" label="入职日期" width="110" sortable="custom" :sort-orders="['ascending', 'descending']" />
+          <el-table-column show-overflow-tooltip prop="empStatus" label="员工状态" width="80">
             <template slot-scope="{row}">
               {{ transEmpStatus(row.empStatus) }}
             </template>
           </el-table-column>
-          <el-table-column prop="entryTypeName" label="入职类型" width="80" />
+          <el-table-column prop="entryType" label="入职类型" width="120" sortable="custom" :sort-orders="['ascending', 'descending']">
+            <template slot-scope="{row}">
+              {{ transEntryType(row.entryType) }}
+            </template>
+          </el-table-column>
         </el-table>
         <pagination
           v-show="total>0"
@@ -385,11 +404,11 @@
                 <el-form-item label="招聘介绍人" prop="introducer">
                   <el-input v-model="empBaseInfoForm.introducer" />
                 </el-form-item>
-                <el-form-item label="银行名称" prop="bankName">
+                <el-form-item label="银行名称">
                   <el-input v-model="empBaseInfoForm.bankName" />
                 </el-form-item>
-                <el-form-item label="保险类型" prop="insuranceType">
-                  <el-select v-model="empBaseInfoForm.insuranceType" placeholder="请选择保险类型">
+                <el-form-item label="社保档位" prop="insuranceType">
+                  <el-select v-model="empBaseInfoForm.insuranceType" placeholder="请选择社保档位">
                     <el-option
                       v-for="dict in insuranceTypeOptions"
                       :key="dict.dicItemCode"
@@ -489,7 +508,7 @@
                     />
                   </el-select>
                 </el-form-item>
-                <el-form-item label="银行账号" prop="bankNumb">
+                <el-form-item label="银行账号">
                   <el-input v-model="empBaseInfoForm.bankNumb" />
                 </el-form-item>
                 <el-form-item label="社保电脑号" prop="socialNumb">
@@ -607,7 +626,7 @@
               <el-upload
                 ref="upload"
                 class="upload-demo"
-                action="http://120.24.23.155:8301/hr/empBaseInfo/importEmp"
+                action="http://127.0.0.1:8301/hr/empBaseInfo/importEmp"
                 accept=".xls, .xlsx, .excel"
                 :headers="headers()"
                 :file-list="fileList"
@@ -630,20 +649,21 @@
           <el-col span="24">
             <el-form-item label="离职类型" prop="dimissionType">
               <el-radio-group v-model="gbdaForm.dimissionType" @change="changeDimissionType">
-                <el-radio :label="1">正常离职</el-radio>
-                <el-radio :label="2">自动离职</el-radio>
-                <!--                <el-radio :label="3">公司劝退</el-radio>-->
+                <el-radio :label="1">合同期满</el-radio>
+                <el-radio :label="2">公司劝退</el-radio>
                 <el-radio :label="3">公司辞退</el-radio>
-                <!--                <el-radio :label="5">试用期内</el-radio>-->
+                <el-radio :label="4">自动离职</el-radio>
+                <el-radio :label="5">试用期内</el-radio>
+                <el-radio :label="6">正常离职</el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
-          <el-col v-if="selectDimissionType === 2" span="12">
+          <el-col v-if="selectDimissionType === 4" span="12">
             <el-form-item label="自离天数" prop="selfLeaveDay">
               <el-input v-model="gbdaForm.selfLeaveDay" onkeyup="value=value.replace(/[^0-9.]/g,'')" />
             </el-form-item>
           </el-col>
-          <el-col v-if="selectDimissionType === 2" span="12">
+          <el-col v-if="selectDimissionType === 4" span="12">
             <el-form-item label="报告人" prop="reporter">
               <el-input v-model="gbdaForm.reporter" />
             </el-form-item>
@@ -817,7 +837,7 @@
             <td>
               <el-checkbox label="entryDate"><span /></el-checkbox>
             </td>
-            <td>保险类型</td>
+            <td>社保档位</td>
             <td>
               <el-checkbox label="insuranceTypeName"><span /></el-checkbox>
             </td>
@@ -843,7 +863,7 @@
           <tr>
             <td>相关证件</td>
             <td>
-              <el-checkbox label="certificateList"><span /></el-checkbox>
+              <el-checkbox label="certificateListName"><span /></el-checkbox>
             </td>
             <td>紧急联系电话</td>
             <td>
@@ -852,6 +872,20 @@
             <td>员工手册</td>
             <td>
               <el-checkbox label="handbookStatusName"><span /></el-checkbox>
+            </td>
+          </tr>
+          <tr>
+            <td>入职类型</td>
+            <td>
+              <el-checkbox label="entryTypeName"><span /></el-checkbox>
+            </td>
+            <td>离职类型</td>
+            <td>
+              <el-checkbox label="dimissionTypeName"><span /></el-checkbox>
+            </td>
+            <td>编号</td>
+            <td>
+              <el-checkbox label="empNumb"><span /></el-checkbox>
             </td>
           </tr>
           <!--          <tr>-->
@@ -876,8 +910,45 @@
       :dialog-visible="dialog.isVisible"
       :title="dialog.title"
       :type="dialog.type"
+      @success="editSuccess"
       @close="editClose"
     />
+    <el-dialog title="打开档案" :visible.sync="dialogShowDkda" width="50%">
+      <el-form
+        ref="openArchivesForm"
+        :model="openArchivesForm"
+        rules="openArchivesRules"
+        label-position="right"
+        label-width="120px"
+      >
+        <el-row>
+          <el-col span="24">
+            <el-form-item label="打开类型" prop="region">
+              <el-radio-group v-model="openArchivesForm.openType">
+                <el-radio :label="20">重新入职</el-radio>
+                <el-radio :label="21">返聘</el-radio>
+              </el-radio-group>
+              (主要对已退休员工返聘)
+            </el-form-item>
+            <el-form-item label="打开日期">
+              <el-date-picker
+                v-model="openArchivesForm.openDate"
+                value-format="yyyy-MM-dd"
+                type="date"
+                placeholder="选择打开日期"
+              />
+            </el-form-item>
+            <el-form-item label="备注说明">
+              <el-input v-model="openArchivesForm.remark" type="textarea" :rows="4" />
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="showDkda(1, '')">取 消</el-button>
+        <el-button type="primary" @click="showDkda(2, 'openArchivesForm')">确 定</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -917,7 +988,8 @@
         empCardStatus: [],
         handbookStatus: [],
         entryType: [],
-        empType: []
+        empType: [],
+        certificateList: []
       }, // 查询参数
       sort: {}, // 排序
       pagination: { // 分页参数
@@ -976,9 +1048,23 @@
         modifier: '',
         delFlag: '0',
         empStatus: 0,
-        version: ''
+        version: '',
+        entryType: '20'
       },
-      ygdgForm: {},
+      ygdgForm: {
+        empIds: [],
+        empNames: [],
+        oldDeptNames: [],
+        oldJobNames: [],
+        changeType: '',
+        changeDate: '',
+        changeReason: '',
+        jobId: '',
+        newJobName: '',
+        deptId: '',
+        newDeptName: '',
+        allDeptName: ''
+      },
       gbdaForm: {
         dgryIds: '',
         dimissionType: 1,
@@ -1009,7 +1095,7 @@
           message: '长度不超过36个字符',
           trigger: 'blur'
         }],
-        insuranceType: [{ required: true, message: '请选择保险类型', trigger: 'change' }],
+        insuranceType: [{ required: true, message: '请选择社保档位', trigger: 'change' }],
         entryDate: [{ required: true, message: '请选择入职日期', trigger: 'change' }],
         seniority: [{ required: true, message: '请输入入司工龄', trigger: 'blur' }],
         archivesStatus: [{ required: true, message: '请选择档案情况', trigger: 'change' }],
@@ -1113,10 +1199,11 @@
       dialogShowYgdg: false,
       dialogShowDryg: false,
       dialogShowGbda: false,
+      dialogShowDkda: false,
       exportUrl: '',
       checkAll: false,
       isIndeterminate: false,
-      cityOptions: ['archivesNumb', 'allDeptName', 'jobName', 'empName', 'certificateNumb', 'certificateValidity', 'sexName', 'nationName', 'age', 'marriageName', 'stature', 'birthdate', 'politicsName', 'empTypeName', 'educationName', 'nativePlaceName', 'censusAddress', 'currentAddress', 'guardNumb', 'returnReceipt', 'archivesStatusName', 'bankName', 'bankNumb', 'telePhone', 'entryDate', 'insuranceTypeName', 'socialNumb', 'introducer', 'seniority', 'empCardStatusName', 'certificateList', 'urgencyPhone', 'handbookStatusName', 'family', 'empStatusName', 'dimissionDate'],
+      cityOptions: ['archivesNumb', 'allDeptName', 'jobName', 'empName', 'certificateNumb', 'certificateValidity', 'sexName', 'nationName', 'age', 'marriageName', 'stature', 'birthdate', 'politicsName', 'empTypeName', 'educationName', 'nativePlaceName', 'censusAddress', 'currentAddress', 'guardNumb', 'returnReceipt', 'archivesStatusName', 'bankName', 'bankNumb', 'telePhone', 'entryDate', 'insuranceTypeName', 'socialNumb', 'introducer', 'seniority', 'empCardStatusName', 'certificateListName', 'urgencyPhone', 'handbookStatusName', 'family', 'empStatusName', 'dimissionDate', 'entryTypeName', 'dimissionTypeName', 'empNumb'],
       checkedCities: [],
       tableData: [],
       selectDimissionType: 1,
@@ -1146,7 +1233,7 @@
       dimissionTypeOptions: [],
       ageStrOptions: [],
       sexOptions: [],
-      openArchivesForm: {}
+      openArchivesForm: { }
     }
   },
   mounted() {
@@ -1203,7 +1290,7 @@
     this.getDicts('LEAVETYPE').then(response => {
       this.leaveTypeOptions = response.data
     })
-    this.getDicts('insuranceGaers').then(response => {
+    this.getDicts('INSURANCETYPE').then(response => {
       this.insuranceGaersOptions = response.data
     })
     this.getDicts('applayStatus').then(response => {
@@ -1265,7 +1352,8 @@
         handbookStatus: [],
         baseKey: '',
         empType: [],
-        entryType: []
+        entryType: [],
+        certificateList: []
       }
       this.search()
     },
@@ -1309,6 +1397,16 @@
           return '离职'
         case '2':
           return '退休'
+      }
+    },
+    transEntryType(entryType) {
+      switch (entryType) {
+        case '20':
+          return '新入职'
+        case '21':
+          return '重新入职'
+        case '22':
+          return '返聘入职'
       }
     },
     typeFormat(row, column) {
@@ -1500,18 +1598,27 @@
       this.empBaseInfoForm.deptName = row.deptName
       this.empBaseInfoForm.empNumb = row.empNumb
       this.empBaseInfoForm.empName = row.empName
-      this.empBaseInfoForm.sex = row.sex
       this.empBaseInfoForm.JobId = row.JobId
       this.empBaseInfoForm.jobName = row.jobName
       this.empBaseInfoForm.empType = row.empType
       this.empBaseInfoForm.certificateType = row.certificateType
-      this.empBaseInfoForm.certificateNumb = row.certificateNumb
       this.empBaseInfoForm.nation = row.nation
       this.empBaseInfoForm.certificateValidity = row.certificateValidity
       this.empBaseInfoForm.marriage = row.marriage
-      this.empBaseInfoForm.age = row.age
+      this.empBaseInfoForm.certificateNumb = row.certificateNumb
+      if (!row.birthdate) {
+        var userinfo = toCardGetUserInfo(this.empBaseInfoForm.certificateNumb)
+        if (userinfo !== null) {
+          this.empBaseInfoForm.age = userinfo.age
+          this.empBaseInfoForm.birthdate = userinfo.birth
+          this.empBaseInfoForm.sex = userinfo.sex
+        }
+      } else {
+        this.empBaseInfoForm.age = row.age
+        this.empBaseInfoForm.birthdate = row.birthdate
+        this.empBaseInfoForm.sex = row.sex
+      }
       this.empBaseInfoForm.stature = row.stature
-      this.empBaseInfoForm.birthdate = row.birthdate
       this.empBaseInfoForm.politics = row.politics
       this.empBaseInfoForm.entryDate = row.entryDate
       this.empBaseInfoForm.education = row.education
@@ -1546,7 +1653,8 @@
       this.empBaseInfoForm.modifier = row.modifier
       this.empBaseInfoForm.delFlag = row.delFlag
       this.empBaseInfoForm.version = row.version
-      this.empBaseInfoImageUrl = pages.getEmpBaseInfoImage + row.empId
+      // this.empBaseInfoImageUrl = ''
+      this.empBaseInfoImageUrl = pages.getEmpBaseInfoImage + row.empId + '?t=' + parseInt(100 * Math.random())
       this.showXzyg(1)
     },
     putEmpBase(formName) {
@@ -1652,6 +1760,9 @@
           break
       }
     },
+    editSuccess() {
+      this.search()
+    },
     showYgdg(operate, formName) {
       switch (operate) {
         case 0:
@@ -1670,7 +1781,7 @@
               var data = selection[i]
               ids.push(data.empId)
               names.push(data.empName)
-              deptNames.push(data.deptName)
+              deptNames.push(data.allDeptName)
               jobNames.push(data.jobName)
             }
             this.ygdgForm = {
@@ -1720,7 +1831,9 @@
       this.empBaseInfoForm.nativePlace = item.code
     },
     deptNameSelect(node) {
+      this.ygdgForm.deptId = node.deptId
       this.ygdgForm.newDeptName = node.label
+      this.ygdgForm.allDeptName = node.allDeptName
     },
     querySearchJob(queryString, cb) {
       const restaurants = this.restaurJob
@@ -1763,7 +1876,6 @@
     },
     changeDimissionType(value) {
       this.selectDimissionType = value
-      console.log('值:' + value)
     },
     validSelfLeaveDay(rule, value, callback) {
       const type = this.gbdaForm.dimissionType
@@ -1951,9 +2063,16 @@
     },
     selectAllEntryType(val) {
       if (val) {
-        this.queryParams.entryType = [4, 5, 6]
+        this.queryParams.entryType = [20, 21, 22]
       } else {
         this.queryParams.entryType = []
+      }
+    },
+    selectAllCertificateList(val) {
+      if (val) {
+        this.queryParams.certificateList = this.dicListToArr(this.certificateListOptions)
+      } else {
+        this.queryParams.certificateList = []
       }
     },
     headers() {
@@ -1982,7 +2101,31 @@
                 this.editEmpBase(r.data.data)
               })
             } else {
-              this.$confirm('该员工已离职,是否重新打开档案?', '提示', {
+              let tempName
+              switch (r.data.data.dimissionType) {
+                case '1':
+                  tempName = '合同期满'
+                  break
+                case '2':
+                  tempName = '公司劝退'
+                  break
+                case '3':
+                  tempName = '公司辞退'
+                  break
+                case '4':
+                  tempName = '自动离职'
+                  break
+                case '5':
+                  tempName = '试用期内'
+                  break
+                case '6':
+                  tempName = '正常离职'
+                  break
+              }
+              var msg = '该员工已存在,' + tempName + '状态!\n\r'
+              msg += r.data.data.remark + '\n\r'
+              msg += '由于' + r.data.data.empName + '已离职,是否重新打开档案?'
+              this.$confirm(msg, '提示', {
                 confirmButtonText: '确定',
                 cancelButtonText: '取消',
                 type: 'warning'
@@ -1991,16 +2134,17 @@
                   empId: r.data.data.empId,
                   empName: r.data.data.empName,
                   certificateNumb: r.data.data.certificateNumb,
-                  openType: 2,
+                  openType: 20,
                   openDate: this.getDateString(),
                   remark: ''
                 }
-                this.$post('hr/empOpenArchives', { ...this.openArchivesForm }).then(() => {
-                  this.$message({
-                    message: this.$t('员工档案打开成功'),
-                    type: 'success'
-                  })
-                })
+                this.dialogShowDkda = true
+                // this.$post('hr/empOpenArchives', { ...this.openArchivesForm }).then(() => {
+                //   this.$message({
+                //     message: this.$t('员工档案打开成功'),
+                //     type: 'success'
+                //   })
+                // })
               })
             }
           }
@@ -2020,8 +2164,57 @@
       this.sort.field = val.prop
       this.sort.order = val.order
       this.search()
+    },
+    showDkda(operate, formName) {
+      switch (operate) {
+        // case 0:
+        //   var selection = this.$refs.multipleTable.store.states.selection
+        //   if (selection.length === 1) {
+        //     var id = selection[0].empId
+        //     var name = selection[0].empName
+        //     var number = selection[0].certificateNumb
+        //     const nowDate = new Date()
+        //     const year = nowDate.getFullYear()
+        //     const month = nowDate.getMonth() + 1
+        //     const day = nowDate.getDate()
+        //     this.baseicInformationForm = {
+        //       empId: id,
+        //       empName: name,
+        //       certificateNumb: number,
+        //       openType: 2,
+        //       openDate: year + '-' + month + '-' + day,
+        //       remark: ''
+        //     }
+        //     this.dialogShowDkda = true
+        //   } else {
+        //     this.$message({
+        //       message: '请选中一个要打开档案的人员',
+        //       type: 'error'
+        //     })
+        //   }
+        //   break
+        case 1:
+          this.dialogShowDkda = false
+          break
+        case 2:
+          this.$refs[formName].validate((valid) => {
+            if (valid) {
+              this.$post('hr/empOpenArchives', { ...this.openArchivesForm }).then(() => {
+                this.dialogShowDkda = false
+                this.$message({
+                  message: this.$t('员工档案打开成功'),
+                  type: 'success'
+                })
+                this.fetch({
+                  ...this.queryParams,
+                  ...this.sort
+                })
+              })
+            }
+          })
+          break
+      }
     }
-
   }
 }
 </script>

--
Gitblit v1.8.0