| | |
| | | <h3 class="bu-tian-jia-title">离职员工</h3> |
| | | </el-col> |
| | | <el-col :span="9" style="margin-top: 15px;"> |
| | | <el-input v-model="queryParams.vague" placeholder="请输入内容" style="width:300px" /> |
| | | <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> |
| | |
| | | </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> |
| | |
| | | <td class="td-group"> |
| | | <el-checkbox-group v-model="queryParams.dimissionType" class="fj-checkbox"> |
| | | <el-checkbox label="" @change="selectAllDimissionType">全部</el-checkbox> |
| | | <el-checkbox :label="1">正常离职</el-checkbox> |
| | | <el-checkbox :label="2">自动离职</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--> |
| | | <!-- v-for="data in dimissionTypeOptions"--> |
| | | <!-- :key="data.dicItemName"--> |
| | | <!-- :label="data.dicItemCode"--> |
| | | <!-- >--> |
| | | <!-- {{ data.dicItemName }}--> |
| | | <!-- </el-checkbox>--> |
| | | <el-checkbox :label="5">试用期内</el-checkbox> |
| | | <el-checkbox :label="7">到龄退休</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> |
| | |
| | | :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="70"> |
| | |
| | | >编辑</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="部门(护卫点)" /> |
| | | <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="sex" label="性别" width="60" :formatter="sexFormat" /> |
| | | <el-table-column show-overflow-tooltip="true" prop="age" label="年龄" width="60" /> |
| | | <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="部门(护卫点)" 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="true" |
| | | show-overflow-tooltip |
| | | prop="education" |
| | | label="学历" |
| | | width="60" |
| | | :formatter="educationFormat" |
| | | ortable="custom" |
| | | :sort-orders="['ascending', 'descending']" |
| | | /> |
| | | <el-table-column show-overflow-tooltip="true" prop="nativePlaceName" label="籍贯" width="70" /> |
| | | <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="true" |
| | | show-overflow-tooltip |
| | | prop="empType" |
| | | label="员工类型" |
| | | width="80" |
| | | :formatter="empTypeFormat" |
| | | /> |
| | | <el-table-column show-overflow-tooltip="true" prop="telePhone" label="联系电话" width="120" /> |
| | | <el-table-column show-overflow-tooltip="true" prop="entryDate" label="入职日期" width="130" /> |
| | | <el-table-column show-overflow-tooltip="true" prop="dimissionDate" label="离职日期" width="130" /> |
| | | <el-table-column show-overflow-tooltip="true" prop="empStatus" 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="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="dimissionTypeName" label="离职类型" width="80" /> |
| | | <el-table-column prop="dimissionType" label="离职类型" width="120" sortable="custom" :sort-orders="['ascending', 'descending']"> |
| | | <template slot-scope="{row}"> |
| | | {{ transEntryType(row.dimissionType) }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column show-overflow-tooltip prop="annualLeave" label="年假天数" width="110" /> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total>0" |
| | |
| | | <tr> |
| | | <td>入职日期</td> |
| | | <td>2020-01-02</td> |
| | | <td>保险类型</td> |
| | | <td>社保档位</td> |
| | | <td>深户(五险一档)</td> |
| | | <td>社保电脑号</td> |
| | | <td /> |
| | |
| | | <td>已发</td> |
| | | </tr> |
| | | <tr> |
| | | <td>家庭成员及关系</td> |
| | | <td>家庭成员及关系1</td> |
| | | <td /> |
| | | <td>紧急联系电话</td> |
| | | <td>家庭成员及关系2</td> |
| | | <td /> |
| | | <td>员工手册</td> |
| | | <td>已发</td> |
| | |
| | | </table> |
| | | <table> |
| | | <tr> |
| | | <td colspan="8" class="tdTitle">劳资案件</td> |
| | | <td class="link_button">新增劳资案件</td> |
| | | <td colspan="8" class="tdTitle">仲裁案件</td> |
| | | <td class="link_button">新增仲裁案件</td> |
| | | <td class="del_button">删除</td> |
| | | </tr> |
| | | <tr> |
| | |
| | | <el-col span="24"> |
| | | <el-form-item label="打开类型" prop="region"> |
| | | <el-radio-group v-model="baseicInformationForm.openType"> |
| | | <el-radio :label="2">重新入职</el-radio> |
| | | <el-radio :label="3">返聘</el-radio> |
| | | <el-radio :label="21">重新入职</el-radio> |
| | | <el-radio :label="22">返聘</el-radio> |
| | | </el-radio-group> |
| | | (主要对已退休员工返聘) |
| | | </el-form-item> |
| | |
| | | value-format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="选择打开日期" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="部门(护卫点)" required message="请选择部门(护卫点)" prop="allDeptName"> |
| | | <treeselect |
| | | v-model="baseicInformationForm.deptId" |
| | | :multiple="false" |
| | | :options="depts" |
| | | :clear-value-text="$t('common.clear')" |
| | | placeholder="请选择部门(护卫点)" |
| | | style="width:100%" |
| | | @select="DeptNameSelect" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="备注说明"> |
| | |
| | | <tr> |
| | | <td>部门(护卫点)</td> |
| | | <td> |
| | | <el-checkbox label="deptName"><span /></el-checkbox> |
| | | <el-checkbox label="allDeptName"><span /></el-checkbox> |
| | | </td> |
| | | <td>所属岗位</td> |
| | | <td> |
| | |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>家庭成员及关系</td> |
| | | <td>家庭成员及关系1</td> |
| | | <td> |
| | | <el-checkbox label="family"><span /></el-checkbox> |
| | | </td> |
| | |
| | | <td> |
| | | <el-checkbox label="entryDate"><span /></el-checkbox> |
| | | </td> |
| | | <td>保险类型</td> |
| | | <td>社保档位</td> |
| | | <td> |
| | | <el-checkbox label="insuranceTypeName"><span /></el-checkbox> |
| | | </td> |
| | |
| | | <tr> |
| | | <td>相关证件</td> |
| | | <td> |
| | | <el-checkbox label="certificateList"><span /></el-checkbox> |
| | | <el-checkbox label="certificateListName"><span /></el-checkbox> |
| | | </td> |
| | | <td>紧急联系电话</td> |
| | | <td>家庭成员及关系2</td> |
| | | <td> |
| | | <el-checkbox label="urgencyPhone"><span /></el-checkbox> |
| | | </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> |
| | | <td>年假天数</td> |
| | | <td> |
| | | <el-checkbox label="annualLeave"><span /></el-checkbox> |
| | | </td> |
| | | <td /> |
| | | <td /> |
| | | <td /> |
| | | <td /> |
| | | </tr> |
| | | </el-checkbox-group> |
| | | </table> |
| | |
| | | <script> |
| | | import Pagination from '@/components/Pagination' |
| | | import ArchivesChange from './archivesChange' |
| | | import Treeselect from '@riophae/vue-treeselect' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | |
| | | export default { |
| | | components: { |
| | | Treeselect, |
| | | ArchivesChange, |
| | | Pagination |
| | | }, |
| | | mixins: [dictMixin], |
| | | data() { |
| | | return { |
| | | dialog: { |
| | |
| | | insuranceType: [], |
| | | empStatus: [], |
| | | dimissionType: [], |
| | | empType: [] |
| | | empType: [], |
| | | certificateList: [] |
| | | }, // 查询参数 |
| | | sort: {}, // 排序 |
| | | pagination: { // 分页参数 |
| | | size: 15, |
| | | num: 1 |
| | | }, |
| | | depts: [], |
| | | headerHeight: '30px', |
| | | advancedQueryShow: false, |
| | | dialogTableVisible: false, |
| | |
| | | baseicInformationForm: { |
| | | openDate: new Date() |
| | | }, |
| | | educationOptions: [], |
| | | statusOptions: [], |
| | | ageStrOptions: [], |
| | | insuranceTypeOptions: [], |
| | | archivesStatusOptions: [], |
| | | sexOptions: [], |
| | | empTypeOptions: [], |
| | | cityOptions: ['archivesNumb', 'deptName', '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', 'empCardStatus', 'certificateList', 'urgencyPhone', 'handbookStatusName', 'family', 'empTypeName', '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', 'annualLeave'], |
| | | checkedCities: [] |
| | | } |
| | | }, |
| | | computed: { |
| | | // 字典选项计算属性 |
| | | educationOptions() { return this.getDictOptions('EDUCATION') }, |
| | | statusOptions() { return this.getDictOptions('PLITICAL') }, |
| | | ageStrOptions() { return this.getDictOptions('ageStr') }, |
| | | insuranceTypeOptions() { return this.getDictOptions('INSURANCETYPE') }, |
| | | archivesStatusOptions() { return this.getDictOptions('archivesStatus') }, |
| | | sexOptions() { return this.getDictOptions('sex') }, |
| | | empTypeOptions() { return this.getDictOptions('EMPTYPE') }, |
| | | certificateListOptions() { return this.getDictOptions('certificateList') } |
| | | }, |
| | | 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 |
| | | }) |
| | | // 字典数据已在登录时预加载,直接从 Vuex 获取 |
| | | this.initDictTypes(['INSURANCETYPE', 'archivesStatus', 'EDUCATION', 'sex', 'PLITICAL', 'ageStr', 'EMPTYPE', 'certificateList']) |
| | | this.initDept() |
| | | }, |
| | | methods: { |
| | | initDept() { |
| | | this.$get('system/dept').then((r) => { |
| | | this.depts = r.data.data.rows |
| | | this.deptTree = this.depts |
| | | }).catch((error) => { |
| | | console.error(error) |
| | | this.$message({ |
| | | message: this.$t('tips.getDataFail'), |
| | | type: 'error' |
| | | }) |
| | | }) |
| | | }, |
| | | DeptNameSelect(val) { |
| | | this.baseicInformationForm.deptId = val.deptId |
| | | this.baseicInformationForm.deptName = val.label |
| | | this.baseicInformationForm.allDeptName = val.allDeptName |
| | | }, |
| | | exportExcel() { |
| | | this.queryParams.baseKey = this.queryParams.vague |
| | | var params = this.queryParams |
| | |
| | | }, |
| | | // 翻页方法 |
| | | search() { |
| | | this.queryParams.vague = '' |
| | | this.queryParams.baseKey = '' |
| | | this.fetch({ |
| | | ...this.queryParams, |
| | | ...this.sort |
| | |
| | | }, |
| | | vagueSearch() { |
| | | this.fetch({ |
| | | baseKey: this.queryParams.vague |
| | | baseKey: this.queryParams.baseKey |
| | | }) |
| | | }, |
| | | transEmpStatus(empStatus) { |
| | |
| | | return '退休' |
| | | } |
| | | }, |
| | | transEntryType(entryType) { |
| | | switch (entryType) { |
| | | case '1': |
| | | return '合同期满' |
| | | case '2': |
| | | return '公司劝退' |
| | | case '3': |
| | | return '公司辞退' |
| | | case '4': |
| | | return '自动离职' |
| | | case '5': |
| | | return '试用期内' |
| | | case '6': |
| | | return '正常离职' |
| | | case '7': |
| | | return '到龄退休' |
| | | } |
| | | }, |
| | | transDimissionType(dimissionType) { |
| | | switch (dimissionType) { |
| | | case '1': |
| | |
| | | case '2': |
| | | return '自动离职' |
| | | case '3': |
| | | return '公司劝退' |
| | | case '4': |
| | | return '公司辞退' |
| | | case '5': |
| | | return '试用期内' |
| | | // case '4': |
| | | // return '公司辞退' |
| | | // case '5': |
| | | // return '试用期内' |
| | | } |
| | | }, |
| | | advancedQueryShowMethods() { |
| | |
| | | var id = selection[0].empId |
| | | var name = selection[0].empName |
| | | var number = selection[0].certificateNumb |
| | | var deptName = selection[0].deptName |
| | | var deptId = selection[0].deptId |
| | | var allDeptName = selection[0].allDeptName |
| | | const nowDate = new Date() |
| | | const year = nowDate.getFullYear() |
| | | const month = nowDate.getMonth() + 1 |
| | |
| | | empId: id, |
| | | empName: name, |
| | | certificateNumb: number, |
| | | openType: 2, |
| | | openType: 21, |
| | | openDate: year + '-' + month + '-' + day, |
| | | remark: '' |
| | | remark: '', |
| | | deptId: deptId, |
| | | deptName: deptName, |
| | | allDeptName: allDeptName |
| | | } |
| | | this.dialogShowDkda = true |
| | | } else { |
| | |
| | | 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) { |
| | | if (val) { |
| | | this.queryParams.empStatus = ['0', '1', '2', '3'] |
| | | } else { |
| | | this.queryParams.empStatus = [] |
| | | } |
| | | }, |
| | | selectAllEmpType(val) { |
| | | if (val) { |
| | | this.queryParams.empType = ['01', '02'] |
| | | this.queryParams.empType = this.dicListToArr(this.empTypeOptions) |
| | | } else { |
| | | this.queryParams.empType = [] |
| | | } |
| | | }, |
| | | selectAllDimissionType(val) { |
| | | if (val) { |
| | | this.queryParams.dimissionType = [1, 2, 3] |
| | | this.queryParams.dimissionType = [1, 2, 3, 4, 5, 6] |
| | | } else { |
| | | this.queryParams.dimissionType = [] |
| | | } |
| | |
| | | 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) { |
| | |
| | | }) |
| | | break |
| | | } |
| | | }, |
| | | changeSort(val) { |
| | | this.sort.field = val.prop |
| | | this.sort.order = val.order |
| | | this.search() |
| | | } |
| | | } |
| | | } |