From 6c0b67172bc799fa4d3f9891ce9da5261a3de43f Mon Sep 17 00:00:00 2001
From: Alan <1124498879@qq.com>
Date: 星期五, 19 二月 2021 17:45:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/views/user/inemployees.vue | 1198 +++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 833 insertions(+), 365 deletions(-)
diff --git a/src/views/user/inemployees.vue b/src/views/user/inemployees.vue
index 99d914b..4f3aaa0 100644
--- a/src/views/user/inemployees.vue
+++ b/src/views/user/inemployees.vue
@@ -14,26 +14,35 @@
</el-row>
<el-row>
<el-col :span="3">员工编号:
- <el-input v-model="queryParams.empNumb" placeholder="请输入内容" style="width:80px" />
+ <el-input v-model="queryParams.empNumb" size="small" maxlength="20" style="width:85px" />
</el-col>
<el-col :span="3">姓名:
- <el-input v-model="queryParams.empName" placeholder="请输入内容" style="width:80px" />
+ <el-input v-model="queryParams.empName" size="small" maxlength="10" style="width:110px" />
</el-col>
- <el-col :span="3">身份证号:
- <el-input v-model="queryParams.certificateNumb" placeholder="请输入内容" style="width:80px" />
+ <el-col :span="4">身份证号:
+ <el-input v-model="queryParams.certificateNumb" size="small" maxlength="18" style="width:140px" />
</el-col>
<el-col :span="3">护卫点:
- <el-input v-model="queryParams.deptName" placeholder="请输入内容" style="width:80px" />
+ <el-input v-model="queryParams.deptName" size="small" maxlength="20" style="width:100px" />
</el-col>
- <el-col :span="3">入职日期:从
- <el-input v-model="queryParams.entryDateBegin" placeholder="请输入内容" style="width:80px" />
+ <el-col :span="8">入职日期:
+ <el-date-picker
+ v-model="queryParams.entryDateStr"
+ size="small"
+ type="daterange"
+ align="right"
+ unlink-panels
+ range-separator="至"
+ value-format="yyyy-MM-dd"
+ start-placeholder="开始日期"
+ end-placeholder="结束日期"
+ :picker-options="pickerOptions"
+ style="width: 400px;"
+ />
</el-col>
- <el-col :span="3">到
- <el-input v-model="queryParams.entryDateEnd" placeholder="请输入内容" style="width:80px" />
- </el-col>
- <el-col :span="6">
- <el-button type="primary" @click="search">查询</el-button>
- <el-button type="danger">重置</el-button>
+ <el-col :span="3">
+ <el-button size="mini" class="hr-but-all" type="primary" @click="search">查询</el-button>
+ <el-button size="mini" class="hr-but" type="danger" @click="resetSearch">重置</el-button>
</el-col>
</el-row>
<el-row>
@@ -43,90 +52,107 @@
<tr>
<td>性别:</td>
<td>
- <el-radio-group v-model="radio">
- <el-radio :label="3">全部</el-radio>
- <el-radio :label="6">男性</el-radio>
- <el-radio :label="9">女性</el-radio>
+ <el-radio-group v-model="queryParams.sex">
+ <el-radio label="">全部</el-radio>
+ <el-radio label="1">男性</el-radio>
+ <el-radio label="2">女性</el-radio>
</el-radio-group>
</td>
</tr>
<tr>
<td>最高学历:</td>
<td>
- <el-radio-group v-model="radio">
- <el-radio :label="3">全部</el-radio>
- <el-radio :label="6">初中</el-radio>
- <el-radio :label="9">高中</el-radio>
- <el-radio :label="9">大专</el-radio>
- <el-radio :label="9">本科</el-radio>
- <el-radio :label="9">硕士</el-radio>
- <el-radio :label="9">博士</el-radio>
+ <el-radio-group v-model="queryParams.education">
+ <el-radio label="">全部</el-radio>
+ <el-radio label="91">无学历</el-radio>
+ <el-radio label="81">小学</el-radio>
+ <el-radio label="71">初中</el-radio>
+ <el-radio label="61">高中</el-radio>
+ <el-radio label="42">中技</el-radio>
+ <el-radio label="41">中专</el-radio>
+ <el-radio label="31">大学专科</el-radio>
+ <el-radio label="21">大学本科</el-radio>
+ <el-radio label="11">硕士</el-radio>
+ <el-radio label="10">博士</el-radio>
</el-radio-group>
</td>
</tr>
<tr>
<td>政治面貌:</td>
<td>
- <el-radio-group v-model="radio">
- <el-radio :label="3">全部</el-radio>
- <el-radio :label="6">党员</el-radio>
- <el-radio :label="9">团员</el-radio>
- <el-radio :label="9">群众</el-radio>
+ <el-radio-group v-model="queryParams.politics">
+ <el-radio label="">全部</el-radio>
+ <el-radio label="01">中共党员</el-radio>
+ <el-radio label="02">预备党员</el-radio>
+ <el-radio label="03">共青团员</el-radio>
+ <el-radio label="04">民革会员</el-radio>
+ <el-radio label="05">民盟盟员</el-radio>
+ <el-radio label="06">民建会员</el-radio>
+ <el-radio label="07">民进会员</el-radio>
+ <el-radio label="08">农工党员</el-radio>
+ <el-radio label="09">致公党员</el-radio>
+ <el-radio label="10">九三社员</el-radio>
+ <el-radio label="11">台盟盟员</el-radio>
+ <el-radio label="12">民主人士</el-radio>
+ <el-radio label="13">群众</el-radio>
</el-radio-group>
</td>
</tr>
<tr>
<td>年龄:</td>
<td>
- <el-radio-group v-model="radio">
- <el-radio :label="3">全部</el-radio>
- <el-radio :label="6">18-29</el-radio>
- <el-radio :label="9">30-39</el-radio>
- <el-radio :label="9">40-49</el-radio>
- <el-radio :label="9">50-59</el-radio>
- <el-radio :label="9">60-69</el-radio>
- <el-radio :label="9">69及以上</el-radio>
+ <el-radio-group v-model="queryParams.ageStr">
+ <el-radio label="">全部</el-radio>
+ <el-radio label="18-29">18-29</el-radio>
+ <el-radio label="30-39">30-39</el-radio>
+ <el-radio label="40-49">40-49</el-radio>
+ <el-radio label="50-59">50-59</el-radio>
+ <el-radio label="60-69">60-69</el-radio>
+ <el-radio label="69-999">69及以上</el-radio>
</el-radio-group>
</td>
</tr>
<tr>
<td>档案情况:</td>
<td>
- <el-radio-group v-model="radio">
- <el-radio :label="3">全部</el-radio>
- <el-radio :label="6">已移交</el-radio>
- <el-radio :label="9">未移交</el-radio>
+ <el-radio-group v-model="queryParams.archivesStatus">
+ <el-radio label="">全部</el-radio>
+ <el-radio label="0">已移交</el-radio>
+ <el-radio label="1">未移交</el-radio>
</el-radio-group>
</td>
</tr>
<tr>
<td>保险类型:</td>
<td>
- <el-radio-group v-model="radio">
- <el-radio :label="3">全部</el-radio>
- <el-radio :label="6">深户(五险一档)</el-radio>
- <el-radio :label="6">非深户(五险一档)</el-radio>
- <el-radio :label="6">非深户(五险二档)</el-radio>
- <el-radio :label="6">非深户(五险三档)</el-radio>
- <el-radio :label="6">非深户(四险三档)</el-radio>
+ <el-radio-group v-model="queryParams.insuranceType">
+ <el-radio label="">全部</el-radio>
+ <el-radio :label="1">深户(五险一档)</el-radio>
+ <el-radio :label="2">非深户(五险一档)</el-radio>
+ <el-radio :label="3">非深户(五险二档)</el-radio>
+ <el-radio :label="4">非深户(五险三档)</el-radio>
+ <el-radio :label="5">非深户(四险三档)</el-radio>
</el-radio-group>
</td>
</tr>
<tr>
<td>员工状态:</td>
<td>
- <el-radio-group v-model="radio">
- <el-radio :label="3">全部</el-radio>
- <el-radio :label="6">在职</el-radio>
+ <el-radio-group v-model="queryParams.empStatus">
+ <el-radio label="">全部</el-radio>
+ <el-radio :label="1">在职</el-radio>
+ <el-radio :label="2">正常离职</el-radio>
+ <el-radio :label="3">自动离职</el-radio>
+ <el-radio :label="4">公司辞退</el-radio>
</el-radio-group>
</td>
</tr>
<tr>
<td>员工手册:</td>
<td>
- <el-radio-group v-model="radio">
- <el-radio :label="3">全部</el-radio>
- <el-radio :label="6">未发</el-radio>
+ <el-radio-group v-model="queryParams.handbookStatus">
+ <el-radio label="3">全部</el-radio>
+ <el-radio :label="0">未发</el-radio>
<el-radio :label="9">已发</el-radio>
</el-radio-group>
</td>
@@ -134,10 +160,10 @@
<tr>
<td>工作证:</td>
<td>
- <el-radio-group v-model="radio">
- <el-radio :label="3">全部</el-radio>
- <el-radio :label="6">未发</el-radio>
- <el-radio :label="9">已发</el-radio>
+ <el-radio-group v-model="queryParams.empCardStatus">
+ <el-radio label="">全部</el-radio>
+ <el-radio :label="0">未发</el-radio>
+ <el-radio :label="1">已发</el-radio>
</el-radio-group>
</td>
</tr>
@@ -150,7 +176,7 @@
<el-main>
<el-row>
<el-col :span="24">
- <el-button type="danger" @click="showXzyg">新增员工</el-button>
+ <el-button type="danger" @click="showXzyg(0)">新增员工</el-button>
<el-button type="primary" @click="delEmp">删除员工</el-button>
<el-button type="danger" @click="showYgdg(0)">员工调岗</el-button>
<el-button type="danger" @click="showDryg(0)">导入员工</el-button>
@@ -175,7 +201,7 @@
<el-table-column prop="sexName" label="性别" width="50" />
<el-table-column prop="age" label="年龄" />
<el-table-column prop="educationName" label="最高学历" width="100" />
- <el-table-column prop="censusAddress" label="籍贯" />
+ <el-table-column prop="nativePlaceName" label="籍贯" />
<el-table-column prop="telePhone" label="联系电话" />
<el-table-column prop="entryDate" label="入职日期" width="100" />
<el-table-column prop="delFlag" label="员工状态">
@@ -195,16 +221,22 @@
</el-container>
</el-container>
<el-dialog title="新增员工" :visible.sync="dialogShowXzyg" width="50%">
- <el-form ref="empBaseInfoForm" :model="empBaseInfoForm" :rules="rules" label-position="right" label-width="120px">
+ <el-form
+ ref="empBaseInfoForm"
+ :model="empBaseInfoForm"
+ :rules="empBaseInfoRules"
+ label-position="right"
+ label-width="120px"
+ >
<el-row>
<el-col :span="12">
- <el-form-item label="档案号">
+ <el-form-item label="档案号" prop="archivesNumb">
<el-input v-model="empBaseInfoForm.archivesNumb" />
</el-form-item>
<el-form-item label="员工编号" prop="empNumb">
<el-input v-model="empBaseInfoForm.empNumb" />
</el-form-item>
- <el-form-item label="身份证号码">
+ <el-form-item label="身份证号码" prop="certificateNumb">
<el-input
v-model="empBaseInfoForm.certificateNumb"
@input="generateUserInfo(0,empBaseInfoForm.certificateNumb)"
@@ -216,7 +248,7 @@
<el-option label="临时工" value="2" />
</el-select>
</el-form-item>
- <el-form-item label="民族">
+ <el-form-item label="民族" prop="nation">
<el-select v-model="empBaseInfoForm.nation" placeholder="请选择民族">
<el-option label="汉族" value="01" />
<el-option label="蒙古族" value="02" />
@@ -278,7 +310,7 @@
<el-option label="外国民族" value="98" />
</el-select>
</el-form-item>
- <el-form-item label="婚姻状态">
+ <el-form-item label="婚姻状态" prop="marriage">
<el-select v-model="empBaseInfoForm.marriage" placeholder="请选择婚姻状态">
<el-option label="未婚" value="1" />
<el-option label="已婚" value="2" />
@@ -288,10 +320,10 @@
<el-option label="其它" value="9" />
</el-select>
</el-form-item>
- <el-form-item label="身高(cm)">
+ <el-form-item label="身高(cm)" prop="stature">
<el-input v-model="empBaseInfoForm.stature" />
</el-form-item>
- <el-form-item label="政治面貌">
+ <el-form-item label="政治面貌" prop="politics">
<el-select v-model="empBaseInfoForm.politics" placeholder="请选择政治面貌">
<el-option label="中共党员" value="01" />
<el-option label="预备党员" value="02" />
@@ -308,7 +340,7 @@
<el-option label="群众" value="13" />
</el-select>
</el-form-item>
- <el-form-item label="最高学历">
+ <el-form-item label="最高学历" prop="education">
<el-select v-model="empBaseInfoForm.education" placeholder="请选择最高学历">
<el-option label="博士" value="10" />
<el-option label="硕士" value="11" />
@@ -322,28 +354,28 @@
<el-option label="无学历" value="91" />
</el-select>
</el-form-item>
- <el-form-item label="籍贯">
+ <el-form-item label="籍贯" prop="nativePlaceName">
<el-autocomplete
v-model="empBaseInfoForm.nativePlaceName"
class="inline-input"
:fetch-suggestions="querySearch"
- placeholder="请输入籍贯"
+ placeholder="请选择籍贯"
@select="placeNameSelect"
/>
</el-form-item>
- <el-form-item label="现住址">
+ <el-form-item label="现住址" prop="currentAddress">
<el-input v-model="empBaseInfoForm.currentAddress" />
</el-form-item>
- <el-form-item label="电话号码">
+ <el-form-item label="电话号码" prop="telePhone">
<el-input v-model="empBaseInfoForm.telePhone" />
</el-form-item>
- <el-form-item label="招聘介绍人">
+ <el-form-item label="招聘介绍人" prop="introducer">
<el-input v-model="empBaseInfoForm.introducer" />
</el-form-item>
- <el-form-item label="银行名称">
+ <el-form-item label="银行名称" prop="bankName">
<el-input v-model="empBaseInfoForm.bankName" />
</el-form-item>
- <el-form-item label="保险类型">
+ <el-form-item label="保险类型" prop="insuranceType">
<el-select v-model="empBaseInfoForm.insuranceType" placeholder="请选择保险类型">
<el-option label="(深户)五险一档" value="1" />
<el-option label="(非深户)五险一档" value="2" />
@@ -352,10 +384,10 @@
<el-option label="(非深户)四险一档" value="5" />
</el-select>
</el-form-item>
- <el-form-item label="家庭成员及关系">
+ <el-form-item label="家庭成员及关系" prop="family">
<el-input v-model="empBaseInfoForm.family" />
</el-form-item>
- <el-form-item label="紧急联系电话">
+ <el-form-item label="紧急联系电话" prop="urgencyPhone">
<el-input v-model="empBaseInfoForm.urgencyPhone" />
</el-form-item>
</el-col>
@@ -388,13 +420,18 @@
<el-option label="女" value="2" />
</el-select>
</el-form-item>
- <el-form-item label="身份证有效期">
- <el-input v-model="empBaseInfoForm.certificateValidity" />
+ <el-form-item label="身份证有效期" prop="certificateValidity">
+ <el-date-picker
+ v-model="empBaseInfoForm.certificateValidity"
+ type="date"
+ value-format="yyyy-MM-dd"
+ placeholder="选择日期"
+ />
</el-form-item>
- <el-form-item label="年龄">
+ <el-form-item label="年龄" prop="age">
<el-input v-model="empBaseInfoForm.age" />
</el-form-item>
- <el-form-item label="出生日期">
+ <el-form-item label="出生日期" prop="birthdate">
<el-date-picker
v-model="empBaseInfoForm.birthdate"
type="date"
@@ -402,36 +439,37 @@
placeholder="选择日期"
/>
</el-form-item>
- <el-form-item label="入职日期">
+ <el-form-item label="入职日期" prop="entryDate">
<el-date-picker
v-model="empBaseInfoForm.entryDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
+ @input="calculateSeniority"
/>
</el-form-item>
- <el-form-item label="入司工龄">
+ <el-form-item label="入司工龄" prop="seniority">
<el-input v-model="empBaseInfoForm.seniority" />
</el-form-item>
- <el-form-item label="户籍地址">
+ <el-form-item label="户籍地址" prop="censusAddress">
<el-input v-model="empBaseInfoForm.censusAddress" />
</el-form-item>
- <el-form-item label="保安员证号">
+ <el-form-item label="保安员证号" prop="guardNumb">
<el-input v-model="empBaseInfoForm.guardNumb" />
</el-form-item>
- <el-form-item label="保安员回执">
+ <el-form-item label="保安员回执" prop="returnReceipt">
<el-input v-model="empBaseInfoForm.returnReceipt" />
</el-form-item>
- <el-form-item label="档案情况">
+ <el-form-item label="档案情况" prop="archivesStatus">
<el-select v-model="empBaseInfoForm.archivesStatus" placeholder="请选择档案情况">
<el-option label="未移交" value="0" />
<el-option label="已移交" value="1" />
</el-select>
</el-form-item>
- <el-form-item label="银行账号">
+ <el-form-item label="银行账号" prop="bankNumb">
<el-input v-model="empBaseInfoForm.bankNumb" />
</el-form-item>
- <el-form-item label="社保电脑号">
+ <el-form-item label="社保电脑号" prop="socialNumb">
<el-input v-model="empBaseInfoForm.socialNumb" />
</el-form-item>
<el-form-item label="员工手册">
@@ -440,7 +478,7 @@
<el-option label="已发" value="1" />
</el-select>
</el-form-item>
- <el-form-item label="工作证">
+ <el-form-item label="工作证" prop="empCardStatus">
<el-select v-model="empBaseInfoForm.empCardStatus" placeholder="请选择工作证">
<el-option label="未发" value="0" />
<el-option label="已发" value="1" />
@@ -448,7 +486,7 @@
</el-form-item>
</el-col>
<el-col :span="24">
- <el-form-item label="相关证件">
+ <el-form-item label="相关证件" prop="certificateList">
<el-select v-model="empBaseInfoForm.certificateList" placeholder="请选择相关证件">
<el-option label="高中毕业证" value="1" />
<el-option label="专科毕业证" value="2" />
@@ -1141,14 +1179,13 @@
</el-container>
</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
@@ -1158,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%">
@@ -1199,14 +1237,16 @@
<el-row>
<el-col span="24">
<el-form-item label="员工模板下载" prop="region">
- <a href="#" style="color: #3A8EE6;">员工信息.xlxs</a>
+ <a href="/员工信息.xls" target="_blank" style="color: #3A8EE6;">员工信息.xlxs</a>
<span style="margin-left: 100px;">点击下载</span>
</el-form-item>
<el-form-item label="导入员工">
<el-upload
ref="upload"
class="upload-demo"
- action="https://jsonplaceholder.typicode.com/posts/"
+ action="hr/empBaseInfo/importEmp"
+ accept=".xls, .xlsx, .excel"
+ :headers="headers()"
:file-list="fileList"
:auto-upload="false"
>
@@ -1222,11 +1262,11 @@
</div>
</el-dialog>
<el-dialog title="关闭档案" :visible.sync="dialogShowGbda" width="50%">
- <el-form :model="gbdaForm" label-position="right" label-width="120px">
+ <el-form ref="gbdaForm" :model="gbdaForm" :rules="gbdaRules" label-position="right" label-width="120px">
<el-row>
<el-col span="24">
- <el-form-item label="离职类型" prop="region">
- <el-radio-group v-model="gbdaForm.lzlx">
+ <el-form-item label="离职类型" prop="dimissionType">
+ <el-radio-group v-model="gbdaForm.dimissionType">
<el-radio :label="1">正常离职</el-radio>
<el-radio :label="2">自动离职</el-radio>
<el-radio :label="3">公司劝退</el-radio>
@@ -1234,127 +1274,211 @@
<el-radio :label="5">试用期内</el-radio>
</el-radio-group>
</el-form-item>
- <el-form-item label="关闭日期">
+ </el-col>
+ <el-col 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 span="12">
+ <el-form-item label="报告人" prop="reporter">
+ <el-input v-model="gbdaForm.reporter" />
+ </el-form-item>
+ </el-col>
+ <el-col span="24">
+ <el-form-item label="关闭日期" prop="dimissionDate">
<el-date-picker
- v-model="gbdaForm.gbrq"
+ v-model="gbdaForm.dimissionDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
/>
</el-form-item>
- <el-form-item label="备注说明">
- <el-input v-model="gbdaForm.bzsm" type="textarea" :rows="4" />
+ <el-form-item label="备注说明" prop="remark">
+ <el-input v-model="gbdaForm.remark" type="textarea" :rows="4" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
- <el-button @click="showGbda(1)">取 消</el-button>
- <el-button type="primary" @click="showGbda(2)">确 定</el-button>
+ <el-button @click="showGbda(1,'')">取 消</el-button>
+ <el-button type="primary" @click="showGbda(2,'gbdaForm')">确 定</el-button>
</div>
</el-dialog>
-
<el-dialog title="导出员工 请勾选需要导出的字段" :visible.sync="dialogShowDcyg" width="40%">
<table id="dcygTable" width="100%">
<tr>
- <td colspan="6" style="text-align: left;"><el-checkbox /> 全部字段</td>
+ <td colspan="6" style="text-align: left;">
+ <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange" />
+ 全部字段
+ </td>
</tr>
- <tr>
- <td>档案号</td>
- <td><el-checkbox /></td>
- <td>姓名</td>
- <td><el-checkbox /></td>
- <td>性别</td>
- <td><el-checkbox /></td>
- </tr>
- <tr>
- <td>部门(护卫点)</td>
- <td><el-checkbox /></td>
- <td>所属岗位</td>
- <td><el-checkbox /></td>
- <td>员工类别</td>
- <td><el-checkbox /></td>
- </tr>
- <tr>
- <td>民族</td>
- <td><el-checkbox /></td>
- <td>身份证号码</td>
- <td><el-checkbox /></td>
- <td>年龄</td>
- <td><el-checkbox /></td>
- </tr>
- <tr>
- <td>婚姻状况</td>
- <td><el-checkbox /></td>
- <td>身份证有效期</td>
- <td><el-checkbox /></td>
- <td>身高</td>
- <td><el-checkbox /></td>
- </tr>
- <tr>
- <td>政治面貌</td>
- <td><el-checkbox /></td>
- <td>出生日期</td>
- <td><el-checkbox /></td>
- <td>最高学历</td>
- <td><el-checkbox /></td>
- </tr>
- <tr>
- <td>籍贯</td>
- <td><el-checkbox /></td>
- <td>户籍地址</td>
- <td><el-checkbox /></td>
- <td>户籍地址</td>
- <td><el-checkbox /></td>
- </tr>
- <tr>
- <td>保安员证号</td>
- <td><el-checkbox /></td>
- <td>保安员回执</td>
- <td><el-checkbox /></td>
- <td>档案情况</td>
- <td><el-checkbox /></td>
- </tr>
- <tr>
- <td>银行名称</td>
- <td><el-checkbox /></td>
- <td>银行账号</td>
- <td><el-checkbox /></td>
- <td>电话号码</td>
- <td><el-checkbox /></td>
- </tr>
- <tr>
- <td>入职日期</td>
- <td><el-checkbox /></td>
- <td>保险类型</td>
- <td><el-checkbox /></td>
- <td>社保电脑号</td>
- <td><el-checkbox /></td>
- </tr>
- <tr>
- <td>招聘介绍人</td>
- <td><el-checkbox /></td>
- <td>入司工龄</td>
- <td><el-checkbox /></td>
- <td>工作证</td>
- <td><el-checkbox /></td>
- </tr>
- <tr>
- <td>相关证件</td>
- <td><el-checkbox /></td>
- <td>紧急联系电话</td>
- <td><el-checkbox /></td>
- <td>员工手册</td>
- <td><el-checkbox /></td>
- </tr>
- <tr>
- <td>家庭成员及关系</td>
- <td><el-checkbox /></td>
- <td />
- <td />
- <td />
- <td />
- </tr>
+ <el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange">
+ <tr>
+ <td>档案号</td>
+ <td>
+ <el-checkbox label="archivesNumb"><span /></el-checkbox>
+ </td>
+ <td>姓名</td>
+ <td>
+ <el-checkbox label="empName"><span /></el-checkbox>
+ </td>
+ <td>性别</td>
+ <td>
+ <el-checkbox label="sex"><span /></el-checkbox>
+ </td>
+ </tr>
+ <tr>
+ <td>部门(护卫点)</td>
+ <td>
+ <el-checkbox label="deptName"><span /></el-checkbox>
+ </td>
+ <td>所属岗位</td>
+ <td>
+ <el-checkbox label="jobName"><span /></el-checkbox>
+ </td>
+ <td>员工类别</td>
+ <td>
+ <el-checkbox label="empType"><span /></el-checkbox>
+ </td>
+ </tr>
+ <tr>
+ <td>民族</td>
+ <td>
+ <el-checkbox label="nation"><span /></el-checkbox>
+ </td>
+ <td>身份证号码</td>
+ <td>
+ <el-checkbox label="certificateNumb"><span /></el-checkbox>
+ </td>
+ <td>年龄</td>
+ <td>
+ <el-checkbox label="age"><span /></el-checkbox>
+ </td>
+ </tr>
+ <tr>
+ <td>婚姻状况</td>
+ <td>
+ <el-checkbox label="marriage"><span /></el-checkbox>
+ </td>
+ <td>身份证有效期</td>
+ <td>
+ <el-checkbox label="certificateValidity"><span /></el-checkbox>
+ </td>
+ <td>身高</td>
+ <td>
+ <el-checkbox label="stature"><span /></el-checkbox>
+ </td>
+ </tr>
+ <tr>
+ <td>政治面貌</td>
+ <td>
+ <el-checkbox label="politics"><span /></el-checkbox>
+ </td>
+ <td>出生日期</td>
+ <td>
+ <el-checkbox label="birthdate"><span /></el-checkbox>
+ </td>
+ <td>最高学历</td>
+ <td>
+ <el-checkbox label="education"><span /></el-checkbox>
+ </td>
+ </tr>
+ <tr>
+ <td>籍贯</td>
+ <td>
+ <el-checkbox label="nativePlace"><span /></el-checkbox>
+ </td>
+ <td>户籍地址</td>
+ <td>
+ <el-checkbox label="censusAddress"><span /></el-checkbox>
+ </td>
+ <td>现住址</td>
+ <td>
+ <el-checkbox label="currentAddress"><span /></el-checkbox>
+ </td>
+ </tr>
+ <tr>
+ <td>保安员证号</td>
+ <td>
+ <el-checkbox label="guardNumb"><span /></el-checkbox>
+ </td>
+ <td>保安员回执</td>
+ <td>
+ <el-checkbox label="returnReceipt"><span /></el-checkbox>
+ </td>
+ <td>档案情况</td>
+ <td>
+ <el-checkbox label="archivesStatus"><span /></el-checkbox>
+ </td>
+ </tr>
+ <tr>
+ <td>银行名称</td>
+ <td>
+ <el-checkbox label="bankName"><span /></el-checkbox>
+ </td>
+ <td>银行账号</td>
+ <td>
+ <el-checkbox label="bankNumb"><span /></el-checkbox>
+ </td>
+ <td>电话号码</td>
+ <td>
+ <el-checkbox label="telePhone"><span /></el-checkbox>
+ </td>
+ </tr>
+ <tr>
+ <td>入职日期</td>
+ <td>
+ <el-checkbox label="entryDate"><span /></el-checkbox>
+ </td>
+ <td>保险类型</td>
+ <td>
+ <el-checkbox label="insuranceType"><span /></el-checkbox>
+ </td>
+ <td>社保电脑号</td>
+ <td>
+ <el-checkbox label="socialNumb"><span /></el-checkbox>
+ </td>
+ </tr>
+ <tr>
+ <td>招聘介绍人</td>
+ <td>
+ <el-checkbox label="introducer"><span /></el-checkbox>
+ </td>
+ <td>入司工龄</td>
+ <td>
+ <el-checkbox label="seniority"><span /></el-checkbox>
+ </td>
+ <td>工作证</td>
+ <td>
+ <el-checkbox label="empCardStatus"><span /></el-checkbox>
+ </td>
+ </tr>
+ <tr>
+ <td>相关证件</td>
+ <td>
+ <el-checkbox label="certificateList"><span /></el-checkbox>
+ </td>
+ <td>紧急联系电话</td>
+ <td>
+ <el-checkbox label="urgencyPhone"><span /></el-checkbox>
+ </td>
+ <td>员工手册</td>
+ <td>
+ <el-checkbox label="handbookStatus"><span /></el-checkbox>
+ </td>
+ </tr>
+ <tr>
+ <td>家庭成员及关系</td>
+ <td>
+ <el-checkbox label="family"><span /></el-checkbox>
+ </td>
+ <td />
+ <td />
+ <td />
+ <td />
+ </tr>
+ </el-checkbox-group>
</table>
<div slot="footer" class="dialog-footer">
<el-button @click="showDcyg(1)">取 消</el-button>
@@ -1364,9 +1488,12 @@
</div>
</template>
<script>
+import { getToken } from '@/utils/auth'
import Pagination from '@/components/Pagination'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
+import { calculateSeniority, toCardGetUserInfo } from '@/utils/myUtil'
+
export default {
components: {
Pagination, Treeselect
@@ -1374,77 +1501,168 @@
data() {
return {
total: 0, // 总数量
- queryParams: {}, // 查询参数
+ queryParams: {
+ empNumb: ''
+ }, // 查询参数
sort: {}, // 排序
pagination: { // 分页参数
- size: 5,
+ size: 20,
num: 1
},
- empBaseInfoForm: {},
+ empBaseInfoForm: {
+ empId: '',
+ customerId: '',
+ archivesNumb: '',
+ deptId: '',
+ deptName: '',
+ empNumb: '',
+ empName: '',
+ sex: '1',
+ JobId: '',
+ jobName: '',
+ empType: '1',
+ certificateType: '',
+ certificateNumb: '',
+ nation: '01',
+ certificateValidity: '',
+ marriage: '1',
+ age: '',
+ stature: '',
+ birthdate: '',
+ politics: '13',
+ entryDate: '',
+ education: '61',
+ seniority: '',
+ nativePlace: '',
+ nativePlaceName: '',
+ censusAddress: '',
+ currentAddress: '',
+ guardNumb: '',
+ telePhone: '',
+ returnReceipt: '',
+ introducer: '',
+ archivesStatus: '0',
+ bankName: '',
+ bankNumb: '',
+ InsuranceType: '',
+ socialNumb: '',
+ family: '',
+ handbookStatus: '0',
+ urgencyPhone: '',
+ empCardStatus: '0',
+ certificateList: '',
+ createTime: '',
+ creator: '',
+ modifyTime: '',
+ modifier: '',
+ delFlag: '0',
+ empStatus: 0,
+ version: ''
+ },
ygdgForm: {},
- gbdaForm: {},
+ gbdaForm: {
+ dgryIds: '',
+ dimissionType: '1',
+ dimissionDate: new Date(),
+ remark: ''
+ },
depts: [],
fileList: [],
- rules: {
- archivesNumb: [{ required: true, message: '请输入档案号', trigger: 'blur' }],
+ empBaseInfoRules: {
+ archivesNumb: [{ required: true, message: '请输入档案号', trigger: 'blur' }, {
+ max: 20,
+ message: this.$t('rules.noMoreThan20'),
+ trigger: 'blur'
+ }],
empName: [{ required: true, message: '请输入员工姓名', trigger: 'blur' },
- { min: 2, max: 50, message: '长度在 2 到 50 个字符', trigger: 'blur' }],
+ { min: 2, max: 32, message: '长度不超过32个字符', trigger: 'blur' }],
empNumb: [{ required: true, message: '请输入员工编号', trigger: 'blur' },
- { min: 2, max: 50, message: '长度在 2 到 50 个字符', trigger: 'blur' }],
+ { min: 2, max: 20, message: this.$t('rules.noMoreThan20'), trigger: 'blur' }],
deptName: [
{ required: true, message: '请选择护卫点', trigger: 'input' }
],
- certificateNumb: [{ required: true, message: '请输入身份证号', trigger: 'blur' }],
+ certificateNumb: [{ required: true, message: '请输入身份证号', trigger: 'blur' }, {
+ min: 15,
+ max: 18,
+ message: '身份证长度为15-18位',
+ trigger: 'blur'
+ }],
jobName: [{ required: true, message: '请选择岗位', trigger: 'change' }],
nativePlaceName: [{ required: true, message: '请选择籍贯', trigger: 'change' }],
- bankName: [{ required: true, message: '请输入银行名称', trigger: 'blur' }],
+ bankName: [{ required: true, message: '请输入银行名称', trigger: 'blur' }, {
+ max: 36,
+ message: '长度不超过36个字符',
+ trigger: 'blur'
+ }],
insuranceType: [{ required: true, message: '请选择保险类型', trigger: 'change' }],
entryDate: [{ required: true, message: '请选择入职日期', trigger: 'change' }],
seniority: [{ required: true, message: '请输入入司工龄', trigger: 'blur' }],
archivesStatus: [{ required: true, message: '请选择档案情况', trigger: 'change' }],
- bankNumb: [{ required: true, message: '请输入银行账号', trigger: 'blur' }],
+ bankNumb: [{ required: true, message: '请输入银行账号', trigger: 'blur' }, {
+ max: 32,
+ message: '长度不超过32个字符',
+ trigger: 'blur'
+ }],
empType: [{ required: true, message: '请选择员工类型', trigger: 'change' }],
- workUnit: [{ required: true, message: '请输入工作单位', trigger: 'blur' }],
- beginDate: [{ required: true, message: '请选择开始日期', trigger: 'change' }],
- endDate: [{ required: true, message: '请选择结束日期', trigger: 'change' }],
- hospital: [{ required: true, message: '请输入体检医院', trigger: 'blur' }],
- physicalExamDate: [{ required: true, message: '请选择体检日期', trigger: 'change' }],
- conclusion: [{ required: true, message: '请输入体检结论', trigger: 'blur' }],
- signingDate: [{ required: true, message: '请选择合同签订日期', trigger: 'change' }],
- contractStatus: [{ required: true, message: '请选择合同状态', trigger: 'change' }],
- attendMonth: [{ required: true, message: '请选择出勤月份', trigger: 'change' }],
- deduct: [{ required: true, message: '请输入代扣填款项', trigger: 'blur' }],
- attendDays: [{ required: true, message: '请输入出勤天数', trigger: 'blur' }],
- beginTime: [{ required: true, message: '请选择请假开始时间', trigger: 'change' }],
- leaveType: [{ required: true, message: '请选择请假类型', trigger: 'change' }],
- reporter: [{ required: true, message: '请输入报备人', trigger: 'blur' }],
- endTime: [{ required: true, message: '请选择请假结束时间', trigger: 'change' }],
- applayDate: [{ required: true, message: '请选择申请日期', trigger: 'change' }],
- reason: [{ required: true, message: '请输入辞职事由', trigger: 'blur' }],
- applayReason: [{ required: true, message: '请输入申报事由', trigger: 'blur' }],
- insuranceGaers: [{ required: true, message: '请选择社保档位', trigger: 'change' }],
- applayStatus: [{ required: true, message: '请选择申请状态', trigger: 'change' }],
- proposer: [{ required: true, message: '请输入申请人', trigger: 'blur' }],
- injuredTime: [{ required: true, message: '请选择受伤时间', trigger: 'blur' }],
- injuredPart: [{ required: true, message: '请输入受伤部位', trigger: 'blur' }],
- injuredDescribe: [{ required: true, message: '请输入受伤经过描述', trigger: 'blur' }],
- hospitalName: [{ required: true, message: '请输入就诊医院', trigger: 'blur' }],
- hospitalizatioFlag: [{ required: true, message: '请选择是否住院', trigger: 'blur' }],
- innsureFee: [{ required: true, message: '请输入保险赔付费用', trigger: 'blur' }],
- settleDate: [{ required: true, message: '请选择案结时间', trigger: 'change' }],
- expensesFee: [{ required: true, message: '请输入医疗总费用', trigger: 'blur' }],
- settleStatus: [{ required: true, message: '请选择结案状态', trigger: 'change' }],
- injuredAddress: [{ required: true, message: '请输入受伤地点', trigger: 'blur' }],
- compensated: [{ required: true, message: '请输入已赔付医药费用', trigger: 'blur' }],
- companyCompensation: [{ required: true, message: '请输入公司赔偿总费用', trigger: 'blur' }],
- arbitrationDate: [{ required: true, message: '请选择仲裁日期', trigger: 'change' }],
- arbitrationReason: [{ required: true, message: '请输入仲裁事由', trigger: 'blur' }],
- arbitrationStatus: [{ required: true, message: '请选择结案状态', trigger: 'change' }],
- badDate: [{ required: true, message: '请选择不良记录日期', trigger: 'change' }],
- badContent: [{ required: true, message: '请输入不良记录描述', trigger: 'blur' }],
- remarkDate: [{ required: true, message: '请选择备注日期', trigger: 'change' }],
- remarkContent: [{ required: true, message: '请输入备注内容', trigger: 'blur' }]
+ censusAddress: [{ max: 128, message: '长度不超过128个字符', trigger: 'blur' }],
+ currentAddress: [{ max: 128, message: '长度不超过128个字符', trigger: 'blur' }],
+ guardNumb: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }],
+ telePhone: [{ max: 30, message: '长度不超过30个字符', trigger: 'blur' }],
+ returnReceipt: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }],
+ introducer: [{ max: 32, message: '长度不超过32个字符', trigger: 'blur' }],
+ socialNumb: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }],
+ family: [{ max: 128, message: '长度不超过128个字符', trigger: 'blur' }],
+ certificateValidity: [{ required: true, message: '请选择身份证有效期', trigger: 'change' }],
+ urgencyPhone: [{ max: 30, message: '长度不超过30个字符', trigger: 'blur' }]
},
+ gbdaRules: {
+ dimissionType: [{ required: true, message: '请选择离职类型', trigger: 'change' }],
+ dimissionDate: [{ required: true, message: '请选择关闭日期', trigger: 'change' }],
+ selfLeaveDay: [{ required: true, validator: this.validSelfLeaveDay }],
+ 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' },
+ { value: '山西省', code: '140000' },
+ { value: '内蒙古自治区', code: '150000' },
+ { value: '辽宁省', code: '210000' },
+ { value: '吉林省', code: '220000' },
+ { value: '黑龙江省', code: '230000' },
+ { value: '上海市', code: '310000' },
+ { value: '江苏省', code: '320000' },
+ { value: '浙江省', code: '330000' },
+ { value: '安徽省', code: '340000' },
+ { value: '福建省', code: '350000' },
+ { value: '江西省', code: '360000' },
+ { value: '山东省', code: '370000' },
+ { value: '河南省', code: '410000' },
+ { value: '湖北省', code: '420000' },
+ { value: '湖南省', code: '430000' },
+ { value: '广东省', code: '440000' },
+ { value: '广西壮族自治区', code: '450000' },
+ { value: '海南省', code: '460000' },
+ { value: '重庆市', code: '500000' },
+ { value: '四川省', code: '510000' },
+ { value: '贵州省', code: '520000' },
+ { value: '云南省', code: '530000' },
+ { value: '西藏自治区', code: '540000' },
+ { value: '陕西省', code: '610000' },
+ { value: '甘肃省', code: '620000' },
+ { value: '青海省', code: '630000' },
+ { value: '宁夏回族自治区', code: '640000' },
+ { value: '新疆维吾尔自治区', code: '650000' },
+ { value: '台湾省', code: '710000' },
+ { value: '香港特别行政区', code: '810000' },
+ { value: '澳门特别行政区', code: '820000' }],
restaurJob: [{ value: '总经理', code: '2942725270000031' },
{ value: '总秘', code: '2942725270000032' },
{ value: '总助', code: '2942725270000033' },
@@ -1480,6 +1698,11 @@
dialogShowYgdg: false,
dialogShowDryg: false,
dialogShowGbda: false,
+ exportUrl: '',
+ checkAll: false,
+ isIndeterminate: false,
+ cityOptions: ['sex', 'empName', 'archivesNumb', 'deptName', 'jobName', 'empType', 'nation', 'certificateNumb', 'age', 'marriage', 'certificateValidity', 'stature', 'politics', 'birthdate', 'education', 'nativePlace', 'censusAddress', 'currentAddress', 'guardNumb', 'returnReceipt', 'archivesStatus', 'bankName', 'bankNumb', 'telePhone', 'entryDate', 'insuranceType', 'socialNumb', 'introducer', 'seniority', 'empCardStatus', 'certificateList', 'urgencyPhone', 'handbookStatus', 'family'],
+ checkedCities: [],
tableData: []
}
},
@@ -1488,6 +1711,12 @@
this.initDept()
},
methods: {
+ resetSearch() {
+ this.queryParams = {
+ empNumb: ''
+ }
+ this.search()
+ },
// 翻页方法
search() {
this.fetch({
@@ -1500,6 +1729,7 @@
params.pageSize = this.pagination.size
params.pageNum = this.pagination.num
params.delFlag = 0
+ params.empStatus = 0
this.$get('hr/empBaseInfo/list', {
...params
}).then((r) => {
@@ -1545,6 +1775,108 @@
this.advancedQueryShow = true
}
},
+ calculateSeniority(val) {
+ this.empBaseInfoForm.seniority = calculateSeniority(val)
+ },
+ cleanEmpBase() {
+ this.empBaseInfoForm.empId = ''
+ this.empBaseInfoForm.customerId = ''
+ this.empBaseInfoForm.archivesNumb = ''
+ this.empBaseInfoForm.deptId = ''
+ this.empBaseInfoForm.deptName = ''
+ this.empBaseInfoForm.empNumb = ''
+ this.empBaseInfoForm.empName = ''
+ this.empBaseInfoForm.sex = ''
+ this.empBaseInfoForm.JobId = ''
+ this.empBaseInfoForm.jobName = ''
+ this.empBaseInfoForm.empType = ''
+ this.empBaseInfoForm.certificateType = ''
+ this.empBaseInfoForm.certificateNumb = ''
+ this.empBaseInfoForm.nation = ''
+ this.empBaseInfoForm.certificateValidity = ''
+ this.empBaseInfoForm.marriage = ''
+ this.empBaseInfoForm.age = ''
+ this.empBaseInfoForm.stature = ''
+ this.empBaseInfoForm.birthdate = ''
+ this.empBaseInfoForm.politics = ''
+ this.empBaseInfoForm.entryDate = ''
+ this.empBaseInfoForm.education = ''
+ this.empBaseInfoForm.seniority = ''
+ this.empBaseInfoForm.nativePlace = ''
+ this.empBaseInfoForm.nativePlaceName = ''
+ this.empBaseInfoForm.censusAddress = ''
+ this.empBaseInfoForm.currentAddress = ''
+ this.empBaseInfoForm.guardNumb = ''
+ this.empBaseInfoForm.telePhone = ''
+ this.empBaseInfoForm.returnReceipt = ''
+ this.empBaseInfoForm.introducer = ''
+ this.empBaseInfoForm.archivesStatus = ''
+ this.empBaseInfoForm.bankName = ''
+ this.empBaseInfoForm.bankNumb = ''
+ this.empBaseInfoForm.InsuranceType = ''
+ this.empBaseInfoForm.socialNumb = ''
+ this.empBaseInfoForm.family = ''
+ this.empBaseInfoForm.handbookStatus = ''
+ this.empBaseInfoForm.urgencyPhone = ''
+ this.empBaseInfoForm.empCardStatus = ''
+ this.empBaseInfoForm.certificateList = ''
+ this.empBaseInfoForm.createTime = ''
+ this.empBaseInfoForm.creator = ''
+ this.empBaseInfoForm.modifyTime = ''
+ this.empBaseInfoForm.modifier = ''
+ this.empBaseInfoForm.delFlag = ''
+ this.empBaseInfoForm.version = ''
+ },
+ editEmpBase(row) {
+ this.isAdd = false
+ this.empBaseInfoForm.empId = row.empId
+ this.empBaseInfoForm.customerId = row.customerId
+ this.empBaseInfoForm.archivesNumb = row.archivesNumb
+ this.empBaseInfoForm.deptId = row.deptId
+ 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.stature = row.stature
+ this.empBaseInfoForm.birthdate = row.birthdate
+ this.empBaseInfoForm.politics = row.politics
+ this.empBaseInfoForm.entryDate = row.entryDate
+ this.empBaseInfoForm.education = row.education
+ this.empBaseInfoForm.seniority = row.seniority
+ this.empBaseInfoForm.nativePlace = row.nativePlace
+ this.empBaseInfoForm.censusAddress = row.censusAddress
+ this.empBaseInfoForm.currentAddress = row.currentAddress
+ this.empBaseInfoForm.guardNumb = row.guardNumb
+ this.empBaseInfoForm.telePhone = row.telePhone
+ this.empBaseInfoForm.returnReceipt = row.returnReceipt
+ this.empBaseInfoForm.introducer = row.introducer
+ this.empBaseInfoForm.archivesStatus = row.archivesStatus
+ this.empBaseInfoForm.bankName = row.bankName
+ this.empBaseInfoForm.bankNumb = row.bankNumb
+ this.empBaseInfoForm.InsuranceType = row.InsuranceType
+ this.empBaseInfoForm.socialNumb = row.socialNumb
+ this.empBaseInfoForm.family = row.family
+ this.empBaseInfoForm.handbookStatus = row.handbookStatus
+ this.empBaseInfoForm.urgencyPhone = row.urgencyPhone
+ this.empBaseInfoForm.empCardStatus = row.empCardStatus
+ this.empBaseInfoForm.certificateList = row.certificateList
+ this.empBaseInfoForm.createTime = row.createTime
+ this.empBaseInfoForm.creator = row.creator
+ this.empBaseInfoForm.modifyTime = row.modifyTime
+ this.empBaseInfoForm.modifier = row.modifier
+ this.empBaseInfoForm.delFlag = row.delFlag
+ this.empBaseInfoForm.version = row.version
+ this.showXzyg(1)
+ },
putEmpBase(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
@@ -1556,7 +1888,6 @@
type: 'success'
})
this.cleanEmpBase()
- this.selectEmpBase()
})
} else {
this.$put('hr/empBaseInfo', { ...this.empBaseInfoForm }).then(() => {
@@ -1566,10 +1897,10 @@
})
this.$emit('success')
this.cleanEmpBase()
- this.selectEmpBase()
})
}
- this.dialogIsShow()
+ this.fetch()
+ this.showXzyg()
}
})
},
@@ -1584,7 +1915,7 @@
type: 'success'
})
this.cleanEmpBase()
- this.selectEmpBase()
+ this.fetch()
})
}
}
@@ -1615,12 +1946,26 @@
showEmpInfo() {
this.dialogTableVisible = true
},
- showXzyg() {
+ showXzyg(val) {
+ if (val === 0) {
+ this.isAdd = true
+ }
if (!this.dialogShowXzyg) {
+ // this.isAdd = true
this.dialogShowXzyg = true
} else {
+ // this.isAdd = false
this.dialogShowXzyg = false
}
+ },
+ handleCheckAllChange(val) {
+ this.checkedCities = val ? this.cityOptions : []
+ this.isIndeterminate = false
+ },
+ handleCheckedCitiesChange(value) {
+ const checkedCount = value.length
+ this.checkAll = checkedCount === this.cityOptions.length
+ this.isIndeterminate = checkedCount > 0 && checkedCount < this.cityOptions.length
},
showDcyg(operate) {
switch (operate) {
@@ -1630,9 +1975,18 @@
case 1:
this.dialogShowDcyg = false
break
+ case 2:
+ var params = { exportField: this.checkedCities.join(',') }
+ this.$download('hr/empBaseInfo/export', { ...params }, '在职员工列表.xls').then(() => {
+ this.$message({
+ message: '下载成功!',
+ type: 'success'
+ })
+ })
+ break
}
},
- showYgdg(operate) {
+ showYgdg(operate, formName) {
switch (operate) {
case 0:
var selection = this.$refs.multipleTable.store.states.selection
@@ -1642,16 +1996,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
}
@@ -1660,15 +2020,41 @@
this.dialogShowYgdg = false
break
case 2:
- this.$post('hr/empBaseInfo', { ...this.ygdgForm }).then(() => {
- this.dialogShowYgdg = false
- this.$message({
- message: this.$t('tips.createSuccess'),
- type: 'success'
- })
+ this.$refs[formName].validate((valid) => {
+ if (valid) {
+ this.$post('hr/empBaseInfo/jobChange', { ...this.ygdgForm }).then(() => {
+ this.dialogShowYgdg = false
+ this.$message({
+ message: this.$t('员工调岗成功'),
+ type: 'success'
+ })
+ this.fetch({
+ ...this.queryParams,
+ ...this.sort
+ })
+ })
+ }
})
break
}
+ },
+ querySearch(queryString, cb) {
+ var restaurants = this.restaurants
+ var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants
+ // 调用 callback 返回建议列表的数据
+ cb(results)
+ },
+ createFilter(queryString) {
+ return (restaurant) => {
+ return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0)
+ }
+ },
+ placeNameSelect(item) {
+ this.empBaseInfoForm.nativePlaceName = item.value
+ this.empBaseInfoForm.nativePlace = item.code
+ },
+ deptNameSelect(node) {
+ this.ygdgForm.newDeptName = node.label
},
querySearchJob(queryString, cb) {
const restaurants = this.restaurJob
@@ -1677,8 +2063,20 @@
cb(results)
},
jobNameSelect(item) {
- this.ygdgForm.jobName = item.value
- this.ygdgForm.JobId = item.code
+ 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)
+ if (userinfo === null) {
+ return
+ }
+ this.empBaseInfoForm.age = userinfo.age
+ this.empBaseInfoForm.birthdate = userinfo.birth
+ this.empBaseInfoForm.sex = userinfo.sex
},
showDryg(operate) {
switch (operate) {
@@ -1693,7 +2091,35 @@
break
}
},
- showGbda(operate) {
+ validSelfLeaveDay(rule, value, callback) {
+ const type = this.gbdaForm.dimissionType
+ if (type === 2) {
+ if (!value) {
+ callback(new Error('自动离职时自离天数不能为空!'))
+ } else {
+ callback()
+ }
+ } else {
+ callback()
+ }
+ },
+ validReporter(rule, value, callback) {
+ const type = this.gbdaForm.dimissionType
+ if (type === 2) {
+ if (!value) {
+ callback(new Error('自动离职时报告人不能为空!'))
+ } else {
+ if (value.length > 32) {
+ callback(new Error('自动离职时报告人最多32个字符!'))
+ } else {
+ callback()
+ }
+ }
+ } else {
+ callback()
+ }
+ },
+ showGbda(operate, formName) {
switch (operate) {
case 0:
var selection = this.$refs.multipleTable.store.states.selection
@@ -1703,16 +2129,26 @@
type: 'error'
})
} else {
- var empIds = []
+ var ids = []
var names = []
+ var dates = []
for (var i = 0; i < selection.length; i++) {
var data = selection[i]
- empIds.push(data.empId)
+ ids.push(data.empId)
names.push(data.empName)
+ dates.push(data.entryDate)
}
+ const nowDate = new Date()
+ const year = nowDate.getFullYear()
+ const month = nowDate.getMonth() + 1
+ const day = nowDate.getDate()
this.gbdaForm = {
- dgryIds: empIds.join(','),
- dgryNames: names.join(',')
+ empIds: ids.join(','),
+ dgryNames: names.join(','),
+ entryDates: dates.join(','),
+ dimissionType: '1',
+ dimissionDate: year + '-' + month + '-' + day,
+ remark: ''
}
this.dialogShowGbda = true
}
@@ -1721,12 +2157,20 @@
this.dialogShowGbda = false
break
case 2:
- this.$post('hr/empBaseInfo', { ...this.gbdaForm }).then(() => {
- this.dialogShowGbda = false
- this.$message({
- message: this.$t('tips.createSuccess'),
- type: 'success'
- })
+ this.$refs[formName].validate((valid) => {
+ if (valid) {
+ this.$post('hr/empBaseInfo/dimission', { ...this.gbdaForm }).then(() => {
+ this.dialogShowGbda = false
+ this.$message({
+ message: this.$t('员工档案关闭成功'),
+ type: 'success'
+ })
+ this.fetch({
+ ...this.queryParams,
+ ...this.sort
+ })
+ })
+ }
})
break
}
@@ -1747,92 +2191,116 @@
message: '已取消'
})
})
+ },
+ downloadExcel() {
+ debugger
+ this.$download('../../assets/excel/员工信息.xls', { }, '在职员工列表.xls').then(() => {
+ this.$message({
+ message: '下载成功!',
+ type: 'success'
+ })
+ })
+ },
+ headers() {
+ const token = getToken()
+ if (token) {
+ return {
+ Authorization: 'bearer ' + token
+ }
+ } else {
+ return null
+ }
}
}
}
</script>
<style lang="scss" scoped>
- .el-main {
- height: 600px;
- }
- .el-autocomplete {
- width: 100%;
- }
- .el-select {
- width: 100%;
- }
- .el-aside {
- padding: 20px;
- background: #f3f5f8;
- height: 600px;
+.el-main {
+ height: 600px;
+}
- .el-tree {
- height: 100%;
- }
- }
+.el-autocomplete {
+ width: 100%;
+}
- #searchTable {
- margin-top: 10px;
- border-collapse: collapse;
- width: 100%;
- }
+.el-select {
+ width: 100%;
+}
- #searchTable td,
- #searchTable th {
- border: 1px solid #cad9ea;
- color: #666;
- height: 30px;
- }
+.el-aside {
+ padding: 20px;
+ background: #f3f5f8;
+ height: 600px;
- #ygxq table {
- border-collapse: collapse;
- margin: 0 auto;
- text-align: center;
- width: 100%;
- margin-top: 20px;
+ .el-tree {
+ height: 100%;
}
+}
- #ygxq table td,
- #ygxq table th {
- border: 1px solid #DDDCDC;
- color: #666;
- height: 30px;
- }
+#searchTable {
+ margin-top: 10px;
+ border-collapse: collapse;
+ width: 100%;
+}
- #ygxq table thead th {
- background-color: #CCE8EB;
- width: 100px;
- }
+#searchTable td,
+#searchTable th {
+ border: 1px solid #cad9ea;
+ color: #666;
+ height: 30px;
+}
- #ygxq table tr:nth-child(odd) {
- background: #fff;
- }
+#ygxq table {
+ border-collapse: collapse;
+ margin: 0 auto;
+ text-align: center;
+ width: 100%;
+ margin-top: 20px;
+}
- #ygxq table tr:nth-child(even) {
- background: #F5FAFA;
- }
+#ygxq table td,
+#ygxq table th {
+ border: 1px solid #DDDCDC;
+ color: #666;
+ height: 30px;
+}
- .tdTitle {
- font-size: 14px;
- font-weight: 700;
- text-align: left;
- }
+#ygxq table thead th {
+ background-color: #CCE8EB;
+ width: 100px;
+}
- .link_button {
- color: #169BD5;
- }
+#ygxq table tr:nth-child(odd) {
+ background: #fff;
+}
- .del_button {
- color: #D9001B;
- }
+#ygxq table tr:nth-child(even) {
+ background: #F5FAFA;
+}
- #dcygTable{
- border-collapse: collapse;
- }
- #dcygTable td{
- width: 130px;
- text-align: center;
- border: 1px solid darkgray;
- height: 30px;
- }
+.tdTitle {
+ font-size: 14px;
+ font-weight: 700;
+ text-align: left;
+}
+
+.link_button {
+ color: #169BD5;
+}
+
+.del_button {
+ color: #D9001B;
+}
+
+#dcygTable {
+ border-collapse: collapse;
+}
+
+#dcygTable td {
+ width: 130px;
+ text-align: center;
+ border: 1px solid darkgray;
+ height: 30px;
+ font-size:15px;
+}
</style>
--
Gitblit v1.8.0