From 99563684fb0432f5d755b9b99aaf95fa32634b96 Mon Sep 17 00:00:00 2001
From: luoyb <412940104@qq.com>
Date: 星期日, 03 三月 2024 19:28:43 +0800
Subject: [PATCH] 入离职记录增加部门护卫点信息: - 信息录入:写入入职的部门信息 - 在职员工:关闭档案时写入离职时的部门信息 - 离职员工:打开档案时写入打开时的部门信息 - 档案导出:在职员工和离职员工模板导出档案时的入离职记录的部门信息导出 上传左边的标签面是动态生成,调整数据库中标签数据,使生成的标签和更改的要求一致
---
src/views/user/outemployess.vue | 916 ++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 710 insertions(+), 206 deletions(-)
diff --git a/src/views/user/outemployess.vue b/src/views/user/outemployess.vue
index 21d83d5..b08233c 100644
--- a/src/views/user/outemployess.vue
+++ b/src/views/user/outemployess.vue
@@ -3,18 +3,18 @@
<el-container>
<el-header :height="headerHeight">
<el-row>
- <el-col :span="16">
+ <el-col :span="15">
<h3 class="bu-tian-jia-title">离职员工</h3>
</el-col>
- <el-col :span="8" style="margin-top: 15px;">
- <el-input v-model="queryParams.vague" placeholder="请输入内容" style="width:200px" />
+ <el-col :span="9" style="margin-top: 15px;">
+ <el-input v-model="queryParams.baseKey" placeholder="请输入内容" style="width:300px" />
<span class="search-btn" @click="vagueSearch">查询</span>
<span class="sup-search-btn" @click="advancedQueryShowMethods">高级查询</span>
</el-col>
</el-row>
<div v-show="advancedQueryShow">
- <el-row style="margin-bottom: 10px;">
- <el-col :span="3">员工编号:
+ <el-row style="margin: 10px 0;">
+ <el-col :span="3">编号:
<el-input v-model="queryParams.empNumb" size="small" maxlength="20" style="width:85px" />
</el-col>
<el-col :span="3">姓名:
@@ -23,10 +23,10 @@
<el-col :span="4">身份证号:
<el-input v-model="queryParams.certificateNumb" size="small" maxlength="18" style="width:140px" />
</el-col>
- <el-col :span="3">护卫点:
+ <el-col :span="4">部门(护卫点):
<el-input v-model="queryParams.deptName" size="small" maxlength="20" style="width:100px" />
</el-col>
- <el-col :span="8">入职日期:
+ <el-col :span="7">入职日期:
<el-date-picker
v-model="queryParams.entryDateStr"
size="small"
@@ -38,12 +38,12 @@
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions"
- style="width: 400px;"
+ style="width: 300px;"
/>
</el-col>
</el-row>
<el-row>
- <el-col :span="8">离职日期:
+ <el-col :span="7">离职日期:
<el-date-picker
v-model="queryParams.dimissionDateStr"
size="small"
@@ -55,7 +55,7 @@
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions"
- style="width: 400px;"
+ style="width: 300px;"
/>
</el-col>
<el-col :span="3">
@@ -72,26 +72,28 @@
<td class="td-group">
<el-checkbox-group v-model="queryParams.sex" class="fj-checkbox">
<el-checkbox label="" @change="selectAllSex">全部</el-checkbox>
- <el-checkbox label="1">男性</el-checkbox>
- <el-checkbox label="2">女性</el-checkbox>
+ <el-checkbox
+ v-for="data in sexOptions"
+ :key="data.dicItemName"
+ :label="data.dicItemCode"
+ >
+ {{ data.dicItemName }}
+ </el-checkbox>
</el-checkbox-group>
</td>
</tr>
<tr>
- <td class="td">最高学历:</td>
+ <td class="td">学历:</td>
<td class="td-group">
<el-checkbox-group v-model="queryParams.education" class="fj-checkbox">
<el-checkbox label="" @change="selectAllEducation">全部</el-checkbox>
- <el-checkbox label="91">无学历</el-checkbox>
- <el-checkbox label="81">小学</el-checkbox>
- <el-checkbox label="71">初中</el-checkbox>
- <el-checkbox label="61">高中</el-checkbox>
- <el-checkbox label="42">中技</el-checkbox>
- <el-checkbox label="41">中专</el-checkbox>
- <el-checkbox label="31">大学专科</el-checkbox>
- <el-checkbox label="21">大学本科</el-checkbox>
- <el-checkbox label="11">硕士</el-checkbox>
- <el-checkbox label="10">博士</el-checkbox>
+ <el-checkbox
+ v-for="data in educationOptions"
+ :key="data.dicItemName"
+ :label="data.dicItemCode"
+ >
+ {{ data.dicItemName }}
+ </el-checkbox>
</el-checkbox-group>
</td>
</tr>
@@ -100,19 +102,13 @@
<td class="td-group">
<el-checkbox-group v-model="queryParams.politics" class="fj-checkbox">
<el-checkbox label="" @change="selectAllPolitics">全部</el-checkbox>
- <el-checkbox label="01">党员</el-checkbox>
- <el-checkbox label="02">预备</el-checkbox>
- <el-checkbox label="03">共青</el-checkbox>
- <el-checkbox label="04">民革</el-checkbox>
- <el-checkbox label="05">民盟</el-checkbox>
- <el-checkbox label="06">民建</el-checkbox>
- <el-checkbox label="07">民进</el-checkbox>
- <el-checkbox label="08">农工</el-checkbox>
- <el-checkbox label="09">致公</el-checkbox>
- <el-checkbox label="10">九三</el-checkbox>
- <el-checkbox label="11">台盟</el-checkbox>
- <el-checkbox label="12">民主</el-checkbox>
- <el-checkbox label="13">群众</el-checkbox>
+ <el-checkbox
+ v-for="data in statusOptions"
+ :key="data.dicItemName"
+ :label="data.dicItemCode"
+ >
+ {{ data.dicItemName }}
+ </el-checkbox>
</el-checkbox-group>
</td>
</tr>
@@ -121,12 +117,13 @@
<td class="td-group">
<el-checkbox-group v-model="queryParams.ageStr" class="fj-checkbox">
<el-checkbox label="" @change="selectAllAgeStr">全部</el-checkbox>
- <el-checkbox label="18-29">18-29</el-checkbox>
- <el-checkbox label="30-39">30-39</el-checkbox>
- <el-checkbox label="40-49">40-49</el-checkbox>
- <el-checkbox label="50-59">50-59</el-checkbox>
- <el-checkbox label="60-69">60-69</el-checkbox>
- <el-checkbox label="69-999">69及以上</el-checkbox>
+ <el-checkbox
+ v-for="data in ageStrOptions"
+ :key="data.dicItemName"
+ :label="data.dicItemCode"
+ >
+ {{ data.dicItemName }}
+ </el-checkbox>
</el-checkbox-group>
</td>
</tr>
@@ -135,21 +132,79 @@
<td class="td-group">
<el-checkbox-group v-model="queryParams.archivesStatus" class="fj-checkbox">
<el-checkbox label="" @change="selectAllArchivesStatus">全部</el-checkbox>
- <el-checkbox label="0">已移交</el-checkbox>
- <el-checkbox label="1">未移交</el-checkbox>
+ <el-checkbox
+ v-for="data in archivesStatusOptions"
+ :key="data.dicItemName"
+ :label="data.dicItemCode"
+ >
+ {{ data.dicItemName }}
+ </el-checkbox>
</el-checkbox-group>
</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>
- <el-checkbox label="1">深户(五险一档)</el-checkbox>
- <el-checkbox label="2">非深户(五险一档)</el-checkbox>
- <el-checkbox label="3">非深户(五险二档)</el-checkbox>
- <el-checkbox label="4">非深户(五险三档)</el-checkbox>
- <el-checkbox label="5">非深户(四险三档)</el-checkbox>
+ <el-checkbox
+ v-for="data in insuranceTypeOptions"
+ :key="data.dicItemName"
+ :label="data.dicItemCode"
+ >
+ {{ data.dicItemName }}
+ </el-checkbox>
+ </el-checkbox-group>
+ </td>
+ </tr>
+ <tr>
+ <td class="td">员工类型:</td>
+ <td class="td-group">
+ <el-checkbox-group v-model="queryParams.empType" class="fj-checkbox">
+ <el-checkbox label="" @change="selectAllEmpType">全部</el-checkbox>
+ <el-checkbox
+ v-for="data in empTypeOptions"
+ :key="data.dicItemName"
+ :label="data.dicItemCode"
+ >
+ {{ data.dicItemName }}
+ </el-checkbox>
+ </el-checkbox-group>
+ </td>
+ </tr>
+ <tr>
+ <td class="td">离职类型:</td>
+ <td class="td-group">
+ <el-checkbox-group v-model="queryParams.dimissionType" class="fj-checkbox">
+ <el-checkbox label="" @change="selectAllDimissionType">全部</el-checkbox>
+ <el-checkbox :label="6">正常离职</el-checkbox>
+ <el-checkbox :label="4">自动离职</el-checkbox>
+ <el-checkbox :label="2">公司劝退</el-checkbox>
+ <el-checkbox :label="1">合同期满</el-checkbox>
+ <el-checkbox :label="3">公司辞退</el-checkbox>
+ <el-checkbox :label="5">试用期内</el-checkbox>
+ <!-- <el-checkbox-->
+ <!-- v-for="data in dimissionTypeOptions"-->
+ <!-- :key="data.dicItemName"-->
+ <!-- :label="data.dicItemCode"-->
+ <!-- >-->
+ <!-- {{ 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>
@@ -170,17 +225,29 @@
</form>
</div>
</el-header>
- <el-main style="height: 85%;">
+ <el-main style="height: 85vh;">
<el-row style="margin: 10px 0 10px 0;">
<el-col :span="24">
- <el-button type="primary" class="hr-but-all" @click="delEmp">删除员工</el-button>
+ <el-button type="primary" @click="delEmp">删除员工</el-button>
<el-button type="danger" class="hr-but-all" @click="showDkda(0)">打开档案</el-button>
- <el-button type="danger" class="hr-but-all" @click="doDcbb">导出报表</el-button>
+ <el-button type="danger" class="hr-but-all" @click.native="showDcyg(0)">导出EXCEL
+ </el-button>
+ <!-- <el-button type="danger" class="hr-but-all" @click="exportExcel()">导出员工</el-button>-->
+ <!-- <el-button type="danger" class="hr-but-all" @click="doDcda">导出档案</el-button>-->
</el-col>
</el-row>
- <el-table ref="multipleTable" :data="tableData" style="width: 100%;">
+ <el-table
+ ref="multipleTable"
+ :data="tableData"
+ stripe
+ border
+ :header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
+ :cell-style="{padding:'7px 0','text-align':'center'}"
+ style="width: 100%;color: #000;"
+ @sort-change="changeSort"
+ >
<el-table-column type="selection" width="55" />
- <el-table-column label="操作" width="120">
+ <el-table-column label="操作" width="70">
<template slot-scope="scope">
<!-- <el-button-->
<!-- type="text"-->
@@ -191,35 +258,57 @@
<!-- <el-button type="text" size="small" @click="editEmpBase(scope.row)">编辑-->
<!-- </el-button>-->
- <span style="color: #a00515;display: inline-block;width: 50%;cursor: pointer" @click="editArchives(scope.row)">档案</span>
- <span style="color: #a00515;display: inline-block;width: 50%;cursor: pointer" @click="editEmpBase(scope.row)">编辑</span>
+ <span
+ style="color: #a00515;display: inline-block;width: 90%;cursor: pointer"
+ @click="editArchives(scope.row)"
+ >档案</span>
+ <!-- <span
+ style="color: #a00515;display: inline-block;width: 50%;cursor: pointer"
+ @click="editEmpBase(scope.row)"
+ >编辑</span> -->
</template>
</el-table-column>
- <el-table-column show-overflow-tooltip="true" prop="empNumb" label="员工编号" width="100" />
- <el-table-column show-overflow-tooltip="true" prop="deptName" label="护卫点" width="80" />
- <el-table-column show-overflow-tooltip="true" prop="jobName" label="岗位" width="100" />
- <el-table-column show-overflow-tooltip="true" prop="empName" label="姓名" width="100" />
- <el-table-column show-overflow-tooltip="true" prop="certificateNumb" label="身份证号码" />
- <el-table-column show-overflow-tooltip="true" prop="sexName" label="性别" width="60" />
- <el-table-column show-overflow-tooltip="true" prop="age" label="年龄" width="60" />
- <el-table-column show-overflow-tooltip="true" prop="educationName" label="最高学历" width="100" />
- <el-table-column show-overflow-tooltip="true" prop="censusAddress" label="籍贯" />
- <el-table-column show-overflow-tooltip="true" prop="telePhone" label="联系电话" />
- <el-table-column show-overflow-tooltip="true" prop="entryDate" label="入职日期" />
- <el-table-column show-overflow-tooltip="true" prop="dimissionDate" label="离职日期" />
- <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="280" 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="80" sortable="custom" :sort-orders="['ascending', 'descending']" />
+ <el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="160" sortable="custom" :sort-orders="['ascending', 'descending']" />
+ <el-table-column show-overflow-tooltip prop="sex" label="性别" width="50" :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="60"
+ :formatter="educationFormat"
+ ortable="custom"
+ :sort-orders="['ascending', 'descending']"
+ />
+ <el-table-column show-overflow-tooltip prop="nativePlaceName" label="籍贯" width="70" />
+ <el-table-column show-overflow-tooltip prop="telePhone" label="联系电话" width="110" />
+ <el-table-column
+ show-overflow-tooltip
+ prop="empType"
+ label="员工类型"
+ width="80"
+ :formatter="empTypeFormat"
+ />
+ <el-table-column show-overflow-tooltip prop="entryDate" label="入职日期" width="110" sortable="custom" :sort-orders="['ascending', 'descending']" />
+ <el-table-column show-overflow-tooltip prop="dimissionDate" 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="dimissionType" label="离职类型">
+ <el-table-column prop="dimissionType" label="离职类型" width="120" sortable="custom" :sort-orders="['ascending', 'descending']">
<template slot-scope="{row}">
- {{ transDimissionType(row.dimissionType) }}
+ {{ transEntryType(row.dimissionType) }}
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
+ style="text-align: right;width: 98%;"
:total="total"
:page.sync="pagination.num"
:limit.sync="pagination.size"
@@ -233,7 +322,7 @@
<el-container>
<el-aside width="200px">
<el-card class="info-card" shadow="always" @click.native="isShow(showArr[0],0)">
- 员工编号
+ 编号
</el-card>
<el-card class="info-card" shadow="always" @click.native="isShow(showArr[0],0)">
100452312
@@ -312,7 +401,7 @@
<td>群众</td>
<td>出生日期</td>
<td>1974-02-22</td>
- <td>最高学历</td>
+ <td>学历</td>
<td>高中</td>
</tr>
<tr>
@@ -342,7 +431,7 @@
<tr>
<td>入职日期</td>
<td>2020-01-02</td>
- <td>保险类型</td>
+ <td>社保档位</td>
<td>深户(五险一档)</td>
<td>社保电脑号</td>
<td />
@@ -356,9 +445,9 @@
<td>已发</td>
</tr>
<tr>
- <td>家庭成员及关系</td>
+ <td>家庭成员及关系1</td>
<td />
- <td>紧急联系电话</td>
+ <td>家庭成员及关系2</td>
<td />
<td>员工手册</td>
<td>已发</td>
@@ -906,13 +995,19 @@
</el-dialog>
<el-dialog title="打开档案" :visible.sync="dialogShowDkda" width="50%">
- <el-form :model="baseicInformationForm" label-position="right" label-width="120px">
+ <el-form
+ ref="baseicInformationForm"
+ :model="baseicInformationForm"
+ 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="baseicInformationForm.openType">
- <el-radio :label="1">重新入职</el-radio>
- <el-radio :label="2">返聘</el-radio>
+ <el-radio :label="21">重新入职</el-radio>
+ <el-radio :label="22">返聘</el-radio>
</el-radio-group>
(主要对已退休员工返聘)
</el-form-item>
@@ -931,15 +1026,214 @@
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
- <el-button @click="showDkda(1)">取 消</el-button>
- <el-button type="primary" @click="showDkda(2)">确 定</el-button>
+ <el-button @click="showDkda(1, '')">取 消</el-button>
+ <el-button type="primary" @click="showDkda(2, 'baseicInformationForm')">确 定</el-button>
</div>
</el-dialog>
<el-dialog title="选择员工" :visible.sync="dialogShowXzyg">
<Selectuser @selectedUser="selectedUser" @cancleChooseUser="cancleChooseUser" />
</el-dialog>
- <el-dialog title="选择员工" :visible.sync="dialogShowXzbm">
+ <el-dialog title="选择部门" :visible.sync="dialogShowXzbm">
<Selectdept @selectedDept="selectedDept" @cancleChooseDept="cancleChooseDept" />
+ </el-dialog>
+ <el-dialog title="导出员工" :visible.sync="dialogShowDcyg" width="40%">
+ <div style="font-size: 16px;font-weight: 400;height: 35px;margin-top: -30px;color: #409EFF;">请勾选需要导出的字段</div>
+ <table id="dcygTable" width="100%">
+ <tr>
+ <td colspan="6" style="text-align: left;">
+ <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange" />
+ 全部字段
+ </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="sexName"><span /></el-checkbox>
+ </td>
+ </tr>
+ <tr>
+ <td>部门(护卫点)</td>
+ <td>
+ <el-checkbox label="allDeptName"><span /></el-checkbox>
+ </td>
+ <td>所属岗位</td>
+ <td>
+ <el-checkbox label="jobName"><span /></el-checkbox>
+ </td>
+ <td>员工类别</td>
+ <td>
+ <el-checkbox label="empTypeName"><span /></el-checkbox>
+ </td>
+ </tr>
+ <tr>
+ <td>民族</td>
+ <td>
+ <el-checkbox label="nationName"><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="marriageName"><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="politicsName"><span /></el-checkbox>
+ </td>
+ <td>出生日期</td>
+ <td>
+ <el-checkbox label="birthdate"><span /></el-checkbox>
+ </td>
+ <td>最高学历</td>
+ <td>
+ <el-checkbox label="educationName"><span /></el-checkbox>
+ </td>
+ </tr>
+ <tr>
+ <td>籍贯</td>
+ <td>
+ <el-checkbox label="nativePlaceName"><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="archivesStatusName"><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>家庭成员及关系1</td>
+ <td>
+ <el-checkbox label="family"><span /></el-checkbox>
+ </td>
+ <td>员工状态</td>
+ <td>
+ <el-checkbox label="empStatusName"><span /></el-checkbox>
+ </td>
+ <td>离职日期</td>
+ <td>
+ <el-checkbox label="dimissionDate"><span /></el-checkbox>
+ </td>
+ </tr>
+ <tr>
+ <td>入职日期</td>
+ <td>
+ <el-checkbox label="entryDate"><span /></el-checkbox>
+ </td>
+ <td>社保档位</td>
+ <td>
+ <el-checkbox label="insuranceTypeName"><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="empCardStatusName"><span /></el-checkbox>
+ </td>
+ </tr>
+ <tr>
+ <td>相关证件</td>
+ <td>
+ <el-checkbox label="certificateListName"><span /></el-checkbox>
+ </td>
+ <td>家庭成员及关系2</td>
+ <td>
+ <el-checkbox label="urgencyPhone"><span /></el-checkbox>
+ </td>
+ <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>
+ </el-checkbox-group>
+ </table>
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="showDcyg(1)">取 消</el-button>
+ <el-button type="primary" @click="showDcyg(2)">确 定</el-button>
+ </div>
</el-dialog>
<archives-change
ref="article"
@@ -953,6 +1247,7 @@
<script>
import Pagination from '@/components/Pagination'
import ArchivesChange from './archivesChange'
+
export default {
components: {
ArchivesChange,
@@ -967,6 +1262,7 @@
},
total: 0, // 总数量
queryParams: {
+ baseKey: '',
empNumb: '',
vague: '',
sex: [],
@@ -975,11 +1271,14 @@
ageStr: [],
archivesStatus: [],
insuranceType: [],
- empStatus: []
+ empStatus: [],
+ dimissionType: [],
+ empType: [],
+ certificateList: []
}, // 查询参数
sort: {}, // 排序
pagination: { // 分页参数
- size: 10,
+ size: 15,
num: 1
},
headerHeight: '30px',
@@ -988,22 +1287,100 @@
dialogShowDkda: false,
dialogShowXzyg: false,
dialogShowXzbm: false,
+ dialogShowDcyg: false,
+ openArchivesRules: {
+ openType: [{ required: true, message: '请选择打开类型', trigger: 'change' }],
+ openDate: [{ required: true, message: '请选择打开日期', trigger: 'change' }],
+ remark: [{ max: 500, message: '长度不超过500个字符', trigger: 'blur' }]
+ },
tableData: [],
baseicInformationForm: {
openDate: new Date()
- }
+ },
+ educationOptions: [],
+ statusOptions: [],
+ ageStrOptions: [],
+ insuranceTypeOptions: [],
+ archivesStatusOptions: [],
+ sexOptions: [],
+ empTypeOptions: [],
+ 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: []
}
},
mounted() {
this.fetch()
+ this.getDicts('INSURANCETYPE').then(response => {
+ this.insuranceTypeOptions = response.data
+ })
+ this.getDicts('archivesStatus').then(response => {
+ this.archivesStatusOptions = response.data
+ })
+ this.getDicts('EDUCATION').then(response => {
+ this.educationOptions = response.data
+ })
+ this.getDicts('sex').then(response => {
+ this.sexOptions = response.data
+ })
+ this.getDicts('PLITICAL').then(response => {
+ this.statusOptions = response.data
+ })
+ this.getDicts('ageStr').then(response => {
+ this.ageStrOptions = response.data
+ })
+ this.getDicts('EMPTYPE').then(response => {
+ this.empTypeOptions = response.data
+ })
+ this.getDicts('certificateList').then(response => {
+ this.certificateListOptions = response.data
+ })
},
methods: {
+ exportExcel() {
+ this.queryParams.baseKey = this.queryParams.vague
+ var params = this.queryParams
+ params.empStatus = '1,2,3'
+ this.$download('hr/empBaseInfo/exportEmpAll', { ...params }, `基本信息_${new Date().getTime()}.xls`).then(() => {
+ this.$message({
+ message: '下载成功!',
+ type: 'success'
+ })
+ })
+ },
+ doDcda() {
+ this.$confirm('是否确定要导出档案?', '提示', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning'
+ }).then(() => {
+ this.$message({
+ type: 'success',
+ message: '导出成功!'
+ })
+ }).catch(() => {
+ this.$message({
+ type: 'info',
+ message: '已取消'
+ })
+ })
+ },
+ educationFormat(row, column) {
+ return this.selectDictLabel(this.educationOptions, row.education)
+ },
+ sexFormat(row, column) {
+ return this.selectDictLabel(this.sexOptions, row.sex)
+ },
+ empTypeFormat(row, column) {
+ return this.selectDictLabel(this.empTypeOptions, row.empType)
+ },
editClose() {
this.dialog.isVisible = false
},
resetSearch() {
this.queryParams = {
empNumb: '',
+ empName: '',
+ deptName: '',
vague: '',
sex: [],
education: [],
@@ -1011,14 +1388,19 @@
ageStr: [],
archivesStatus: [],
insuranceType: [],
- empStatus: []
+ certificateNumb: '',
+ nativePlaceName: '',
+ censusAddress: '',
+ empStatus: [],
+ baseKey: '',
+ empType: [],
+ dimissionType: []
}
this.search()
},
// 翻页方法
search() {
- this.queryParams.empName = this.queryParams.empNumb
- this.queryParams.deptName = this.queryParams.empNumb
+ this.queryParams.baseKey = ''
this.fetch({
...this.queryParams,
...this.sort
@@ -1040,9 +1422,7 @@
},
vagueSearch() {
this.fetch({
- empNumb: this.queryParams.vague,
- empName: this.queryParams.vague,
- deptName: this.queryParams.vague
+ baseKey: this.queryParams.baseKey
})
},
transEmpStatus(empStatus) {
@@ -1055,6 +1435,22 @@
return '退休'
}
},
+ transEntryType(entryType) {
+ switch (entryType) {
+ case '1':
+ return '合同期满'
+ case '2':
+ return '公司劝退'
+ case '3':
+ return '公司辞退'
+ case '4':
+ return '自动离职'
+ case '5':
+ return '试用期内'
+ case '6':
+ return '正常离职'
+ }
+ },
transDimissionType(dimissionType) {
switch (dimissionType) {
case '1':
@@ -1062,11 +1458,11 @@
case '2':
return '自动离职'
case '3':
- return '公司劝退'
- case '4':
return '公司辞退'
- case '5':
- return '试用期内'
+ // case '4':
+ // return '公司辞退'
+ // case '5':
+ // return '试用期内'
}
},
advancedQueryShowMethods() {
@@ -1080,7 +1476,7 @@
},
editArchives(row) {
this.$refs.article.setArchives(row)
- this.dialog.title = '档案管理'
+ this.dialog.title = row.empName + '员工档案'
this.dialog.isVisible = true
},
delEmp() {
@@ -1114,21 +1510,54 @@
showEmpInfo() {
this.dialogTableVisible = true
},
- showDkda(operate) {
+ showDkda(operate, formName) {
switch (operate) {
case 0:
- this.dialogShowDkda = true
+ 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
+ var deptName = selection[0].allDeptName
+ 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: 21,
+ openDate: year + '-' + month + '-' + day,
+ remark: '',
+ allDeptName: deptName
+ }
+ this.dialogShowDkda = true
+ } else {
+ this.$message({
+ message: '请选中一个要打开档案的人员',
+ type: 'error'
+ })
+ }
break
case 1:
this.dialogShowDkda = false
break
case 2:
- this.$post('hr/empBaseInfo', { ...this.baseicInformationForm }).then(() => {
- this.dialogShowDkda = false
- this.$message({
- message: this.$t('tips.createSuccess'),
- type: 'success'
- })
+ this.$refs[formName].validate((valid) => {
+ if (valid) {
+ this.$post('hr/empOpenArchives', { ...this.baseicInformationForm }).then(() => {
+ this.dialogShowDkda = false
+ this.$message({
+ message: this.$t('员工档案打开成功'),
+ type: 'success'
+ })
+ this.fetch({
+ ...this.queryParams,
+ ...this.sort
+ })
+ })
+ }
})
break
}
@@ -1163,187 +1592,262 @@
alert('已选择部门' + names)
console.log(users)
},
+ // dic列表转为数组
+ dicListToArr(dicList) {
+ var arr = []
+ for (var i = 0; i < dicList.length; i++) {
+ var dic = dicList[i]
+ arr.push(dic.dicItemCode)
+ }
+ return arr
+ },
selectAllSex(val) {
if (val) {
- this.queryParams.sex = ['1', '2']
+ this.queryParams.sex = this.dicListToArr(this.sexOptions)
} else {
this.queryParams.sex = []
}
},
selectAllEducation(val) {
if (val) {
- this.queryParams.education = ['91', '81', '71', '61', '42', '41', '31', '21', '11', '10']
+ this.queryParams.education = this.dicListToArr(this.educationOptions)
} else {
this.queryParams.education = []
}
},
selectAllPolitics(val) {
if (val) {
- this.queryParams.politics = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13']
+ this.queryParams.politics = this.dicListToArr(this.statusOptions)
} else {
this.queryParams.politics = []
}
},
selectAllAgeStr(val) {
if (val) {
- this.queryParams.ageStr = ['18-29', '30-39', '40-49', '50-59', '60-69', '69-999']
+ this.queryParams.ageStr = this.dicListToArr(this.ageStrOptions)
} else {
this.queryParams.ageStr = []
}
},
selectAllArchivesStatus(val) {
if (val) {
- this.queryParams.archivesStatus = ['0', '1']
+ this.queryParams.archivesStatus = this.dicListToArr(this.archivesStatusOptions)
} else {
this.queryParams.archivesStatus = []
}
},
selectAllInsuranceType(val) {
if (val) {
- this.queryParams.insuranceType = ['1', '2', '3', '4', '5']
+ this.queryParams.insuranceType = this.dicListToArr(this.insuranceTypeOptions)
} else {
this.queryParams.insuranceType = []
}
},
- selectAllEmpStatus(val) {
+ selectAllEmpType(val) {
if (val) {
- this.queryParams.empStatus = ['0', '1', '2', '3']
+ this.queryParams.empType = this.dicListToArr(this.empTypeOptions)
} else {
- this.queryParams.empStatus = []
+ this.queryParams.empType = []
}
},
- doDcbb() {
- this.$confirm('是否确定要导出报表?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- this.$message({
- type: 'success',
- message: '导出成功!'
- })
- }).catch(() => {
- this.$message({
- type: 'info',
- message: '已取消'
- })
- })
+ selectAllDimissionType(val) {
+ if (val) {
+ this.queryParams.dimissionType = [1, 2, 3, 4, 5, 6]
+ } else {
+ this.queryParams.dimissionType = []
+ }
+ },
+ handleCheckedCitiesChange(value) {
+ const checkedCount = value.length
+ this.checkAll = checkedCount === this.cityOptions.length
+ this.isIndeterminate = checkedCount > 0 && checkedCount < this.cityOptions.length
+ },
+ handleCheckAllChange(val) {
+ this.checkedCities = val ? this.cityOptions : []
+ this.isIndeterminate = false
+ },
+ selectAllCertificateList(val) {
+ if (val) {
+ this.queryParams.certificateList = this.dicListToArr(this.certificateListOptions)
+ } else {
+ this.queryParams.certificateList = []
+ }
+ },
+ showDcyg(operate) {
+ switch (operate) {
+ case 0:
+ this.dialogShowDcyg = true
+ break
+ case 1:
+ this.dialogShowDcyg = false
+ break
+ case 2:
+ var params = this.queryParams
+ params.empStatus = '1,2,3'
+ params.exportField = this.checkedCities.join(',')
+ this.$download('hr/empBaseInfo/exportWithField', { ...params }, '员工列表.xls').then(() => {
+ this.$message({
+ message: '下载成功!',
+ type: 'success'
+ })
+ })
+ break
+ }
+ },
+ changeSort(val) {
+ this.sort.field = val.prop
+ this.sort.order = val.order
+ this.search()
}
-
}
}
</script>
<style lang="scss">
-.fj-checkbox{
+.fj-checkbox {
.el-checkbox__input.is-checked .el-checkbox__inner {
- border-color: #a32c30;;
- background: #a32c30;;
+ border-color: #a32c30;;
+ background: #a32c30;;
}
+
.el-checkbox__label {
color: #000 !important;
}
}
</style>
<style lang="scss" scoped>
- .el-main {
- height: 600px;
- }
- .el-aside {
- padding: 20px;
- background: #f3f5f8;
- height: 600px;
+.el-main {
+ height: 600px;
+}
- }
+.el-aside {
+ padding: 20px;
+ background: #f3f5f8;
+ height: 600px;
+
+}
.searchTable {
- margin-top: 10px;
- border-collapse: collapse;
- width: 100%;
+ margin-top: 10px;
+ border-collapse: collapse;
+ width: 100%;
+
tr {
border-bottom: 1px dashed #d9dadb;
}
+
.td {
width: 90px;
text-align: right;
}
+
.td-group {
padding-left: 20px;
}
}
+
.searchTable td,
.searchTable th {
- color: #000;
- height: 50px;
- background-color: #fff;
+ color: #000;
+ height: 50px;
+ background-color: #fff;
}
- #ygxq table {
- border-collapse: collapse;
- margin: 0 auto;
- text-align: center;
+#ygxq table {
+ border-collapse: collapse;
+ margin: 0 auto;
+ text-align: center;
+ width: 100%;
+ margin-top: 20px;
+}
+
+#ygxq table td,
+#ygxq table th {
+ border: 1px solid #DDDCDC;
+ color: #666;
+ height: 30px;
+}
+
+#ygxq table thead th {
+ background-color: #CCE8EB;
+ width: 100px;
+}
+
+#ygxq table tr:nth-child(odd) {
+ background: #fff;
+}
+
+#ygxq table tr:nth-child(even) {
+ background: #F5FAFA;
+}
+
+#dcygTable {
+ border-collapse: collapse;
+ tr {
width: 100%;
- margin-top: 20px;
+ border-bottom: 1px dashed #ccc;
+ >td:nth-child(even) {
+ width: 100px;
+ text-align: left;
+ }
}
- #ygxq table td,
- #ygxq table th {
- border: 1px solid #DDDCDC;
- color: #666;
- height: 30px;
- }
+}
- #ygxq table thead th {
- background-color: #CCE8EB;
- width: 100px;
- }
+#dcygTable td {
+ width: 160px;
+ text-align: center;
+ height: 35px;
+ line-height: 35px;
+ font-size: 15px;
+ font-weight: 400;
+}
- #ygxq table tr:nth-child(odd) {
- background: #fff;
- }
+.tdTitle {
+ font-size: 14px;
+ font-weight: 700;
+ text-align: left;
+}
- #ygxq table tr:nth-child(even) {
- background: #F5FAFA;
- }
+.link_button {
+ color: #169BD5;
+}
- .tdTitle {
- font-size: 14px;
- font-weight: 700;
- text-align: left;
- }
+.del_button {
+ color: #D9001B;
+}
- .link_button {
- color: #169BD5;
- }
+</style>
+<style>
+.search-btn {
+ display: inline-block;
+ width: 3.64vw;
+ height: 3.2vh;
+ line-height: 3.2vh;
+ text-align: center;
+ background-color: #a00515;
+ color: #fff;
+ margin-left: 1vw;
+ box-sizing: border-box;
+ cursor: pointer;
+ vertical-align: middle;
+}
- .del_button {
- color: #D9001B;
- }
+.sup-search-btn {
+ display: inline-block;
+ width: 5.2vw;
+ height: 3.2vh;
+ line-height: 3.2vh;
+ text-align: center;
+ margin-left: 1vw;
+ color: #a00515;
+ border: 1px solid #a00515;
+ box-sizing: border-box;
+ cursor: pointer;
+ vertical-align: middle;
+}
- .search-btn {
- display: inline-block;
- width: 3.64vw;
- height: 3.2vh;
- line-height: 3.2vh;
- text-align: center;
- background-color: #a00515;
- color: #fff;
- margin-left: 1vw;
- box-sizing: border-box;
- cursor: pointer;
- vertical-align: middle;
- }
- .sup-search-btn {
- display: inline-block;
- width: 5.2vw;
- height: 3.2vh;
- line-height: 3.2vh;
- text-align: center;
- margin-left: 1vw;
- color: #a00515;
- border: 1px solid #a00515;
- box-sizing: border-box;
- cursor: pointer;
- vertical-align: middle;
- }
+.el-dialog.is-fullscreen {
+ overflow: hidden;
+}
</style>
--
Gitblit v1.8.0