<template>
|
<div class="da-dialog">
|
<el-dialog
|
:title="title"
|
width="100%"
|
height="100vh"
|
center
|
fullscreen
|
:close-on-click-modal="false"
|
:visible.sync="isVisible"
|
>
|
|
<div class="conDetails">
|
<div class="menu dadetails">
|
<div style="height: 22vh;">
|
|
<!-- 头像显示区域 -->
|
<div class="avatar-wrapper">
|
<img
|
v-if="empBaseInfoImageUrl"
|
:src="empBaseInfoImageUrl"
|
class="avatar"
|
@click="openUploadChoice"
|
>
|
<div v-else class="avatar-uploader-placeholder" @click="openUploadChoice">
|
<i class="el-icon-plus avatar-uploader-icon" />
|
<div class="upload-tip">点击上传照片</div>
|
</div>
|
</div>
|
<!-- <img src="https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1333074204,3035391839&fm=26&gp=0.jpg" class="jbxxImg">-->
|
<div class="title-da">
|
档案号:{{ empBaseInfoForm.archivesNumb }}
|
</div>
|
</div>
|
<ul class="jbxx-ul" style="height: 68vh;overflow: auto">
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='jbxx'?'light':''" @click="goAnchor('jbxx')">
|
基本信息
|
</a>
|
</div>
|
</li>
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='gzjl'?'light':''" @click="goAnchor('gzjl')">
|
工作经历
|
</a>
|
</div>
|
</li>
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='tjxx'?'light':''" @click="goAnchor('tjxx')">
|
体检信息
|
</a>
|
</div>
|
</li>
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='htxx'?'light':''" @click="goAnchor('htxx')">
|
合同信息
|
</a>
|
</div>
|
</li>
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='tgjl'?'light':''" @click="goAnchor('tgjl')">
|
调岗记录
|
</a>
|
</div>
|
</li>
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='qjjl'?'light':''" @click="goAnchor('qjjl')">
|
请假记录
|
</a>
|
</div>
|
</li>
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='czsq'?'light':''" @click="goAnchor('czsq')">
|
辞职申请
|
</a>
|
</div>
|
</li>
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='lzdykq'?'light':''" @click="goAnchor('lzdykq')">
|
离职当月考勤
|
</a>
|
</div>
|
</li>
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='rlzjl'?'light':''" @click="goAnchor('rlzjl')">
|
入离职记录
|
</a>
|
</div>
|
</li>
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='syjlq'?'light':''" @click="goAnchor('syjlq')">
|
失业金领取
|
</a>
|
</div>
|
</li>
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='sbsq'?'light':''" @click="goAnchor('sbsq')">
|
社保申请
|
</a>
|
</div>
|
</li>
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='ywxaj'?'light':''" @click="goAnchor('ywxaj')">
|
意外险案件
|
</a>
|
</div>
|
</li>
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='gsaj'?'light':''" @click="goAnchor('gsaj')">
|
工伤案件
|
</a>
|
</div>
|
</li>
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='lzaj'?'light':''" @click="goAnchor('lzaj')">
|
仲裁案件
|
</a>
|
</div>
|
</li>
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='bljl'?'light':''" @click="goAnchor('bljl')">
|
不良记录
|
</a>
|
</div>
|
</li>
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='bz'?'light':''" @click="goAnchor('bz')">
|
备注
|
</a>
|
</div>
|
</li>
|
<li>
|
<div />
|
<div class="item-node" />
|
<div>
|
<a href="javascript:void(0)" :class="item=='jljt'?'light':''" @click="goAnchor('jljt')">
|
记录截图及相关附件
|
</a>
|
</div>
|
</li>
|
</ul>
|
</div>
|
<div ref="boxDetails" class="boxDetails">
|
<div ref="jbxx" class="jbxx">
|
<div class="jbxxTitle">
|
基本信息
|
<el-button
|
style="position:absolute;right: 130px"
|
class="filter-item"
|
type="primary"
|
@click.native="gzupdate"
|
>
|
编辑
|
</el-button>
|
<el-button
|
v-if="readon"
|
style="position:absolute;right: 130px"
|
class="filter-item"
|
type="primary"
|
@click.native="gzupdate1"
|
>
|
保存
|
</el-button>
|
<el-button
|
style="position:absolute;right: 20px"
|
class="filter-item"
|
type="primary"
|
@click="ExportSavePdf"
|
>
|
导出档案
|
</el-button>
|
</div>
|
|
<div class="jbxxCon" style="padding: 20px 40px 0 20px">
|
<el-form ref="empBaseInfoForm" :model="empBaseInfoForm" class="formjbxx" label-width="150px">
|
<el-row style="width: 100%;">
|
<el-col :span="8">
|
<el-form-item label="编号" prop="empNumb">
|
<el-input
|
v-model="empBaseInfoForm.empNumb"
|
style="width: 100%;"
|
:disabled="readon ? false : true"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="姓名" prop="empName">
|
<el-input v-model="empBaseInfoForm.empName" :disabled="readon ? false : true" />
|
</el-form-item>
|
</el-col>
|
|
<el-col :span="8">
|
<el-form-item label="身份证号码" prop="certificateNumb">
|
<el-input
|
v-model="empBaseInfoForm.certificateNumb"
|
:disabled="readon ? false : true"
|
@input="generateUserInfo(0,empBaseInfoForm.certificateNumb)"
|
/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="性别" prop="sex">
|
<el-select
|
v-model="empBaseInfoForm.sex"
|
placeholder="请选择性别"
|
:disabled="readon ? false : true"
|
>
|
<el-option
|
v-for="dict in sexOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="部门(护卫点)" prop="deptId">
|
<treeselect
|
v-model="empBaseInfoForm.deptId"
|
:disabled="readon ? false : true"
|
:multiple="false"
|
:options="depts"
|
:clear-value-text="$t('common.clear')"
|
placeholder="请选择部门(护卫点)"
|
style="width: 100%;"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="岗位" prop="jobName">
|
<el-autocomplete
|
v-model="empBaseInfoForm.jobName"
|
:disabled="readon ? false : true"
|
class="inline-input"
|
:fetch-suggestions="querySearchJob"
|
placeholder="请输入岗位"
|
@select="jobNameSelect"
|
/>
|
</el-form-item>
|
</el-col>
|
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="员工类别" prop="empType">
|
<el-select
|
v-model="empBaseInfoForm.empType"
|
placeholder="请选择员工类型"
|
:disabled="readon ? false : true"
|
>
|
<el-option
|
v-for="dict in empTypeOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="民族" prop="nation">
|
<el-select
|
v-model="empBaseInfoForm.nation"
|
filterable
|
placeholder="请选择民族"
|
:disabled="readon ? false : true"
|
>
|
<el-option
|
v-for="dict in nationOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="年龄" prop="age">
|
<el-input v-model="empBaseInfoForm.age" :disabled="readon ? false : true" />
|
</el-form-item>
|
</el-col>
|
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="婚姻状态" prop="marriage">
|
<el-select
|
v-model="empBaseInfoForm.marriage"
|
placeholder="请选择婚姻状态"
|
:disabled="readon ? false : true"
|
>
|
<el-option
|
v-for="dict in marriageOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="身份证有效期" prop="certificateValidity">
|
<el-date-picker
|
v-model="empBaseInfoForm.certificateValidity"
|
:disabled="readon ? false : true"
|
type="date"
|
value-format="yyyy-MM-dd"
|
placeholder="选择日期"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="身高(cm)" prop="stature">
|
<el-input v-model="empBaseInfoForm.stature" :disabled="readon ? false : true" />
|
</el-form-item>
|
</el-col>
|
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="政治面貌" prop="politics">
|
<el-select
|
v-model="empBaseInfoForm.politics"
|
placeholder="请选择政治面貌"
|
:disabled="readon ? false : true"
|
>
|
<el-option
|
v-for="dict in statusOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="出生日期" prop="birthdate">
|
<el-date-picker
|
v-model="empBaseInfoForm.birthdate"
|
:disabled="readon ? false : true"
|
type="date"
|
value-format="yyyy-MM-dd"
|
placeholder="选择日期"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="最高学历" prop="education">
|
<el-select
|
v-model="empBaseInfoForm.education"
|
placeholder="请选择最高学历"
|
:disabled="readon ? false : true"
|
>
|
<el-option
|
v-for="dict in educationOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="籍贯" prop="nativePlaceName">
|
<el-select
|
v-model="empBaseInfoForm.nativePlace"
|
placeholder="请选择籍贯"
|
:disabled="readon ? false : true"
|
>
|
<el-option
|
v-for="dict in nativePlaceOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="户籍地址" prop="censusAddress">
|
<el-input v-model="empBaseInfoForm.censusAddress" :disabled="readon ? false : true" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="现住址" prop="currentAddress">
|
<el-input v-model="empBaseInfoForm.currentAddress" :disabled="readon ? false : true" />
|
</el-form-item>
|
</el-col>
|
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="保安员回执" prop="returnReceipt">
|
<el-input v-model="empBaseInfoForm.returnReceipt" :disabled="readon ? false : true" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="保安员证号" prop="guardNumb">
|
<el-input v-model="empBaseInfoForm.guardNumb" :disabled="readon ? false : true" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="档案情况" prop="archivesStatus">
|
<el-select
|
v-model="empBaseInfoForm.archivesStatus"
|
placeholder="请选择档案情况"
|
:disabled="readon ? false : true"
|
>
|
<el-option
|
v-for="dict in archivesStatusOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="银行名称" prop="bankName">
|
<el-input v-model="empBaseInfoForm.bankName" :disabled="readon ? false : true" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="银行账号" prop="bankNumb">
|
<el-input v-model="empBaseInfoForm.bankNumb" :disabled="readon ? false : true" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="电话号码" prop="telePhone">
|
<el-input v-model="empBaseInfoForm.telePhone" :disabled="readon ? false : true" />
|
</el-form-item>
|
</el-col>
|
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="入职日期" prop="entryDate">
|
<el-date-picker
|
v-model="empBaseInfoForm.entryDate"
|
:disabled="readon ? false : true"
|
type="date"
|
value-format="yyyy-MM-dd"
|
placeholder="选择日期"
|
@input="calculateSeniority"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="社保档位" prop="insuranceType">
|
<el-select
|
v-model="empBaseInfoForm.insuranceType"
|
placeholder="请选择社保档位"
|
:disabled="readon ? false : true"
|
>
|
<el-option
|
v-for="dict in insuranceTypeOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="社保电脑号" prop="socialNumb">
|
<el-input v-model="empBaseInfoForm.socialNumb" :disabled="readon ? false : true" />
|
</el-form-item>
|
</el-col>
|
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="招聘介绍人" prop="introducer">
|
<el-input v-model="empBaseInfoForm.introducer" :disabled="readon ? false : true" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="入司工龄" prop="seniority">
|
<el-input v-model="empBaseInfoForm.seniority" :disabled="readon ? false : true" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="工作证" prop="empCardStatus">
|
<el-select
|
v-model="empBaseInfoForm.empCardStatus"
|
placeholder="请选择工作证"
|
:disabled="readon ? false : true"
|
>
|
<el-option
|
v-for="dict in empCardStatusOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
|
</el-row>
|
<el-row>
|
<el-col :span="8">
|
<el-form-item label="家庭成员及关系1" prop="family">
|
<el-input v-model="empBaseInfoForm.family" :disabled="readon ? false : true" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="家庭成员及关系2" prop="urgencyPhone">
|
<el-input v-model="empBaseInfoForm.urgencyPhone" :disabled="readon ? false : true" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="员工手册" prop="handbookStatus">
|
<el-select
|
v-model="empBaseInfoForm.handbookStatus"
|
placeholder="请选择员工手册"
|
:disabled="readon ? false : true"
|
>
|
<el-option
|
v-for="dict in handbookStatusOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="相关证件" prop="certificateList">
|
<el-select
|
v-model="empBaseInfoForm.certificateList"
|
multiple
|
placeholder="请选择相关证件"
|
:disabled="readon ? false : true"
|
>
|
<el-option
|
v-for="dict in certificateListOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="年假天数" prop="annualLeave">
|
<el-input v-model="empBaseInfoForm.annualLeave" disabled />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
</div>
|
</div>
|
<div ref="gzjl" class="gzjl">
|
<div class="jbxxTitle">
|
工作经历
|
<el-button class="filter-item" type="primary" @click.native="gzadd(1)">
|
{{ $t('table.add') }}
|
</el-button>
|
</div>
|
|
<div class="jbxxCon">
|
<el-table
|
ref="workExperienceTable"
|
:key="tableKey"
|
:data="workExperienceData"
|
stripe
|
border
|
:header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
|
:cell-style="{padding:'7px 0','text-align':'center'}"
|
:highlight-current-row="true"
|
@selection-change="onworkExperienceDataselection"
|
>
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" width="55">
|
<template slot-scope="scope">
|
<span v-text="getIndex(scope.$index)" />
|
</template>
|
</el-table-column>
|
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="workExperienceId" label="工作单位" />
|
<el-table-column show-overflow-tooltip prop="beginDate" label="开始日期" />
|
<el-table-column show-overflow-tooltip prop="endDate" label="结束日期" />
|
<el-table-column show-overflow-tooltip prop="workUnit" label="工作单位" />
|
<el-table-column show-overflow-tooltip prop="jobContent" label="主要工作内容" />
|
<el-table-column show-overflow-tooltip fixed="right" label="操作" width="120">
|
<template slot-scope="scope">
|
<span class="table-button" @click="editWorkExperience(scope.row,1)">编辑</span>
|
<span
|
class="table-button"
|
@click="singleDelete(scope.row, 'workExperienceDataselection')"
|
>删除</span>
|
</template>
|
</el-table-column>
|
</el-table>
|
<pagination
|
v-show="workExperienceDatatotal>0"
|
:total="workExperienceDatatotal"
|
:page.sync="pagination.num"
|
:limit.sync="pagination.size"
|
@pagination="initList()"
|
/>
|
</div>
|
</div>
|
<div ref="tjxx" class="tjxx">
|
<div class="jbxxTitle">
|
体检信息
|
<el-button class="filter-item" type="primary" @click.native="gzadd(2)">
|
{{ $t('table.add') }}
|
</el-button>
|
</div>
|
|
<div class="jbxxCon">
|
<el-table
|
ref="physicalExamTable"
|
:data="physicalExamData"
|
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%;"
|
@selection-change="onphysicalExamDataselection"
|
>
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" width="55">
|
<template slot-scope="scope">
|
<span v-text="getIndex(scope.$index)" />
|
</template>
|
</el-table-column>
|
<el-table-column show-overflow-tooltip fixed="right" label="操作" width="120">
|
<template slot-scope="scope">
|
<span class="table-button" @click="editPhysicalExam(scope.row,2)">编辑</span>
|
<span class="table-button" @click="singleDelete(scope.row, 'physicalExamDataselection')">删除</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="physicalExamId" label="" />
|
<el-table-column show-overflow-tooltip prop="hospital" label="体检医院" width="150" />
|
<el-table-column show-overflow-tooltip prop="physicalExamDate" label="体检日期" width="140" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="physicalExamType"
|
label="体检类型"
|
width="140"
|
:formatter="typeFormat"
|
/>
|
<el-table-column show-overflow-tooltip prop="bloodPressure" label="血压" width="140" />
|
<el-table-column show-overflow-tooltip prop="transaminase" label="转氨酶" width="140" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="ecg"
|
label="心电图"
|
width="140"
|
:formatter="ecgNameFormat"
|
/>
|
<el-table-column show-overflow-tooltip prop="conclusion" label="体检结论" />
|
<el-table-column show-overflow-tooltip prop="reviewRecord" label="复查记录" width="140" />
|
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
|
</el-table>
|
<pagination
|
v-show="physicalExamDatatotal>0"
|
:total="physicalExamDatatotal"
|
:page.sync="pagination.num"
|
:limit.sync="pagination.size"
|
@pagination="initphysicalExamData()"
|
/>
|
</div>
|
</div>
|
<div ref="htxx" class="htxx">
|
<div class="jbxxTitle">
|
合同信息
|
<el-button class="filter-item" type="primary" @click.native="gzadd(3)">
|
{{ $t('table.add') }}
|
</el-button>
|
</div>
|
|
<div class="jbxxCon">
|
<el-table
|
ref="contractInfoTable"
|
:data="contractInfoData"
|
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%;"
|
@selection-change="oncontractInfoDataselection"
|
>
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" width="55">
|
<template slot-scope="scope">
|
<span v-text="getIndex(scope.$index)" />
|
</template>
|
</el-table-column>
|
<el-table-column show-overflow-tooltip fixed="right" label="操作" width="120">
|
<template slot-scope="scope">
|
<span class="table-button" @click="editContractInfo(scope.row,3)">编辑</span>
|
<span class="table-button" @click="singleDelete(scope.row, 'contractInfoDataselection')">删除</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="contractId" label="" />
|
<el-table-column show-overflow-tooltip prop="signingDate" label="合同签订日期" />
|
<el-table-column show-overflow-tooltip prop="endDate" label="合同结束日期" />
|
<el-table-column show-overflow-tooltip prop="contractPeriod" label="合同期限(年)" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="contractStatus"
|
label="合同状态"
|
:formatter="contractStatusFormat"
|
/>
|
<el-table-column show-overflow-tooltip prop="transactor" label="合同办理人" />
|
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
|
</el-table>
|
<pagination
|
v-show="contractInfoDatatotal>0"
|
:total="contractInfoDatatotal"
|
:page.sync="pagination.num"
|
:limit.sync="pagination.size"
|
@pagination="initcontractInfoData()"
|
/>
|
</div>
|
</div>
|
<div ref="tgjl" class="tgjl">
|
<div class="jbxxTitle">
|
调岗记录
|
</div>
|
<div class="jbxxCon">
|
<el-table
|
ref="jobChangeTable"
|
:data="jobChangeData"
|
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%;"
|
>
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" width="55">
|
<template slot-scope="scope">
|
<span v-text="getIndex(scope.$index)" />
|
</template>
|
</el-table-column>
|
<el-table-column show-overflow-tooltip prop="allDeptName" label="现部门" />
|
<el-table-column show-overflow-tooltip prop="newJobName" label="现岗位" />
|
<el-table-column show-overflow-tooltip prop="empName" label="姓名" width="180" />
|
<el-table-column show-overflow-tooltip prop="oldDeptName" label="原部门" />
|
<el-table-column show-overflow-tooltip prop="oldJobName" label="原岗位" />
|
<el-table-column show-overflow-tooltip prop="changeDate" label="调岗日期" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="changeType"
|
label="调岗类型"
|
:formatter="changeTypeFormat"
|
/>
|
<el-table-column show-overflow-tooltip prop="changeReason" label="调岗理由" />
|
</el-table>
|
<pagination
|
v-show="jobChangeDatatotal>0"
|
:total="jobChangeDatatotal"
|
:page.sync="pagination.num"
|
:limit.sync="pagination.size"
|
@pagination="initjobChangeData()"
|
/>
|
</div>
|
</div>
|
<div ref="qjjl" class="qjjl">
|
<div class="jbxxTitle">
|
请假记录
|
<el-button class="filter-item" type="primary" @click.native="gzadd(5)">
|
{{ $t('table.add') }}
|
</el-button>
|
</div>
|
|
<div class="jbxxCon">
|
<el-table
|
ref="leaveInfoTable"
|
:data="leaveInfoData"
|
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%;"
|
@selection-change="onleaveInfoDataselection"
|
>
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" width="55">
|
<template slot-scope="scope">
|
<span v-text="getIndex(scope.$index)" />
|
</template>
|
</el-table-column>
|
<el-table-column show-overflow-tooltip fixed="right" label="操作" width="120">
|
<template slot-scope="scope">
|
<span class="table-button" @click="editLeaveInfo(scope.row,5)">编辑</span>
|
<span class="table-button" @click="singleDelete(scope.row, 'leaveInfoDataselection')">删除</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="leaveId" label="" />
|
<el-table-column show-overflow-tooltip prop="beginTime" label="开始时间" width="180" />
|
<el-table-column show-overflow-tooltip prop="endTime" label="结束时间" width="180" />
|
<el-table-column show-overflow-tooltip prop="leaveDay" label="请假天数" width="100" />
|
<el-table-column show-overflow-tooltip prop="leaveType" label="请假类型" :formatter="leaveTypeFormat" />
|
<el-table-column show-overflow-tooltip prop="returnDate" label="到岗时间" width="180" />
|
<el-table-column show-overflow-tooltip prop="reporter" label="报备人" width="100" />
|
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
|
</el-table>
|
<pagination
|
v-show="leaveInfoDatatotal>0"
|
:total="leaveInfoDatatotal"
|
:page.sync="pagination.num"
|
:limit.sync="pagination.size"
|
@pagination="initleaveInfoData()"
|
/>
|
</div>
|
</div>
|
<div ref="czsq" class="czsq">
|
<div class="jbxxTitle">
|
辞职申请
|
<el-button class="filter-item" type="primary" @click.native="gzadd(6)">
|
{{ $t('table.add') }}
|
</el-button>
|
</div>
|
|
<div class="jbxxCon">
|
<el-table
|
ref="resignTable"
|
:data="resignData"
|
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%;"
|
@selection-change="onresignDataselection"
|
>
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" width="55">
|
<template slot-scope="scope">
|
<span v-text="getIndex(scope.$index)" />
|
</template>
|
</el-table-column>
|
<el-table-column show-overflow-tooltip fixed="right" label="操作" width="120">
|
<template slot-scope="scope">
|
<span class="table-button" @click="editResign(scope.row,5)">编辑</span>
|
<span class="table-button" @click="singleDelete(scope.row, 'resignDataselection')">删除</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="resignId" label="" />
|
<el-table-column show-overflow-tooltip prop="applayDate" label="辞职申请日期" />
|
<el-table-column show-overflow-tooltip prop="reason" label="辞职事由" />
|
<el-table-column show-overflow-tooltip prop="reporter" label="汇报人" />
|
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
|
</el-table>
|
<pagination
|
v-show="resignDatatotal>0"
|
:total="resignDatatotal"
|
:page.sync="pagination.num"
|
:limit.sync="pagination.size"
|
@pagination="initresignData()"
|
/>
|
</div>
|
</div>
|
<div ref="lzdykq" class="lzdykq">
|
<div class="jbxxTitle">
|
离职当月考勤
|
<el-button class="filter-item" type="primary" @click.native="gzadd(4)">
|
{{ $t('table.add') }}
|
</el-button>
|
</div>
|
|
<div class="jbxxCon">
|
<el-table
|
ref="dimissionAttendTable"
|
:data="dimissionAttendData"
|
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%;"
|
@selection-change="ondimissionAttendDataselection"
|
>
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" width="55">
|
<template slot-scope="scope">
|
<span v-text="getIndex(scope.$index)" />
|
</template>
|
</el-table-column>
|
<el-table-column show-overflow-tooltip fixed="right" label="操作" width="120">
|
<template slot-scope="scope">
|
<span class="table-button" @click="editDimissionAttend(scope.row,6)">编辑</span>
|
<span
|
class="table-button"
|
@click="singleDelete(scope.row, 'dimissionAttendDataselection')"
|
>删除</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="dimissionAttendId" label="" />
|
<el-table-column show-overflow-tooltip prop="attendMonth" label="离职考勤月份" />
|
<el-table-column show-overflow-tooltip prop="attendDays" label="出勤天数" width="150" />
|
<el-table-column show-overflow-tooltip prop="overtimeDay" label="加班(天)" width="150" />
|
<el-table-column show-overflow-tooltip prop="overtimeHour" label="加班(小时)" />
|
<el-table-column show-overflow-tooltip prop="deduct" label="有无代扣款项" width="180" />
|
<el-table-column show-overflow-tooltip prop="leaveDay" label="请假(天)" />
|
<el-table-column show-overflow-tooltip prop="absenteeism" label="旷工(天)" />
|
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
|
</el-table>
|
<pagination
|
v-show="dimissionAttendDatatotal>0"
|
:total="dimissionAttendDatatotal"
|
:page.sync="pagination.num"
|
:limit.sync="pagination.size"
|
@pagination="initdimissionAttendData()"
|
/>
|
</div>
|
</div>
|
<div ref="rlzjl" class="rlzjl">
|
<div class="jbxxTitle">
|
入离职记录
|
</div>
|
<div class="jbxxCon">
|
<el-table
|
ref="dimissionLogTable"
|
:data="dimissionLogData"
|
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%;"
|
>
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" width="55">
|
<template slot-scope="scope">
|
<span v-text="getIndex(scope.$index)" />
|
</template>
|
EmpLeaveInfo
|
</el-table-column>
|
<el-table-column show-overflow-tooltip prop="deptName" label="部门/护卫点" />
|
<el-table-column show-overflow-tooltip prop="entryDate" label="入职日期" />
|
<el-table-column show-overflow-tooltip prop="dimissionDate" label="离职日期" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="dimissionType"
|
label="离职类型"
|
:formatter="dimissionTypeFormat"
|
/>
|
<el-table-column show-overflow-tooltip prop="selfLeaveDay" label="自离天数" />
|
<el-table-column show-overflow-tooltip prop="reporter" label="报备人" />
|
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
|
</el-table>
|
<pagination
|
v-show="dimissionLogDatatotal>0"
|
:total="dimissionLogDatatotal"
|
:page.sync="pagination.num"
|
:limit.sync="pagination.size"
|
@pagination="initdimissionLogData()"
|
/>
|
</div>
|
</div>
|
<div ref="syjlq" class="syjlq">
|
<div class="jbxxTitle">
|
失业金领取
|
<el-button class="filter-item" type="primary" @click.native="gzadd(7)">
|
{{ $t('table.add') }}
|
</el-button>
|
</div>
|
|
<div class="jbxxCon">
|
<el-table
|
ref="unemploymentTable"
|
:data="unemploymentData"
|
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%;"
|
@selection-change="onunemploymentDataselection"
|
>
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" width="55">
|
<template slot-scope="scope">
|
<span v-text="getIndex(scope.$index)" />
|
</template>
|
</el-table-column>
|
<el-table-column show-overflow-tooltip fixed="right" label="操作" width="120">
|
<template slot-scope="scope">
|
<span class="table-button" @click="editUnemployment(scope.row,7)">编辑</span>
|
<span class="table-button" @click="singleDelete(scope.row, 'unemploymentDataselection')">删除</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="unemploymentId" label="" />
|
<el-table-column show-overflow-tooltip prop="applayDate" label="失业金申请日期" width="180" />
|
<el-table-column show-overflow-tooltip prop="applayReason" label="申报事由" />
|
<el-table-column show-overflow-tooltip prop="reporter" label="汇报人" width="180" />
|
<el-table-column show-overflow-tooltip prop="auditor" label="审核人" width="180" />
|
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
|
</el-table>
|
<pagination
|
v-show="unemploymentDatatotal>0"
|
:total="unemploymentDatatotal"
|
:page.sync="pagination.num"
|
:limit.sync="pagination.size"
|
@pagination="initunemploymentData()"
|
/>
|
</div>
|
</div>
|
<div ref="sbsq" class="sbsq">
|
<div class="jbxxTitle">
|
社保申请
|
<el-button class="filter-item" type="primary" @click.native="gzadd(8)">
|
{{ $t('table.add') }}
|
</el-button>
|
</div>
|
|
<div class="jbxxCon">
|
<el-table
|
ref="insuranceTable"
|
:data="insuranceData"
|
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%;"
|
@selection-change="oninsuranceDataselection"
|
>
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" width="55">
|
<template slot-scope="scope">
|
<span v-text="getIndex(scope.$index)" />
|
</template>
|
</el-table-column>
|
<el-table-column show-overflow-tooltip fixed="right" label="操作" width="120">
|
<template slot-scope="scope">
|
<span class="table-button" @click="editInsurance(scope.row,8)">编辑</span>
|
<span class="table-button" @click="singleDelete(scope.row, 'insuranceDataselection')">删除</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="insuranceId" label="" />
|
<el-table-column show-overflow-tooltip prop="applayDate" label="社保申请日期" width="180" />
|
<el-table-column show-overflow-tooltip prop="proposer" label="申请人" width="180" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="insuranceGaers"
|
label="社保档位"
|
:formatter="insuranceGaersFormat"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="reportStatus"
|
label="是否已报告"
|
:formatter="reportStatusFormat"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="applayStatus"
|
label="状态"
|
:formatter="applayStatusFormat"
|
/>
|
<el-table-column show-overflow-tooltip prop="auditor" label="审核人" width="180" />
|
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
|
</el-table>
|
<pagination
|
v-show="insuranceDatatotal>0"
|
:total="insuranceDatatotal"
|
:page.sync="pagination.num"
|
:limit.sync="pagination.size"
|
@pagination="initinsuranceData()"
|
/>
|
</div>
|
</div>
|
<div ref="ywxaj" class="ywxaj">
|
<div class="jbxxTitle">
|
意外险案件
|
<el-button class="filter-item" type="primary" @click.native="gzadd(9)">
|
{{ $t('table.add') }}
|
</el-button>
|
</div>
|
|
<div class="jbxxCon">
|
<el-table
|
ref="accidentCasesTable"
|
:data="accidentCasesData"
|
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%;"
|
@selection-change="onaccidentCasesDataselection"
|
>
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" width="55">
|
<template slot-scope="scope">
|
<span v-text="getIndex(scope.$index)" />
|
</template>
|
</el-table-column>
|
<el-table-column show-overflow-tooltip fixed="right" label="操作" width="120">
|
<template slot-scope="scope">
|
<span class="table-button" @click="editAccidentCases(scope.row,9)">编辑</span>
|
<span
|
class="table-button"
|
@click="singleDelete(scope.row, 'accidentCasesDataselection')"
|
>删除</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="accidentId" label="" />
|
<el-table-column show-overflow-tooltip prop="injuredTime" label="受伤日期" width="100" />
|
<el-table-column show-overflow-tooltip prop="injuredAddress" label="受伤地点" />
|
<el-table-column show-overflow-tooltip prop="injuredPart" label="受伤部位" width="80" />
|
<el-table-column show-overflow-tooltip prop="injuredDescribe" label="受伤经过描述" />
|
<el-table-column show-overflow-tooltip prop="injuredDiacrisis" label="意外险诊断" />
|
<!-- <el-table-column show-overflow-tooltip prop="hospitalName" label="就诊医院" width="100" />-->
|
<!-- <el-table-column show-overflow-tooltip prop="treatmentName" label="就诊科室" width="100" />-->
|
<el-table-column
|
show-overflow-tooltip
|
prop="hospitalizatioFlag"
|
label="是否住院"
|
width="80"
|
:formatter="hospitalizatioFlagFormat"
|
/>
|
<!-- <el-table-column show-overflow-tooltip prop="bedNumb" label="床号" width="60" />-->
|
<el-table-column show-overflow-tooltip prop="reprotTime" label="报案时间" width="100" />
|
<!-- <el-table-column show-overflow-tooltip prop="submitTime" label="递交资料时间" width="120" />-->
|
<!-- <el-table-column show-overflow-tooltip prop="sbumitBy" label="递交人" width="100" />-->
|
<el-table-column show-overflow-tooltip prop="expensesFee" label="医疗总费用" width="100" />
|
<el-table-column show-overflow-tooltip prop="innsureFee" label="保险赔付费用" width="120" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="settleStatus"
|
label="是否结案"
|
width="120"
|
:formatter="settleStatusFormat"
|
/>
|
</el-table>
|
<pagination
|
v-show="accidentCasesDatatotal>0"
|
:total="accidentCasesDatatotal"
|
:page.sync="pagination.num"
|
:limit.sync="pagination.size"
|
@pagination="initaccidentCasesData()"
|
/>
|
</div>
|
</div>
|
<div ref="gsaj" class="gsaj">
|
<div class="jbxxTitle">
|
工伤案件
|
<el-button class="filter-item" type="primary" @click.native="gzadd(10)">
|
{{ $t('table.add') }}
|
</el-button>
|
</div>
|
|
<div class="jbxxCon">
|
<el-table
|
ref="occupationalTable"
|
:data="occupationalData"
|
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%;"
|
@selection-change="onoccupationalDataselection"
|
>
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" width="55">
|
<template slot-scope="scope">
|
<span v-text="getIndex(scope.$index)" />
|
</template>
|
</el-table-column>
|
<el-table-column show-overflow-tooltip fixed="right" label="操作" width="120">
|
<template slot-scope="scope">
|
<span class="table-button" @click="editOccupational(scope.row,10)">编辑</span>
|
<span class="table-button" @click="singleDelete(scope.row, 'occupationalDataselection')">删除</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="occupationalId" label="" />
|
<el-table-column show-overflow-tooltip prop="injuredTime" label="受伤日期" width="120" />
|
<el-table-column show-overflow-tooltip prop="injuredAddress" label="受伤地点" width="100" />
|
<el-table-column show-overflow-tooltip prop="injuredPart" label="受伤部位" width="100" />
|
<el-table-column show-overflow-tooltip prop="injuredDescribe" label="受伤经过描述" />
|
<el-table-column show-overflow-tooltip prop="injuredDiacrisis" label="工伤诊断" width="80" />
|
<el-table-column show-overflow-tooltip prop="hospitalName" label="就诊医院" />
|
<el-table-column show-overflow-tooltip prop="treatmentName" label="就诊科室" width="100" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="hospitalizatioFlag"
|
label="是否住院"
|
width="80"
|
:formatter="hospitalizatioFlagFormat"
|
/>
|
<el-table-column show-overflow-tooltip prop="bedNumb" label="床号" width="80" />
|
<el-table-column show-overflow-tooltip prop="reportTime" label="报案时间" width="100" />
|
<el-table-column show-overflow-tooltip prop="submitTime" label="递交资料时间" width="120" />
|
<el-table-column show-overflow-tooltip prop="sbumitBy" label="递交人" width="80" />
|
<el-table-column show-overflow-tooltip prop="expensesFee" label="医疗总费用" width="100" />
|
<el-table-column show-overflow-tooltip prop="compensated" label="已赔付医药费用" width="120" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="settleStatus"
|
label="是否结案"
|
width="120"
|
:formatter="settleStatusFormat"
|
/>
|
</el-table>
|
<pagination
|
v-show="occupationalDatatotal>0"
|
:total="occupationalDatatotal"
|
:page.sync="pagination.num"
|
:limit.sync="pagination.size"
|
@pagination="initoccupationalData()"
|
/>
|
</div>
|
</div>
|
<div ref="lzaj" class="lzaj">
|
<div class="jbxxTitle">
|
仲裁案件
|
<el-button class="filter-item" type="primary" @click.native="gzadd(11)">
|
{{ $t('table.add') }}
|
</el-button>
|
</div>
|
|
<div class="jbxxCon">
|
<el-table
|
ref="laborTroubleTable"
|
:data="laborTroubleData"
|
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%;"
|
@selection-change="onlaborTroubleDataselection"
|
>
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" width="55">
|
<template slot-scope="scope">
|
<span v-text="getIndex(scope.$index)" />
|
</template>
|
</el-table-column>
|
<el-table-column show-overflow-tooltip fixed="right" label="操作" width="120">
|
<template slot-scope="scope">
|
<span class="table-button" @click="editLaborTrouble(scope.row,11)">编辑</span>
|
<span class="table-button" @click="singleDelete(scope.row, 'laborTroubleDataselection')">删除</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="arbitrationId" label="" />
|
<el-table-column show-overflow-tooltip prop="arbitrationDate" label="仲裁日期" width="100" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="arbitrationType"
|
label="仲裁类型"
|
:formatter="arbitrationTypeFormat"
|
/>
|
<el-table-column show-overflow-tooltip prop="arbitrationReason" label="仲裁事由" />
|
<el-table-column show-overflow-tooltip prop="reporter" label="报备人" width="100" />
|
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
|
<el-table-column show-overflow-tooltip prop="arbitrationPay" label="仲裁赔付(元)" width="180" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="arbitrationStatus"
|
label="是否结案"
|
width="100"
|
:formatter="arbitrationStatusFormat"
|
/>
|
<el-table-column show-overflow-tooltip prop="settleDate" label="案结日期" width="100" />
|
</el-table>
|
<pagination
|
v-show="laborTroubleDatatotal>0"
|
:total="laborTroubleDatatotal"
|
:page.sync="pagination.num"
|
:limit.sync="pagination.size"
|
@pagination="initlaborTroubleData()"
|
/>
|
</div>
|
</div>
|
<div ref="bljl" class="bljl">
|
<div class="jbxxTitle">
|
不良记录
|
<el-button class="filter-item" type="primary" @click.native="gzadd(12)">
|
{{ $t('table.add') }}
|
</el-button>
|
</div>
|
|
<div class="jbxxCon">
|
<el-table
|
ref="badRecordTable"
|
:data="badRecordData"
|
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%;"
|
@selection-change="onbadRecordDataselection"
|
>
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" width="55">
|
<template slot-scope="scope">
|
<span v-text="getIndex(scope.$index)" />
|
</template>
|
</el-table-column>
|
<el-table-column show-overflow-tooltip fixed="right" label="操作" width="120">
|
<template slot-scope="scope">
|
<span class="table-button" @click="editBadRecord(scope.row,12)">编辑</span>
|
<span class="table-button" @click="singleDelete(scope.row, 'badRecordDataselection')">删除</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="badId" label="" />
|
<el-table-column show-overflow-tooltip prop="badDate" label="不良记录日期" width="180" />
|
<el-table-column show-overflow-tooltip prop="badContent" label="不良记录描述" />
|
<el-table-column show-overflow-tooltip prop="reporter" label="汇报人" width="180" />
|
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
|
</el-table>
|
<pagination
|
v-show="badRecordDatatotal>0"
|
:total="badRecordDatatotal"
|
:page.sync="pagination.num"
|
:limit.sync="pagination.size"
|
@pagination="initbadRecordData()"
|
/>
|
</div>
|
</div>
|
<div ref="bz" class="bz">
|
<div class="jbxxTitle">
|
备注
|
<el-button class="filter-item" type="primary" @click.native="gzadd(13)">
|
{{ $t('table.add') }}
|
</el-button>
|
</div>
|
|
<div class="jbxxCon">
|
<el-table
|
ref="remarkInfoTable"
|
:data="remarkInfoData"
|
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%;"
|
@selection-change="onremarkInfoDataselection"
|
>
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" width="55">
|
<template slot-scope="scope">
|
<span v-text="getIndex(scope.$index)" />
|
</template>
|
</el-table-column>
|
<el-table-column show-overflow-tooltip fixed="right" label="操作" width="120">
|
<template slot-scope="scope">
|
<!-- <el-button type="text" size="small" @click="editRemarkInfo(scope.row)">编辑</el-button>-->
|
<!-- <el-button-->
|
<!-- type="text"-->
|
<!-- size="small"-->
|
<!-- @click="singleDelete(scope.row, 'onremarkInfoDataselection')"-->
|
<!-- >删除-->
|
<!-- </el-button>-->
|
<span class="table-button" @click="editRemarkInfo(scope.row,13)">编辑</span>
|
<span class="table-button" @click="singleDelete(scope.row, 'remarkInfoDataselection')">删除</span>
|
</template>
|
</el-table-column>
|
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="remarkId" label="" />
|
<el-table-column show-overflow-tooltip prop="remarkDate" label="备注日期" width="180" />
|
<el-table-column show-overflow-tooltip prop="remarkContent" label="备注信息" />
|
</el-table>
|
<pagination
|
v-show="remarkInfoDatatotal>0"
|
:total="remarkInfoDatatotal"
|
:page.sync="pagination.num"
|
:limit.sync="pagination.size"
|
@pagination="initremarkInfoData()"
|
/>
|
</div>
|
</div>
|
|
<div ref="jljt" class="jljt">
|
<div class="jbxxTitle2">
|
<el-col :span="18">
|
上传附件
|
</el-col>
|
<el-col :span="6" class="search">
|
<el-input
|
v-model="fileName"
|
maxlength="20"
|
minlength="1"
|
clearable
|
placeholder="请输入文件名"
|
show-word-limit
|
style="width:290px;margin-right: 10px;"
|
/>
|
<el-button type="primary" @click="findFileByFileName()">查询</el-button>
|
</el-col>
|
</div>
|
<div class="jbxxCon">
|
<div class="zs-main">
|
<el-container style="background-color: #fff;">
|
<el-aside width="210px" style="background-color: #fff;text-align: center;padding-top: 0">
|
<h4 style="margin-top: 0">{{ empBaseInfoForm.empName }}:{{ empBaseInfoForm.deptName }}</h4>
|
<el-timeline>
|
<el-timeline-item
|
v-for="(activity, index) in activities"
|
:key="index"
|
:icon="activity.icon"
|
:type="activity.type"
|
:color="activity.color"
|
:size="activity.size"
|
placement="bottom"
|
>
|
<span
|
style="position: relative; top: -5px;"
|
@click="clickTimeline(index, activity.id)"
|
>
|
{{ activity.timestamp }}</span>
|
</el-timeline-item>
|
</el-timeline>
|
</el-aside>
|
<el-container>
|
<el-header class="text-header">
|
<el-row>
|
<el-col :span="24">
|
<i
|
class="el-icon-bell"
|
style=" color: #a32c30; margin-right: 10px;"
|
/>提示:文件不要超过10个,单个文件大小不超过50M,单击或者拖动文件到下面区域,支持单个或批量文件的上传。
|
</el-col>
|
</el-row>
|
<el-row style="background-color: rgba(0,0,0,0.2);">
|
<el-col :span="16">
|
<el-checkbox
|
v-model="checkAll"
|
class="myRedCheckBox"
|
style="color: #000; margin-left: 20px;"
|
@change="checkAllMethods()"
|
>全选
|
</el-checkbox>
|
</el-col>
|
<el-col :span="8">
|
<el-button
|
type="primary"
|
icon="el-icon-download"
|
size="mini"
|
@click="download()"
|
>下载
|
</el-button>
|
<el-button
|
class="pri-del-btn"
|
type="primary"
|
icon="el-icon-search"
|
size="mini"
|
@click="delFile()"
|
>删除
|
</el-button>
|
<el-popconfirm title="是否移动附件?" @onConfirm="mvdialogFormVisible = true">
|
<el-button slot="reference" type="danger">转存</el-button>
|
</el-popconfirm>
|
</el-col>
|
</el-row>
|
</el-header>
|
<el-dialog
|
title="移动文件"
|
:visible.sync="mvdialogFormVisible"
|
width="25%"
|
class="add-label"
|
append-to-body
|
>
|
<el-form ref="mvlabelfrom" :model="labelfrom" :rules="mvrules">
|
<el-form-item
|
label="目录名称:"
|
:label-width="formLabelWidth"
|
prop="labelid"
|
>
|
<el-select v-model="labelfrom.labelid" placeholder="请选择移动的标签">
|
<el-option
|
v-for="items in activities"
|
:key="items.id"
|
:value="items.id"
|
:label="items.timestamp"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="mvdialogFormVisible = false">取 消</el-button>
|
<el-button
|
type="primary"
|
@click="mvlabel('mvlabelfrom')"
|
>确 定
|
</el-button>
|
</div>
|
</el-dialog>
|
<el-main style="background-color: #fff;margin-top: 5%;">
|
<el-row v-for="(data, index) in filesUploadData" :key="index">
|
<template v-for="(node, nodeIndex) in data.node">
|
<el-col v-if="node.isUpload === false" :key="node.accessoryid" :span="3">
|
<el-card
|
shadow="never"
|
@click.native="clickCard(index * 8 + nodeIndex)"
|
>
|
<el-image
|
v-if="'tif,bmp,jpg,png,gif'.indexOf(node.filesformat) == -1"
|
:src="showFileImg(node.filesformat)"
|
class="uploading-image"
|
:preview-src-list="srcList"
|
@click="clickImg(node)"
|
/>
|
<el-tooltip
|
v-if="'tif,bmp,jpg,png,gif'.indexOf(node.filesformat) == -1"
|
class="item"
|
effect="dark"
|
:content="node.filesname"
|
placement="bottom"
|
>
|
<div style="padding-top: 14px;text-align: center">
|
<el-checkbox
|
v-model="checkedArr[index * 8 + nodeIndex].isChecked"
|
class="myRedCheckBox"
|
>{{ node.filesname }}
|
</el-checkbox>
|
</div>
|
</el-tooltip>
|
<el-tooltip
|
v-if="'tif,bmp,jpg,png,gif'.indexOf(node.filesformat) != -1"
|
class="item"
|
effect="dark"
|
:content="node.filesname"
|
placement="bottom"
|
>
|
<div style="padding-top: 14px;">
|
<el-image
|
style="width: 100px; height: 80px;margin-top: -10px;"
|
:src="getImg+node.accessoryid"
|
:preview-src-list="srcList"
|
@click="clickImg(node)"
|
/>
|
<el-checkbox
|
v-model="checkedArr[index * 8 + nodeIndex].isChecked"
|
class="myRedCheckBox"
|
>
|
|
{{ node.filesname }}
|
</el-checkbox>
|
</div>
|
</el-tooltip>
|
</el-card>
|
</el-col>
|
<el-col v-if="node.isUpload" :key="node.filesid" :span="3">
|
<el-card shadow="never">
|
<el-upload
|
class="avatar-uploader"
|
:action="uploadSinglePath"
|
:show-file-list="false"
|
:before-upload="beforeAvatarUpload"
|
:headers="headers()"
|
:data="fileDate"
|
:on-success="handleAvatarSuccess"
|
:on-error="handleAvatarError"
|
:multiple="true"
|
:limit="10"
|
drag
|
>
|
<i class="el-icon-upload" />
|
</el-upload>
|
</el-card>
|
</el-col>
|
</template>
|
</el-row>
|
</el-main>
|
</el-container>
|
</el-container>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
|
<work-experience-edit
|
:visible.sync="dialogshowArr[1].show"
|
:is-add="isAdd"
|
:edit-data="workExperienceEditData"
|
:sex-options="sexOptions"
|
@success="handleWorkExperienceSuccess"
|
/>
|
<physical-exam-edit
|
:visible.sync="dialogshowArr[2].show"
|
:is-add="isAdd"
|
:edit-data="physicalExamEditData"
|
:sex-options="sexOptions"
|
:physical-exam-type-options="physicalExamTypeOptions"
|
:ecg-options="ecgOptions"
|
@success="handlePhysicalExamSuccess"
|
/>
|
<contract-info-edit
|
:visible.sync="dialogshowArr[3].show"
|
:is-add="isAdd"
|
:edit-data="contractInfoEditData"
|
:sex-options="sexOptions"
|
:contract-status-options="contractStatusOptions"
|
@success="handleContractInfoSuccess"
|
/>
|
<dimission-attend-edit
|
:visible.sync="dialogshowArr[4].show"
|
:is-add="isAdd"
|
:edit-data="dimissionAttendEditData"
|
:sex-options="sexOptions"
|
@success="handleDimissionAttendSuccess"
|
/>
|
<leave-info-edit
|
:visible.sync="dialogshowArr[5].show"
|
:is-add="isAdd"
|
:edit-data="leaveInfoEditData"
|
:sex-options="sexOptions"
|
:leave-type-options="leaveTypeOptions"
|
@success="handleLeaveInfoSuccess"
|
/>
|
<resign-edit
|
:visible.sync="dialogshowArr[6].show"
|
:is-add="isAdd"
|
:edit-data="resignEditData"
|
:sex-options="sexOptions"
|
@success="handleResignSuccess"
|
/>
|
<unemployment-insurance-edit
|
:visible.sync="dialogshowArr[7].show"
|
:is-add="isAdd"
|
:edit-data="unemploymentEditData"
|
:sex-options="sexOptions"
|
@success="handleUnemploymentSuccess"
|
/>
|
<social-security-edit
|
:visible.sync="dialogshowArr[8].show"
|
:is-add="isAdd"
|
:edit-data="socialSecurityEditData"
|
:sex-options="sexOptions"
|
:insurance-gaers-options="insuranceGaersOptions"
|
:applay-status-options="applayStatusOptions"
|
:report-status-options="reportStatusOptions"
|
@success="handleInsuranceSuccess"
|
/>
|
<accident-insurance-edit
|
:visible.sync="dialogshowArr[9].show"
|
:is-add="isAdd"
|
:edit-data="accidentInsuranceEditData"
|
:sex-options="sexOptions"
|
:hospitalizatio-flag-options="hospitalizatioFlagOptions"
|
:settle-status-options="settleStatusOptions"
|
@success="handleAccidentCasesSuccess"
|
/>
|
<work-injury-edit
|
:visible.sync="dialogshowArr[10].show"
|
:is-add="isAdd"
|
:edit-data="workInjuryEditData"
|
:sex-options="sexOptions"
|
:hospitalizatio-flag-options="hospitalizatioFlagOptions"
|
:settle-status-options="settleStatusOptions"
|
@success="handleOccupationalSuccess"
|
/>
|
<arbitration-edit
|
:visible.sync="dialogshowArr[11].show"
|
:is-add="isAdd"
|
:edit-data="arbitrationEditData"
|
:sex-options="sexOptions"
|
:arbitration-type-options="arbitrationTypeOptions"
|
:settle-status-options="settleStatusOptions"
|
@success="handleLaborTroubleSuccess"
|
/>
|
<bad-record-edit
|
:visible.sync="dialogshowArr[12].show"
|
:is-add="isAdd"
|
:edit-data="badRecordEditData"
|
:sex-options="sexOptions"
|
@success="handleBadRecordSuccess"
|
/>
|
<remark-edit
|
:visible.sync="dialogshowArr[13].show"
|
:is-add="isAdd"
|
:edit-data="remarkEditData"
|
:sex-options="sexOptions"
|
@success="handleRemarkInfoSuccess"
|
/>
|
</el-dialog>
|
|
<!-- 上传方式选择弹窗 -->
|
<el-dialog
|
title="选择上传方式"
|
:visible.sync="uploadChoiceDialogVisible"
|
width="400px"
|
:close-on-click-modal="false"
|
>
|
<div class="upload-choice-container">
|
<div class="upload-choice-item" @click="choiceCamera">
|
<i class="el-icon-camera" />
|
<span>拍照上传</span>
|
</div>
|
<div class="upload-choice-item" @click="choiceFile">
|
<i class="el-icon-folder-opened" />
|
<span>文件上传</span>
|
</div>
|
</div>
|
</el-dialog>
|
|
<!-- 摄像头拍照弹窗 -->
|
<el-dialog
|
title="拍照上传"
|
:visible.sync="cameraDialogVisible"
|
width="640px"
|
:close-on-click-modal="false"
|
@close="closeCamera"
|
>
|
<div class="camera-container">
|
<!-- 视频预览 -->
|
<video
|
v-show="!capturedImage"
|
ref="video"
|
class="camera-video"
|
autoplay
|
playsinline
|
/>
|
<!-- 画布(用于拍照) -->
|
<canvas ref="canvas" style="display: none;" />
|
|
<!-- 拍照结果预览 -->
|
<img
|
v-if="capturedImage"
|
:src="capturedImage"
|
class="captured-image"
|
>
|
</div>
|
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="closeCamera">取消</el-button>
|
<el-button
|
v-if="!capturedImage"
|
type="primary"
|
@click="takePhoto"
|
>
|
拍照
|
</el-button>
|
<el-button
|
v-if="capturedImage"
|
@click="retakePhoto"
|
>
|
重拍
|
</el-button>
|
<el-button
|
v-if="capturedImage"
|
type="primary"
|
@click="confirmPhoto"
|
>
|
确认使用
|
</el-button>
|
</div>
|
</el-dialog>
|
</div>
|
</template>
|
<script>
|
import { calculateSeniority, dateDifference, toCardGetUserInfo } from '@/utils/myUtil'
|
import Treeselect from '@riophae/vue-treeselect'
|
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
import Pagination from '@/components/Pagination'
|
import { getToken } from '@/utils/auth'
|
import { pages } from '@/settings'
|
import dictMixin from '../../utils/dictMixin'
|
import WorkExperienceEdit from './components/WorkExperienceEdit'
|
import PhysicalExamEdit from './components/PhysicalExamEdit'
|
import ContractInfoEdit from './components/ContractInfoEdit'
|
import DimissionAttendEdit from './components/DimissionAttendEdit'
|
import LeaveInfoEdit from './components/LeaveInfoEdit'
|
import ResignEdit from './components/ResignEdit'
|
import UnemploymentInsuranceEdit from './components/UnemploymentInsuranceEdit'
|
import SocialSecurityEdit from './components/SocialSecurityEdit'
|
import AccidentInsuranceEdit from './components/AccidentInsuranceEdit'
|
import WorkInjuryEdit from './components/WorkInjuryEdit'
|
import ArbitrationEdit from './components/ArbitrationEdit'
|
import BadRecordEdit from './components/BadRecordEdit'
|
import RemarkEdit from './components/RemarkEdit'
|
|
export default {
|
name: 'ArchivesEdit',
|
components: { Treeselect, Pagination, WorkExperienceEdit, PhysicalExamEdit, ContractInfoEdit, DimissionAttendEdit, LeaveInfoEdit, ResignEdit, UnemploymentInsuranceEdit, SocialSecurityEdit, AccidentInsuranceEdit, WorkInjuryEdit, ArbitrationEdit, BadRecordEdit, RemarkEdit },
|
mixins: [dictMixin],
|
props: {
|
dialogVisible: {
|
type: Boolean,
|
default: false
|
},
|
title: {
|
type: String,
|
default: ''
|
},
|
type: {
|
type: String,
|
default: ''
|
}
|
},
|
data() {
|
return {
|
htmlTitle: 'xx',
|
nowTime: '',
|
mvrules: {
|
labelid: [{ required: true, message: '请选择标签', trigger: 'change' }]
|
},
|
mvdialogFormVisible: false,
|
uploadSinglePath: pages.uploadSinglePath,
|
labelfrom: {
|
labelid: '',
|
empId: ''
|
},
|
fileDate: {
|
labelid: 0,
|
empId: ''
|
},
|
formLabelWidth: '100px',
|
beforeIndex: 0,
|
fileName: '',
|
checkedArr: [],
|
checkAll: false,
|
activities: [],
|
filesUploadData: [],
|
updateNum: 0,
|
dialogShowUploadfj: false,
|
queryParams: {}, // 查询参数
|
sort: {}, // 排序
|
pagination: { // 分页参数
|
size: 5,
|
num: 1
|
},
|
readon: false,
|
workExperienceModal: true,
|
workExperienceEditData: {},
|
physicalExamEditData: {},
|
contractInfoEditData: {},
|
dimissionAttendEditData: {},
|
leaveInfoEditData: {},
|
resignEditData: {},
|
unemploymentEditData: {},
|
socialSecurityEditData: {},
|
accidentInsuranceEditData: {},
|
workInjuryEditData: {},
|
arbitrationEditData: {},
|
badRecordEditData: {},
|
remarkEditData: {},
|
restaurJob: [{ value: '总经理', code: '2942725270000031' },
|
{ value: '总秘', code: '2942725270000032' },
|
{ value: '总助', code: '2942725270000033' },
|
{ value: '经理', code: '2942725270000022' },
|
{ value: '副经理', code: '2942725270000015' },
|
{ value: '助理', code: '2942725270000030' },
|
{ value: '项目经理', code: '2942725270000027' },
|
{ value: '大队长', code: '2942725270000006' },
|
{ value: '大队长兼内勤', code: '2942725270000007' },
|
{ value: '中队长', code: '2942725270000029' },
|
{ value: '队长', code: '2942725270000011' },
|
{ value: '分队长', code: '2942725270000013' },
|
{ value: '副队长', code: '2942725270000014' },
|
{ value: '班长', code: '2942725270000002' },
|
{ value: '保安员', code: '2942725270000003' },
|
{ value: '内勤', code: '2942725270000024' },
|
{ value: '保洁', code: '2942725270000004' },
|
{ value: '电工', code: '2942725270000010' },
|
{ value: '绿化工', code: '2942725270000023' },
|
{ value: '出纳', code: '2942725270000005' },
|
{ value: '人事专员', code: '2942725270000025' },
|
{ value: '司机', code: '2942725270000026' },
|
{ value: '购买保险', code: '2942725270000016' },
|
{ value: '广州燃气中队长', code: '2942725270000018' },
|
{ value: '管理员', code: '2942725270000017' },
|
{ value: '监控员', code: '2942725270000021' },
|
{ value: '员工', code: '2942725270000028' }],
|
dialogshowArr: [
|
{
|
show: false
|
},
|
{
|
show: false
|
},
|
{
|
show: false
|
},
|
{
|
show: false
|
},
|
{
|
show: false
|
},
|
{
|
show: false
|
},
|
{
|
show: false
|
},
|
{
|
show: false
|
},
|
{
|
show: false
|
},
|
{
|
show: false
|
},
|
{
|
show: false
|
},
|
{
|
show: false
|
},
|
{
|
show: false
|
},
|
{
|
show: false
|
}
|
],
|
empBaseInfoImageUrl: '',
|
// 上传方式选择弹窗
|
uploadChoiceDialogVisible: false,
|
// 摄像头相关
|
cameraDialogVisible: false,
|
capturedImage: '',
|
stream: null,
|
rules: {
|
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: this.$t('rules.noMoreThan50'), trigger: 'blur' }],
|
empNumb: [{ required: true, message: '请输入员工编号', 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' }],
|
jobName: [{ required: true, message: '请选择岗位', trigger: 'change' }],
|
nativePlaceName: [{ required: true, message: '请选择籍贯', trigger: 'change' }],
|
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' }, {
|
max: 32,
|
message: '长度不超过32个字符',
|
trigger: 'blur'
|
}],
|
empType: [{ required: true, message: '请选择员工类型', trigger: 'change' }],
|
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' }]
|
},
|
workExperienceRules: {
|
workUnit: [{ required: true, message: '请输入工作单位', trigger: 'blur' }, {
|
max: 128,
|
message: '长度不超过128个字符',
|
trigger: 'blur'
|
}],
|
beginDate: [{ required: true, message: '请选择开始时间', trigger: 'change' }],
|
endDate: [{ required: true, message: '请选择结束时间', trigger: 'change' }],
|
jobContent: [{ max: 512, message: '长度不超过512个字符', trigger: 'blur' }]
|
},
|
physicalExamRules: {
|
physicalExamDate: [{ required: true, message: '请选择体检日期', trigger: 'change' }],
|
hospital: [{ required: true, message: '请输入体检医院', trigger: 'blur' }, {
|
max: 64,
|
message: '长度不超过64个字符',
|
trigger: 'blur'
|
}],
|
physicalExamType: [{ required: true, message: '请选择体检类型', trigger: 'change' }],
|
bloodPressure: [{ required: true, message: '请输入血压', trigger: 'blur' }, {
|
max: 40,
|
message: '长度不超过40个字符',
|
trigger: 'blur'
|
}],
|
transaminase: [{ required: true, message: '请输入转氨酶', trigger: 'blur' }, {
|
max: 40,
|
message: '长度不超过40个字符',
|
trigger: 'blur'
|
}],
|
ecg: [{ required: true, message: '请选择心电图', trigger: 'change' }, {
|
max: 16,
|
message: '长度不超过16个字符',
|
trigger: 'blur'
|
}],
|
conclusion: [{ required: true, message: '请输入体检结论', trigger: 'blur' }, {
|
max: 128,
|
message: '长度不超过128个字符',
|
trigger: 'blur'
|
}],
|
reviewRecord: [{ max: 128, message: '长度不超过128个字符', trigger: 'blur' }],
|
remark: [{ max: 512, message: '长度不超过512个字符', trigger: 'blur' }]
|
},
|
contractInfoRules: {
|
signingDate: [{ required: true, message: '请选择合同签订时间', trigger: 'change', validator: this.startDate }],
|
contractStatus: [{ required: true, message: '请选择合同状态', trigger: 'change' }],
|
transactor: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }],
|
beginDate: [{ required: true, message: '请选择合同开始日期', trigger: 'change' }],
|
endDate: [{ required: true, message: '请选择合同结束时间', trigger: 'change', validator: this.endDate }],
|
remark: [{ max: 512, message: '长度不超过512个字符', trigger: 'blur' }]
|
},
|
dimissionAttendRules: {
|
attendMonth: [{ required: true, message: '请选择出勤月份', trigger: 'change' }],
|
deduct: [{ required: true, message: '请输入代扣填款项', trigger: 'blur' }, {
|
max: 100,
|
message: '长度不超过100个字符',
|
trigger: 'blur'
|
}],
|
attendDays: [{ required: true, message: '请输入出勤天数', trigger: 'blur' }, {
|
pattern: /^\d{1,2}(\.\d{1,1})?$/,
|
message: '出勤天数精确到1位小数'
|
}],
|
overtimeDay: [{ pattern: /^\d{1,3}(\.\d{1,1})?$/, message: '加班(天)精确到1位小数' }],
|
overtimeHour: [{ pattern: /^\d{1,3}(\.\d{1,1})?$/, message: '加班(小时)精确到1位小数' }],
|
leaveDay: [{ pattern: /^\d{1,3}(\.\d{1,1})?$/, message: '请假(天)精确到1位小数' }],
|
absenteeism: [{ pattern: /^\d{1,3}(\.\d{1,1})?$/, message: '旷工(天)精确到1位小数' }],
|
remark: [{ max: 512, message: '长度不超过512个字符', trigger: 'blur' }]
|
},
|
leaveInfoRules: {
|
beginTime: [{ required: true, message: '请选择开始时间', trigger: 'change' }],
|
leaveType: [{ required: true, message: '请选择请假类型', trigger: 'change' }],
|
endTime: [{ required: true, message: '请选择结束时间', trigger: 'change' }],
|
returnDate: [{ required: true, message: '请选择到岗时间', trigger: 'change' }],
|
reporter: [{ required: true, message: '请输入报备人', trigger: 'blur' }],
|
remark: [{ max: 512, message: '长度不超过512个字符', trigger: 'blur' }]
|
},
|
resignRules: {
|
applayDate: [{ required: true, message: '请选择申请日期', trigger: 'change' }],
|
reason: [{ required: true, message: '请输入事由', trigger: 'blur' }, {
|
max: 256,
|
message: '长度不超过256个字符',
|
trigger: 'blur'
|
}],
|
remark: [{ max: 512, message: '长度不超过512个字符', trigger: 'blur' }],
|
reporter: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }]
|
},
|
unemploymentRules: {
|
applayDate: [{ required: true, message: '请选择申请日期', trigger: 'change' }],
|
applayReason: [{ required: true, message: '请输入申报事由', trigger: 'blur' }, {
|
max: 128,
|
message: '长度不超过128个字符',
|
trigger: 'blur'
|
}],
|
reporter: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }],
|
auditor: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }],
|
remark: [{ max: 512, message: '长度不超过512个字符', trigger: 'blur' }]
|
},
|
insuranceRules: {
|
applayDate: [{ required: true, message: '请选择申请日期', trigger: 'change' }],
|
proposer: [{ required: true, message: '请输入申请人', trigger: 'blur' }, {
|
max: 40,
|
message: '长度不超过40个字符',
|
trigger: 'blur'
|
}],
|
insuranceGaers: [{ required: true, message: '请选择社保档位', trigger: 'change' }],
|
auditor: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }],
|
remark: [{ max: 512, message: '长度不超过512个字符', trigger: 'blur' }],
|
applayStatus: [{ required: true, message: '请选择申请状态', trigger: 'change' }]
|
},
|
accidentCasesRules: {
|
injuredTime: [{ required: true, message: '请选择受伤时间', trigger: 'blur' }],
|
injuredPart: [{ required: true, message: '请输入受伤部位', trigger: 'blur' }, {
|
max: 40,
|
message: '长度不超过40个字符',
|
trigger: 'blur'
|
}],
|
injuredAddress: [{ required: true, message: '请输入受伤地点', trigger: 'blur' }, {
|
max: 64,
|
message: '长度不超过64个字符',
|
trigger: 'blur'
|
}],
|
injuredDescribe: [{ required: true, message: '请输入受伤经过描述', trigger: 'blur' }, {
|
max: 512,
|
message: '长度不超过512个字符',
|
trigger: 'blur'
|
}],
|
hospitalName: [{ required: true, message: '请输入就诊医院', trigger: 'blur' }, {
|
max: 40,
|
message: '长度不超过40个字符',
|
trigger: 'blur'
|
}],
|
hospitalizatioFlag: [{ required: true, message: '请选择是否住院', trigger: 'blur' }],
|
innsureFee: [{ required: true, message: '请输入保险赔付费用', trigger: 'blur' }],
|
expensesFee: [{ required: true, message: '请输入医疗总费用', trigger: 'blur' }],
|
settleDate: [{ required: true, message: '请选择案结时间', trigger: 'change' }],
|
injuredDiacrisis: [{ max: 256, message: '长度不超过256个字符', trigger: 'blur' }],
|
sbumitBy: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }],
|
expenseReport: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }],
|
remark: [{ max: 512, message: '长度不超过512个字符', trigger: 'blur' }]
|
},
|
occupationalRules: {
|
injuredTime: [{ required: true, message: '请选择受伤时间', trigger: 'blur' }],
|
injuredPart: [{ required: true, message: '请输入受伤部位', trigger: 'blur' }, {
|
max: 40,
|
message: '长度不超过40个字符',
|
trigger: 'blur'
|
}],
|
injuredDescribe: [{ required: true, message: '请输入受伤经过描述', trigger: 'blur' }, {
|
max: 512,
|
message: '长度不超过512个字符',
|
trigger: 'blur'
|
}],
|
hospitalName: [{ required: true, message: '请输入就诊医院', trigger: 'blur' }, {
|
max: 40,
|
message: '长度不超过40个字符',
|
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' }]
|
},
|
laborTroubleRules: {
|
arbitrationType: [{ required: true, message: '请选择仲裁类型', trigger: 'change' }],
|
arbitrationDate: [{ required: true, message: '请选择仲裁日期', trigger: 'change' }],
|
arbitrationReason: [{ required: true, message: '请输入仲裁事由', trigger: 'blur' }, {
|
max: 1024,
|
message: '长度不超过1024个字符',
|
trigger: 'blur'
|
}],
|
arbitrationStatus: [{ required: true, message: '请选择结案状态', trigger: 'change' }],
|
remark: [{ max: 512, message: '长度不超过512个字符', trigger: 'blur' }],
|
reporter: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }]
|
},
|
badRecordRules: {
|
badDate: [{ required: true, message: '请选择不良记录日期', trigger: 'change' }],
|
badContent: [{ required: true, message: '请输入不良记录描述', trigger: 'blur' }, {
|
max: 512,
|
message: '长度不超过512个字符',
|
trigger: 'blur'
|
}],
|
reporter: [{
|
max: 50,
|
message: '长度不超过50个字符',
|
trigger: 'blur'
|
}],
|
remark: [{ max: 512, message: '长度不超过512个字符', trigger: 'blur' }]
|
},
|
remarkInfoRules: {
|
remarkDate: [{ required: true, message: '请选择备注日期', trigger: 'change' }],
|
remarkContent: [{ required: true, message: '请输入备注内容', trigger: 'blur' },
|
{ max: 512, message: this.$t('rules.noMoreThan512'), 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' }],
|
types: '',
|
physicalExamData: [],
|
physicalExamDataselection: [],
|
physicalExamDatatotal: 0, // 总数量
|
workExperienceData: [],
|
workExperienceDataselection: [],
|
workExperienceDatatotal: 0, // 总数量
|
basicInformationData: [],
|
basicInformationDataselection: [],
|
basicInformationDatatotal: 0, // 总数量
|
jobChangeData: [],
|
jobChangeDatatotal: 0, // 总数量
|
dimissionLogData: [],
|
dimissionLogDatatotal: 0, // 总数量
|
contractInfoData: [],
|
contractInfoDataselection: [],
|
contractInfoDatatotal: 0, // 总数量
|
attendanceData: [],
|
attendanceDataselection: [],
|
attendanceDatatotal: 0, // 总数量
|
leaveInfoData: [],
|
leaveInfoDataselection: [],
|
leaveInfoDatatotal: 0, // 总数量
|
resignData: [],
|
resignDataselection: [],
|
resignDatatotal: 0, // 总数量
|
unemploymentData: [],
|
unemploymentDataselection: [],
|
unemploymentDatatotal: 0, // 总数量
|
insuranceData: [],
|
insuranceDataselection: [],
|
insuranceDatatotal: 0, // 总数量
|
remarkInfoData: [],
|
remarkInfoDataselection: [],
|
remarkInfoDatatotal: 0, // 总数量
|
laborTroubleData: [],
|
laborTroubleDataselection: [],
|
laborTroubleDatatotal: 0, // 总数量
|
occupationalData: [],
|
occupationalDataselection: [],
|
occupationalDatatotal: 0, // 总数量
|
badRecordData: [],
|
tableKey: 0,
|
badRecordDataselection: [],
|
badRecordDatatotal: 0, // 总数量
|
accidentCasesData: [],
|
accidentCasesDataselection: [],
|
accidentCasesDatatotal: 0, // 总数量
|
dimissionAttendData: [],
|
dimissionAttendDataselection: [],
|
dimissionAttendDatatotal: 0, // 总数量
|
remarkInfoForm: {
|
remarkId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
certificateNumb: '',
|
JobId: '',
|
deptId: '',
|
deptName: '',
|
jobName: '',
|
remarkContent: '',
|
remarkDate: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
empStatus: 0,
|
version: ''
|
},
|
laborTroubleForm: {
|
arbitrationId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
JobId: '',
|
jobName: '',
|
arbitrationDate: '',
|
arbitrationType: '',
|
arbitrationReason: '',
|
reporter: '',
|
arbitrationPay: '',
|
arbitrationStatus: '',
|
settleDate: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
|
version: '',
|
empStatus: 0,
|
remark: ''
|
},
|
occupationalForm: {
|
occupationalId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
JobId: '',
|
jobName: '',
|
injuredTime: '',
|
injuredAddress: '',
|
injuredPart: '',
|
injuredDiacrisis: '',
|
injuredDescribe: '',
|
hospitalName: '',
|
treatmentName: '',
|
hospitalizatioFlag: '',
|
bedNumb: '',
|
reportTime: '',
|
submitTime: '',
|
sbumitBy: '',
|
hrDoDate: '',
|
expensesFee: '',
|
eliminate: '',
|
socialDisability: '',
|
socialAllowance: '',
|
socialSubsidy: '',
|
socialCompensation: '',
|
compensated: '',
|
otherCompensated: '',
|
companylDisability: '',
|
companyAllowance: '',
|
companySubsidy: '',
|
companyCompensation: '',
|
jobSubsidy: '',
|
settleStatus: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
|
version: '',
|
empStatus: 0,
|
remark: ''
|
},
|
accidentCasesForm: {
|
accidentId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
JobId: '',
|
jobName: '',
|
injuredTime: '',
|
injuredAddress: '',
|
injuredPart: '',
|
injuredDiacrisis: '',
|
injuredDescribe: '',
|
hospitalName: '',
|
treatmentName: '',
|
hospitalizatioFlag: '',
|
bedNumb: '',
|
reprotTime: '',
|
submitTime: '',
|
sbumitBy: '',
|
expensesFee: '',
|
expenseReport: '',
|
innsureFee: '',
|
hrDoDate: '',
|
settleDate: '',
|
settleStatus: '',
|
remark: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
|
empStatus: 0,
|
version: ''
|
},
|
insuranceForm: {
|
insuranceId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
JobId: '',
|
jobName: '',
|
applayDate: '',
|
proposer: '',
|
insuranceGaers: '',
|
reportStatus: '',
|
applayStatus: '',
|
auditor: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
version: '',
|
empStatus: 0,
|
remark: ''
|
},
|
unemploymentForm: {
|
unemploymentId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
JobId: '',
|
jobName: '',
|
applayDate: '',
|
applayReason: '',
|
reporter: '',
|
auditor: '',
|
remark: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
|
empStatus: 0,
|
version: ''
|
},
|
resignForm: {
|
resignId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
JobId: '',
|
jobName: '',
|
applayDate: '',
|
reporter: '',
|
reason: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
|
version: '',
|
empStatus: 0,
|
remark: ''
|
},
|
leaveInfoForm: {
|
leaveId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
JobId: '',
|
jobName: '',
|
beginTime: '',
|
endTime: '',
|
leaveType: '',
|
leaveDay: '',
|
reporter: '',
|
returnDate: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
|
version: '',
|
empStatus: 0,
|
remark: ''
|
},
|
contractInfoForm: {
|
contractId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
certificateNumb: '',
|
sex: '',
|
deptId: '',
|
deptName: '',
|
JobId: '',
|
jobName: '',
|
beginDate: '',
|
endDate: '',
|
contractStatus: '',
|
contractPeriod: '',
|
transactor: '',
|
signingDate: '',
|
remark: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
|
empStatus: 0,
|
version: ''
|
},
|
dimissionAttendForm: {
|
dimissionAttendId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
deptId: '',
|
deptName: '',
|
JobId: '',
|
jobName: '',
|
certificateNumb: '',
|
attendMonth: '',
|
attendDays: '',
|
overtimeHour: '',
|
overtimeDay: '',
|
leaveDay: '',
|
deduct: '',
|
absenteeism: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
|
version: '',
|
empStatus: 0,
|
remark: ''
|
},
|
physicalExamForm: {
|
physicalExamId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
certificateNumb: '',
|
sex: '',
|
deptId: '',
|
deptName: '',
|
JobId: '',
|
jobName: '',
|
hospital: '',
|
physicalExamDate: '',
|
physicalExamType: '',
|
bloodPressure: '',
|
transaminase: '',
|
ecg: '',
|
conclusion: '',
|
reviewRecord: '',
|
remark: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
empStatus: 0,
|
version: ''
|
},
|
workExperienceForm: {
|
workExperienceId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
certificateNumb: '',
|
sex: '',
|
deptId: '',
|
deptName: '',
|
JobId: '',
|
jobName: '',
|
workUnit: '',
|
beginDate: '',
|
endDate: '',
|
jobContent: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
empStatus: 0,
|
version: ''
|
},
|
empBaseInfoForm: {
|
empId: '',
|
imagePath: '',
|
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: '',
|
empStatus: 0,
|
version: '',
|
annualLeave: ''
|
},
|
fsnumShow: false,
|
badRecordForm: {
|
badId: '',
|
empId: '',
|
empName: '',
|
empNumb: '',
|
sex: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
JobId: '',
|
jobName: '',
|
badDate: '',
|
reporter: '',
|
badContent: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
|
version: '',
|
empStatus: 0,
|
remark: ''
|
},
|
screenWidth: 0,
|
tableUrl: '',
|
buttonLoading: false,
|
depts: [],
|
sysConfig: this.initSysConfig(),
|
listType: ['jbxx', 'gzjl', 'tjxx', 'htxx', 'tgjl', 'qjjl', 'czsq', 'lzdykq', 'rlzjl', 'syjlq', 'sbsq', 'ywxaj', 'gsaj', 'lzaj',
|
'bljl', 'bz', 'jljt'],
|
form: {},
|
isAdd: false,
|
thisShowIndex: '',
|
item: 'jbxx',
|
grantTypes: [
|
{ type: 'refresh_token' },
|
{ type: 'authorization_code' },
|
{ type: 'dic_credentials' },
|
{ type: 'password' },
|
{ type: 'implicit' }
|
],
|
srcList: [],
|
getImg: pages.getAccessoryImage
|
}
|
},
|
computed: {
|
isVisible: {
|
get() {
|
return this.dialogVisible
|
},
|
set() {
|
this.close()
|
this.reset()
|
}
|
},
|
// 字典选项计算属性
|
statusOptions() { return this.getDictOptions('PLITICAL') },
|
empTypeOptions() { return this.getDictOptions('EMPTYPE') },
|
nationOptions() { return this.getDictOptions('NATION') },
|
marriageOptions() { return this.getDictOptions('MARRIAGE') },
|
educationOptions() { return this.getDictOptions('EDUCATION') },
|
nativePlaceOptions() { return this.getDictOptions('NATIVEPLACE') },
|
archivesStatusOptions() { return this.getDictOptions('archivesStatus') },
|
insuranceTypeOptions() { return this.getDictOptions('INSURANCETYPE') },
|
empCardStatusOptions() { return this.getDictOptions('empCardStatus') },
|
handbookStatusOptions() { return this.getDictOptions('handbookStatus') },
|
certificateListOptions() { return this.getDictOptions('certificateList') },
|
physicalExamTypeOptions() { return this.getDictOptions('PHYSICALEXAMTYPE') },
|
ecgOptions() { return this.getDictOptions('ECG') },
|
contractStatusOptions() { return this.getDictOptions('CONTRACTSTATUS') },
|
leaveTypeOptions() { return this.getDictOptions('LEAVETYPE') },
|
insuranceGaersOptions() { return this.getDictOptions('INSURANCETYPE') },
|
applayStatusOptions() { return this.getDictOptions('applayStatus') },
|
reportStatusOptions() { return this.getDictOptions('reportStatus') },
|
hospitalizatioFlagOptions() { return this.getDictOptions('hospitalizatioFlag') },
|
settleStatusOptions() { return this.getDictOptions('settleStatus') },
|
arbitrationTypeOptions() { return this.getDictOptions('ZCTYPE') },
|
changeTypeOptions() { return this.getDictOptions('changeType') },
|
dimissionTypeOptions() { return this.getDictOptions('LZTYPE') },
|
sexOptions() { return this.getDictOptions('sex') }
|
},
|
mounted() {
|
this.initDept()
|
// 字典数据已在登录时预加载,直接从 Vuex 获取
|
this.initDictTypes(['PLITICAL', 'sex', 'EMPTYPE', 'NATION', 'MARRIAGE', 'EDUCATION', 'NATIVEPLACE', 'archivesStatus', 'INSURANCETYPE', 'empCardStatus', 'handbookStatus', 'certificateList', 'PHYSICALEXAMTYPE', 'ECG', 'CONTRACTSTATUS', 'LEAVETYPE', 'applayStatus', 'reportStatus', 'hospitalizatioFlag', 'settleStatus', 'ZCTYPE', 'changeType', 'LZTYPE'])
|
},
|
methods: {
|
clickImg(node) {
|
this.srcList = []
|
if ('tif,bmp,jpg,png,gif'.indexOf(node.filesformat) >= 0) {
|
this.srcList.push(this.getImg + node.accessoryid)
|
}
|
},
|
typeFormat(row, column) {
|
return this.selectDictLabel(this.physicalExamTypeOptions, row.physicalExamType)
|
},
|
ecgNameFormat(row, column) {
|
return this.selectDictLabel(this.ecgOptions, row.ecg)
|
},
|
contractStatusFormat(row, column) {
|
return this.selectDictLabel(this.contractStatusOptions, row.contractStatus)
|
},
|
changeTypeFormat(row, column) {
|
return this.selectDictLabel(this.changeTypeOptions, row.changeType)
|
},
|
leaveTypeFormat(row, column) {
|
return this.selectDictLabel(this.leaveTypeOptions, row.leaveType)
|
},
|
dimissionTypeFormat(row, column) {
|
return this.selectDictLabel(this.dimissionTypeOptions, row.dimissionType)
|
},
|
insuranceGaersFormat(row, column) {
|
return this.selectDictLabel(this.insuranceGaersOptions, row.insuranceGaers)
|
},
|
reportStatusFormat(row, column) {
|
return this.selectDictLabel(this.reportStatusOptions, row.reportStatus)
|
},
|
applayStatusFormat(row, column) {
|
return this.selectDictLabel(this.applayStatusOptions, row.applayStatus)
|
},
|
hospitalizatioFlagFormat(row, column) {
|
return this.selectDictLabel(this.hospitalizatioFlagOptions, row.hospitalizatioFlag)
|
},
|
arbitrationTypeFormat(row, column) {
|
return this.selectDictLabel(this.arbitrationTypeOptions, row.arbitrationType)
|
},
|
arbitrationStatusFormat(row, column) {
|
return this.selectDictLabel(this.settleStatusOptions, row.arbitrationStatus)
|
},
|
settleStatusFormat(row, column) {
|
return this.selectDictLabel(this.settleStatusOptions, row.settleStatus)
|
},
|
beforeAvatarUpload(file) {
|
this.fileDate.labelid = this.activities[this.beforeIndex].id
|
const isLt50M = file.size / 1024 / 1024 < 50
|
if (!isLt50M) {
|
this.$message.error('上传文件不能超过 50MB!')
|
}
|
return isLt50M
|
},
|
headers() {
|
const token = getToken()
|
if (token) {
|
return {
|
Authorization: 'bearer ' + token
|
}
|
} else {
|
return null
|
}
|
},
|
handleAvatarSuccess(response, file, fileList) {
|
this.$notify({
|
title: '成功',
|
message: '上传成功!',
|
type: 'success'
|
})
|
this.updateNum++
|
if (this.updateNum === fileList.length) {
|
this.updateNum = 0
|
// 生成查询文件的条件
|
var params = {
|
labelid: this.activities[this.beforeIndex].id,
|
filesname: this.fileName,
|
empid: this.empBaseInfoForm.empId
|
}
|
this.initFile(params)
|
}
|
},
|
handleAvatarError() {
|
this.updateNum = 0
|
this.$notify.error({
|
title: '失败',
|
message: '上传失败,请联系管理员!'
|
})
|
},
|
showFileImg(type) {
|
switch (type) {
|
case 'xls':
|
return require('../../assets/uploading/xls.png')
|
case 'xlsx':
|
return require('../../assets/uploading/xls.png')
|
case 'txt':
|
return require('../../assets/uploading/txt.png')
|
case 'apk':
|
return require('../../assets/uploading/apk.png')
|
case 'csv':
|
return require('../../assets/uploading/csv.png')
|
case 'excel':
|
return require('../../assets/uploading/excel.png')
|
case 'exe':
|
return require('../../assets/uploading/exe.png')
|
case 'folder':
|
return require('../../assets/uploading/folder.png')
|
case 'gif':
|
return require('../../assets/uploading/gif.png')
|
case 'html':
|
return require('../../assets/uploading/html.png')
|
case 'json':
|
return require('../../assets/uploading/json.png')
|
case 'mp3':
|
return require('../../assets/uploading/mp3.png')
|
case 'mp4':
|
return require('../../assets/uploading/mp4.png')
|
case 'pdf':
|
return require('../../assets/uploading/pdf.png')
|
case 'pic':
|
return require('../../assets/uploading/pic.png')
|
case 'ppt':
|
return require('../../assets/uploading/ppt.png')
|
case 'rar':
|
return require('../../assets/uploading/rar.png')
|
case 'svg':
|
return require('../../assets/uploading/svg.png')
|
case 'webpage':
|
return require('../../assets/uploading/webpage.png')
|
case 'word':
|
return require('../../assets/uploading/word.png')
|
case 'zip':
|
return require('../../assets/uploading/zip.png')
|
case 'jpg':
|
return require('../../assets/uploading/jpg.png')
|
case 'png':
|
return require('../../assets/uploading/png.png')
|
default:
|
return require('../../assets/uploading/unknown.png')
|
}
|
},
|
clickCard(index) {
|
if (this.checkedArr[index].isChecked) {
|
this.$set(this.checkedArr[index], 'isChecked', false)
|
} else {
|
this.$set(this.checkedArr[index], 'isChecked', true)
|
}
|
},
|
transDimissionType(dimissionType) {
|
switch (dimissionType) {
|
case '1':
|
return '正常离职'
|
case '2':
|
return '自动离职'
|
case '3':
|
return '公司劝退'
|
case '4':
|
return '公司辞退'
|
case '5':
|
return '试用期内'
|
}
|
},
|
mvlabel(formName) {
|
if (this.labelfrom.labelid === this.activities[this.beforeIndex].id) {
|
this.$message({
|
message: '文件在同一目录!',
|
type: 'warning'
|
})
|
return
|
}
|
var checke = []
|
this.checkedArr.forEach((v, i) => {
|
if (v.isChecked) {
|
checke.push(v.accessoryid)
|
}
|
})
|
if (checke.length <= 0) {
|
this.$message({
|
message: '请选择需要移动的文件!',
|
type: 'warning'
|
})
|
} else {
|
this.$refs[formName].validate(valid => {
|
if (valid) {
|
// 生成查询文件的条件
|
var params = {
|
accessoryids: checke.join(','),
|
labelid: this.labelfrom.labelid,
|
empId: this.labelfrom.empId
|
}
|
this.$post('hr/empAccessory/mvFiles', { ...params }).then(() => {
|
this.$message({
|
message: '移动成功!',
|
type: 'success'
|
})
|
this.mvdialogFormVisible = false
|
// 生成查询文件的条件
|
var initFileParams = {
|
labelid: this.activities[this.beforeIndex].id,
|
filesname: this.fileName,
|
empid: this.empBaseInfoForm.empId
|
}
|
this.initFile(initFileParams)
|
})
|
}
|
})
|
}
|
},
|
delFile() {
|
var checke = []
|
this.checkedArr.forEach((v, i) => {
|
if (v.isChecked) {
|
checke.push(v.accessoryid)
|
}
|
})
|
if (checke.length <= 0) {
|
this.$message({
|
message: '请选择需要删除的文件!',
|
type: 'warning'
|
})
|
} else {
|
// 生成查询文件的条件
|
var params = { accessoryids: checke.join(',') }
|
this.$delete('hr/empAccessory', { ...params }).then(() => {
|
this.$message({
|
message: '删除成功!',
|
type: 'success'
|
})
|
// 生成查询文件的条件
|
var initFileParams = {
|
labelid: this.activities[this.beforeIndex].id,
|
filesname: this.fileName,
|
empid: this.empBaseInfoForm.empId
|
}
|
|
this.initFile(initFileParams)
|
})
|
}
|
},
|
download() {
|
var checke = []
|
this.checkedArr.forEach((v, i) => {
|
if (v.isChecked) {
|
checke.push(v.accessoryid)
|
}
|
})
|
if (checke.length <= 0) {
|
this.$message({
|
message: '请选择需要下载的文件!',
|
type: 'warning'
|
})
|
} else {
|
// 生成查询文件的条件
|
var params = { accessoryids: checke.join(',') }
|
this.$download('hr/empAccessory/download', { ...params }, this.activities[this.beforeIndex].timestamp + '.zip').then(() => {
|
this.$message({
|
message: '下载成功!',
|
type: 'success'
|
})
|
})
|
}
|
},
|
checkAllMethods() {
|
if (this.checkAll) {
|
this.checkedArr.forEach((v, i) => {
|
this.$set(v, 'isChecked', true)
|
})
|
} else {
|
this.checkedArr.forEach((v, i) => {
|
this.$set(v, 'isChecked', false)
|
})
|
}
|
},
|
clickTimeline(index, id) {
|
// 不这样操作的不会响应式更新
|
// 赋值到新的列表
|
var list = this.activities
|
// 将之前的数组置为空
|
this.activities = []
|
// 删除之前下标的颜色
|
delete list[this.beforeIndex].color
|
// 将新下标存储起来
|
this.beforeIndex = index
|
// 将新下标修改颜色
|
list[index]['color'] = '#a32c30'
|
// 将修改好的数组放回去
|
this.activities = list
|
this.checkAll = false
|
// 生成查询文件的条件
|
var params = {
|
labelid: this.activities[this.beforeIndex].id,
|
filesname: this.fileName,
|
empid: this.empBaseInfoForm.empId
|
}
|
this.initFile(params)
|
},
|
findFileByFileName() {
|
// 生成查询文件的条件
|
var params = {
|
filesname: this.fileName,
|
empid: this.empBaseInfoForm.empId
|
}
|
this.initFile(params)
|
},
|
onremarkInfoDataselection(selection) {
|
this.remarkInfoDataselection = selection
|
},
|
onbadRecordDataselection(selection) {
|
this.badRecordDataselection = selection
|
},
|
onlaborTroubleDataselection(selection) {
|
this.laborTroubleDataselection = selection
|
},
|
onoccupationalDataselection(selection) {
|
this.occupationalDataselection = selection
|
},
|
onaccidentCasesDataselection(selection) {
|
this.accidentCasesDataselection = selection
|
},
|
oninsuranceDataselection(selection) {
|
this.insuranceDataselection = selection
|
},
|
onunemploymentDataselection(selection) {
|
this.unemploymentDataselection = selection
|
},
|
ondimissionAttendDataselection(selection) {
|
this.dimissionAttendDataselection = selection
|
},
|
onresignDataselection(selection) {
|
this.resignDataselection = selection
|
},
|
onleaveInfoDataselection(selection) {
|
this.leaveInfoDataselection = selection
|
},
|
onworkExperienceDataselection(selection) {
|
this.workExperienceDataselection = selection
|
},
|
onphysicalExamDataselection(selection) {
|
this.physicalExamDataselection = selection
|
},
|
oncontractInfoDataselection(selection) {
|
this.contractInfoDataselection = selection
|
},
|
async initlabel() {
|
await this.$get('hr/label').then(r => {
|
this.activities = []
|
this.beforeIndex = 0
|
r.data.data.forEach((v, i) => {
|
if (i === 0) {
|
this.activities.push({
|
timestamp: v.labelname,
|
id: v.labelid,
|
color: '#a32c30'
|
})
|
} else {
|
this.activities.push({ timestamp: v.labelname, id: v.labelid })
|
}
|
})
|
})
|
var params = {
|
labelid: this.activities[this.beforeIndex].id,
|
filesname: this.fileName,
|
empid: this.empBaseInfoForm.empId
|
}
|
this.initFile(params)
|
},
|
initFile(params) {
|
var node = { node: [] }
|
// 文件列表置为空
|
this.filesUploadData = []
|
this.checkedArr = []
|
this.$get('hr/empAccessory', { ...params }).then(r => {
|
r.data.data.forEach((v, i) => {
|
this.checkedArr.push({ isChecked: false, accessoryid: v.accessoryid })
|
// 一行8个 等于8就换行
|
if (i % 8 === 0 && i !== 0) {
|
this.filesUploadData.push(node)
|
node = { node: [] }
|
}
|
// 添加一个新的元素判断是否是上传用的
|
this.$set(v, 'isUpload', false)
|
// 添加
|
node.node.push(v)
|
// 如果是最后一个元素,需要手动丢到列表里面去
|
if (i === r.data.data.length - 1) {
|
this.filesUploadData.push(node)
|
}
|
})
|
// 如果列表为空,增加一个上传的
|
if (this.filesUploadData.length === 0) {
|
this.filesUploadData.push({ node: [{ isUpload: true }] })
|
} else {
|
// 如果不为空,但是这一行刚好满8个了,就将数组,新增一个对象
|
if (this.filesUploadData[this.filesUploadData.length - 1].node.length === 8) {
|
this.filesUploadData.push({ node: [{ isUpload: true }] })
|
} else {
|
// 新增一个上传
|
this.filesUploadData[this.filesUploadData.length - 1].node.push({
|
isUpload: true
|
})
|
}
|
}
|
})
|
},
|
setArchives(val) {
|
let certificateList = []
|
if (val.certificateList && typeof val.certificateList === 'string') {
|
certificateList = val.certificateList.split(',')
|
val.certificateList = certificateList
|
}
|
const remarks = ''
|
val.remark = remarks
|
this.readon = false
|
|
// 清空所有模块数据,确保切换员工后点击标签会重新加载
|
this.workExperienceData = []
|
this.physicalExamData = []
|
this.contractInfoData = []
|
this.jobChangeData = []
|
this.leaveInfoData = []
|
this.resignData = []
|
this.dimissionAttendData = []
|
this.dimissionLogData = []
|
this.unemploymentData = []
|
this.insuranceData = []
|
this.accidentCasesData = []
|
this.occupationalData = []
|
this.laborTroubleData = []
|
this.badRecordData = []
|
this.remarkInfoData = []
|
|
this.empBaseInfoForm = { ...val }
|
this.empBaseInfoImageUrl = pages.getEmpBaseInfoImage + this.empBaseInfoForm.empId
|
this.fileDate.empId = this.empBaseInfoForm.empId
|
this.labelfrom.empId = this.empBaseInfoForm.empId
|
|
this.remarkInfoForm.allDeptName = val.allDeptName
|
this.remarkInfoForm.certificateNumb = val.certificateNumb
|
this.remarkInfoForm.empId = val.empId
|
this.remarkInfoForm.empName = val.empName
|
this.remarkInfoForm.empNumb = val.empNumb
|
this.remarkInfoForm.deptName = val.deptName
|
this.remarkInfoForm.deptId = val.deptId
|
this.remarkInfoForm.jobId = val.jobId
|
this.remarkInfoForm.jobName = val.jobName
|
this.remarkInfoForm.sex = val.sex
|
this.remarkInfoForm.delFlag = 0
|
this.$set(this.remarkInfoForm, 'delFlag', 0)
|
|
this.laborTroubleForm.allDeptName = val.allDeptName
|
this.laborTroubleForm.certificateNumb = val.certificateNumb
|
this.laborTroubleForm.empId = val.empId
|
this.laborTroubleForm.empName = val.empName
|
this.laborTroubleForm.empNumb = val.empNumb
|
this.laborTroubleForm.deptName = val.deptName
|
this.laborTroubleForm.deptId = val.deptId
|
this.laborTroubleForm.jobId = val.jobId
|
this.laborTroubleForm.jobName = val.jobName
|
this.laborTroubleForm.sex = val.sex
|
this.$set(this.laborTroubleForm, 'delFlag', 0)
|
|
this.occupationalForm.allDeptName = val.allDeptName
|
this.occupationalForm.certificateNumb = val.certificateNumb
|
this.occupationalForm.empId = val.empId
|
this.occupationalForm.empName = val.empName
|
this.occupationalForm.empNumb = val.empNumb
|
this.occupationalForm.deptName = val.deptName
|
this.occupationalForm.deptId = val.deptId
|
this.occupationalForm.jobId = val.jobId
|
this.occupationalForm.jobName = val.jobName
|
this.occupationalForm.sex = val.sex
|
this.$set(this.occupationalForm, 'delFlag', 0)
|
|
this.insuranceForm.allDeptName = val.allDeptName
|
this.insuranceForm.certificateNumb = val.certificateNumb
|
this.insuranceForm.empId = val.empId
|
this.insuranceForm.empName = val.empName
|
this.insuranceForm.empNumb = val.empNumb
|
this.insuranceForm.deptName = val.deptName
|
this.insuranceForm.deptId = val.deptId
|
this.insuranceForm.jobId = val.jobId
|
this.insuranceForm.jobName = val.jobName
|
this.insuranceForm.sex = val.sex
|
this.$set(this.insuranceForm, 'delFlag', 0)
|
|
this.unemploymentForm.allDeptName = val.allDeptName
|
this.unemploymentForm.certificateNumb = val.certificateNumb
|
this.unemploymentForm.empId = val.empId
|
this.unemploymentForm.empName = val.empName
|
this.unemploymentForm.empNumb = val.empNumb
|
this.unemploymentForm.deptName = val.deptName
|
this.unemploymentForm.deptId = val.deptId
|
this.unemploymentForm.jobId = val.jobId
|
this.unemploymentForm.jobName = val.jobName
|
this.unemploymentForm.sex = val.sex
|
this.$set(this.unemploymentForm, 'delFlag', 0)
|
|
this.resignForm.allDeptName = val.allDeptName
|
this.resignForm.certificateNumb = val.certificateNumb
|
this.resignForm.empId = val.empId
|
this.resignForm.empName = val.empName
|
this.resignForm.empNumb = val.empNumb
|
this.resignForm.deptName = val.deptName
|
this.resignForm.deptId = val.deptId
|
this.resignForm.jobId = val.jobId
|
this.resignForm.jobName = val.jobName
|
this.resignForm.sex = val.sex
|
this.$set(this.resignForm, 'delFlag', 0)
|
|
this.leaveInfoForm.allDeptName = val.allDeptName
|
this.leaveInfoForm.certificateNumb = val.certificateNumb
|
this.leaveInfoForm.empId = val.empId
|
this.leaveInfoForm.empName = val.empName
|
this.leaveInfoForm.empNumb = val.empNumb
|
this.leaveInfoForm.deptName = val.deptName
|
this.leaveInfoForm.deptId = val.deptId
|
this.leaveInfoForm.jobId = val.jobId
|
this.leaveInfoForm.jobName = val.jobName
|
this.leaveInfoForm.sex = val.sex
|
this.$set(this.leaveInfoForm, 'delFlag', 0)
|
|
this.contractInfoForm.allDeptName = val.allDeptName
|
this.contractInfoForm.certificateNumb = val.certificateNumb
|
this.contractInfoForm.empId = val.empId
|
this.contractInfoForm.empName = val.empName
|
this.contractInfoForm.empNumb = val.empNumb
|
this.contractInfoForm.deptName = val.deptName
|
this.contractInfoForm.deptId = val.deptId
|
this.contractInfoForm.jobId = val.jobId
|
this.contractInfoForm.jobName = val.jobName
|
this.contractInfoForm.sex = val.sex
|
this.$set(this.contractInfoForm, 'delFlag', 0)
|
|
this.dimissionAttendForm.allDeptName = val.allDeptName
|
this.dimissionAttendForm.certificateNumb = val.certificateNumb
|
this.dimissionAttendForm.empId = val.empId
|
this.dimissionAttendForm.empName = val.empName
|
this.dimissionAttendForm.empNumb = val.empNumb
|
this.dimissionAttendForm.deptName = val.deptName
|
this.dimissionAttendForm.deptId = val.deptId
|
this.dimissionAttendForm.jobId = val.jobId
|
this.dimissionAttendForm.jobName = val.jobName
|
this.dimissionAttendForm.sex = val.sex
|
this.$set(this.dimissionAttendForm, 'delFlag', 0)
|
|
this.physicalExamForm.allDeptName = val.allDeptName
|
this.physicalExamForm.certificateNumb = val.certificateNumb
|
this.physicalExamForm.empId = val.empId
|
this.physicalExamForm.empName = val.empName
|
this.physicalExamForm.empNumb = val.empNumb
|
this.physicalExamForm.deptName = val.deptName
|
this.physicalExamForm.deptId = val.deptId
|
this.physicalExamForm.jobId = val.jobId
|
this.physicalExamForm.jobName = val.jobName
|
this.physicalExamForm.sex = val.sex
|
this.$set(this.physicalExamForm, 'delFlag', 0)
|
|
this.workExperienceForm.allDeptName = val.allDeptName
|
this.workExperienceForm.certificateNumb = val.certificateNumb
|
this.workExperienceForm.empId = val.empId
|
this.workExperienceForm.empName = val.empName
|
this.workExperienceForm.empNumb = val.empNumb
|
this.workExperienceForm.deptName = val.deptName
|
this.workExperienceForm.deptId = val.deptId
|
this.workExperienceForm.jobId = val.jobId
|
this.workExperienceForm.jobName = val.jobName
|
this.workExperienceForm.sex = val.sex
|
this.$set(this.workExperienceForm, 'delFlag', 0)
|
|
this.badRecordForm.allDeptName = val.allDeptName
|
this.badRecordForm.certificateNumb = val.certificateNumb
|
this.badRecordForm.empId = val.empId
|
this.badRecordForm.empName = val.empName
|
this.badRecordForm.empNumb = val.empNumb
|
this.badRecordForm.deptName = val.deptName
|
this.badRecordForm.deptId = val.deptId
|
this.badRecordForm.jobId = val.jobId
|
this.badRecordForm.jobName = val.jobName
|
this.badRecordForm.sex = val.sex
|
this.$set(this.badRecordForm, 'delFlag', 0)
|
|
this.accidentCasesForm.allDeptName = val.allDeptName
|
this.accidentCasesForm.certificateNumb = val.certificateNumb
|
this.accidentCasesForm.empId = val.empId
|
this.accidentCasesForm.empName = val.empName
|
this.accidentCasesForm.empNumb = val.empNumb
|
this.accidentCasesForm.deptName = val.deptName
|
this.accidentCasesForm.deptId = val.deptId
|
this.accidentCasesForm.jobId = val.jobId
|
this.accidentCasesForm.jobName = val.jobName
|
this.accidentCasesForm.sex = val.sex
|
this.$set(this.accidentCasesForm, 'delFlag', 0)
|
|
// 只加载附件数据(基本信息已在val中),其他模块懒加载
|
this.initlabel()
|
},
|
initphysicalExamData(params = {}) {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
params.certificateNumb = this.empBaseInfoForm.certificateNumb
|
params.delFlag = '0'
|
this.$get('hr/empPhysicalExam/list', {
|
...params
|
}).then((r) => {
|
const data = r.data.data
|
this.physicalExamDatatotal = data.total
|
this.physicalExamData = data.rows
|
})
|
},
|
initjobChangeData(params = {}) {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
params.certificateNumb = this.empBaseInfoForm.certificateNumb
|
params.delFlag = '0'
|
params.field = 'changeDate'
|
params.order = 'ascending'
|
this.$get('hr/empJobChange/list', {
|
...params
|
}).then((r) => {
|
const data = r.data.data
|
this.jobChangeDatatotal = data.total
|
this.jobChangeData = data.rows
|
})
|
},
|
initdimissionLogData(params = {}) {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
params.empStatus = this.empBaseInfoForm.empStatus
|
params.empId = this.empBaseInfoForm.empId
|
params.dimissionType = ''
|
params.delFlag = '0'
|
params.field = 'entryDate'
|
params.order = 'ascending'
|
this.$get('hr/empDimissionlog/list', {
|
...params
|
}).then((r) => {
|
const data = r.data.data
|
this.dimissionLogDatatotal = data.total
|
this.dimissionLogData = data.rows
|
})
|
},
|
initcontractInfoData(params = {}) {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
params.certificateNumb = this.empBaseInfoForm.certificateNumb
|
params.delFlag = '0'
|
this.$get('hr/empContractInfo/list', {
|
...params
|
}).then((r) => {
|
const data = r.data.data
|
this.contractInfoDatatotal = data.total
|
this.contractInfoData = data.rows
|
})
|
},
|
gzupdate() {
|
this.readon = true
|
},
|
gzupdate1() {
|
// const empBaseInfoForm = this.empBaseInfoForm
|
// if (empBaseInfoForm.imagePath.indexOf('data:image/jpeg') === -1) {
|
// this.empBaseInfoForm.imagePath = ''
|
// }
|
this.$put('hr/empBaseInfo', { ...this.empBaseInfoForm }).then(() => {
|
this.readon = false
|
this.$emit('success')
|
this.$message({
|
message: this.$t('tips.updateSuccess'),
|
type: 'success'
|
})
|
})
|
},
|
ExportSavePdf(params = {}) {
|
this.$confirm('是否确定要导出档案,请耐心等待?', '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(() => {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
params.certificateNumb = this.empBaseInfoForm.certificateNumb
|
this.$download('hr/pdf/contract', {
|
...params
|
}, `${this.empBaseInfoForm.empName}.pdf`)
|
}).catch(() => {
|
this.$message({
|
type: 'info',
|
message: '已取消'
|
})
|
})
|
},
|
initleaveInfoData(params = {}) {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
params.certificateNumb = this.empBaseInfoForm.certificateNumb
|
params.delFlag = '0'
|
this.$get('hr/empLeaveInfo/list', {
|
...params
|
}).then((r) => {
|
const data = r.data.data
|
this.leaveInfoDatatotal = data.total
|
this.leaveInfoData = data.rows
|
})
|
},
|
initresignData(params = {}) {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
params.certificateNumb = this.empBaseInfoForm.certificateNumb
|
params.delFlag = '0'
|
this.$get('hr/empResign/list', {
|
...params
|
}).then((r) => {
|
const data = r.data.data
|
this.resignDatatotal = data.total
|
this.resignData = data.rows
|
})
|
},
|
initunemploymentData(params = {}) {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
params.certificateNumb = this.empBaseInfoForm.certificateNumb
|
params.delFlag = '0'
|
this.$get('hr/empUnemployment/list', {
|
...params
|
}).then((r) => {
|
const data = r.data.data
|
this.unemploymentDatatotal = data.total
|
this.unemploymentData = data.rows
|
})
|
},
|
initinsuranceData(params = {}) {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
params.certificateNumb = this.empBaseInfoForm.certificateNumb
|
params.delFlag = '0'
|
this.$get('hr/empInsurance/list', {
|
...params
|
}).then((r) => {
|
const data = r.data.data
|
this.insuranceDatatotal = data.total
|
this.insuranceData = data.rows
|
})
|
},
|
initremarkInfoData(params = {}) {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
params.certificateNumb = this.empBaseInfoForm.certificateNumb
|
params.delFlag = '0'
|
this.$get('hr/empRemarkInfo/list', {
|
...params
|
}).then((r) => {
|
const data = r.data.data
|
this.remarkInfoDatatotal = data.total
|
this.remarkInfoData = data.rows
|
})
|
},
|
initlaborTroubleData(params = {}) {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
params.certificateNumb = this.empBaseInfoForm.certificateNumb
|
params.delFlag = '0'
|
this.$get('hr/empLaborTrouble/list', {
|
...params
|
}).then((r) => {
|
const data = r.data.data
|
this.laborTroubleDatatotal = data.total
|
this.laborTroubleData = data.rows
|
})
|
},
|
initoccupationalData(params = {}) {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
params.certificateNumb = this.empBaseInfoForm.certificateNumb
|
params.delFlag = '0'
|
this.$get('hr/empOccupational/list', {
|
...params
|
}).then((r) => {
|
const data = r.data.data
|
this.toccupationalDataotal = data.total
|
this.occupationalData = data.rows
|
})
|
},
|
initbadRecordData(params = {}) {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
params.certificateNumb = this.empBaseInfoForm.certificateNumb
|
params.delFlag = '0'
|
this.$get('hr/empBadRecord/list', {
|
...params
|
}).then((r) => {
|
const data = r.data.data
|
this.badRecordDatatotal = data.total
|
this.badRecordData = data.rows
|
})
|
},
|
dialogShow() {
|
this.dialogShowUploadfj = true
|
},
|
initaccidentCasesData(params = {}) {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
params.certificateNumb = this.empBaseInfoForm.certificateNumb
|
params.delFlag = '0'
|
this.$get('hr/empAccidentCases/list', {
|
...params
|
}).then((r) => {
|
const data = r.data.data
|
this.accidentCasesDatatotal = data.total
|
this.accidentCasesData = data.rows
|
})
|
},
|
initdimissionAttendData(params = {}) {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
params.certificateNumb = this.empBaseInfoForm.certificateNumb
|
params.delFlag = '0'
|
this.$get('hr/empDimissionAttend/list', {
|
...params
|
}).then((r) => {
|
const data = r.data.data
|
this.dimissionAttendDatatotal = data.total
|
this.dimissionAttendData = data.rows
|
})
|
},
|
initList(params = {}) {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
params.certificateNumb = this.empBaseInfoForm.certificateNumb
|
params.delFlag = '0'
|
this.$get('hr/empWorkExperience/list', {
|
...params
|
}).then((r) => {
|
const data = r.data.data
|
this.workExperienceDatatotal = data.total
|
this.workExperienceData = data.rows
|
})
|
},
|
handleLaborTroubleSuccess() {
|
this.isAdd = true
|
this.initlaborTroubleData()
|
this.dialogIsShow()
|
},
|
handleBadRecordSuccess() {
|
this.isAdd = true
|
this.initbadRecordData()
|
this.dialogIsShow()
|
},
|
handleRemarkInfoSuccess() {
|
this.isAdd = true
|
this.initremarkInfoData()
|
this.dialogIsShow()
|
},
|
handlePhysicalExamSuccess() {
|
this.isAdd = true
|
this.initphysicalExamData()
|
this.dialogIsShow()
|
},
|
handleContractInfoSuccess() {
|
this.isAdd = true
|
this.initcontractInfoData()
|
this.dialogIsShow()
|
},
|
handleDimissionAttendSuccess() {
|
this.isAdd = true
|
this.initdimissionAttendData()
|
this.dialogIsShow()
|
},
|
handleLeaveInfoSuccess() {
|
this.isAdd = true
|
this.initleaveInfoData()
|
this.dialogIsShow()
|
},
|
handleResignSuccess() {
|
this.isAdd = true
|
this.initresignData()
|
this.dialogIsShow()
|
},
|
handleUnemploymentSuccess() {
|
this.isAdd = true
|
this.initunemploymentData()
|
this.dialogIsShow()
|
},
|
handlePictureCardPreview(file) {
|
this.empBaseInfoImageUrl = URL.createObjectURL(file.raw) // 获取URL
|
// 判断图片大小
|
if (file.size < 4400000) {
|
// 判断图片格式是否为jpg,png,jepg,gif
|
var fileName = file.name
|
// var suffixIndex=fileName.lastIndexOf(".")
|
// var suffix=fileName.substring(suffixIndex+1).toUpperCase()
|
var suffix = fileName.substring(fileName.lastIndexOf('.') + 1).toUpperCase()
|
if (suffix === 'JPG' || suffix === 'JPEG' || suffix === 'PNG') {
|
this.preView(this.empBaseInfoImageUrl)
|
} else {
|
this.$message.error('文件类型不正确,请重新上传!')
|
}
|
} else {
|
this.$message.error('图片大小超过4M,请重新上传')
|
}
|
},
|
preView(url) {
|
var this_ = this
|
const reader = new FileReader()
|
this.getImageBlob(url, function(blob) {
|
reader.readAsDataURL(blob)
|
})
|
reader.onload = function(e) {
|
// 获取bolb里面数据时,生成预览
|
var img = document.createElement('img')
|
img.src = e.target.result
|
this_.empBaseInfoForm.imagePath = e.target.result
|
}
|
},
|
// 获取图片的Blob值
|
getImageBlob(url, cb) {
|
var xhr = new XMLHttpRequest()
|
xhr.open('get', url, true)
|
xhr.responseType = 'blob'
|
xhr.onload = function() {
|
if (this.status === 200) {
|
if (cb) cb(this.response)
|
}
|
}
|
xhr.send()
|
},
|
handleInsuranceSuccess() {
|
this.isAdd = true
|
this.initinsuranceData()
|
this.dialogIsShow()
|
},
|
handleAccidentCasesSuccess() {
|
this.isAdd = true
|
this.initaccidentCasesData()
|
this.dialogIsShow()
|
},
|
handleOccupationalSuccess() {
|
this.isAdd = true
|
this.initoccupationalData()
|
this.dialogIsShow()
|
},
|
getIndex($index) {
|
return (this.pagination.num - 1) * this.pagination.size + $index + 1
|
},
|
// 打开上传方式选择弹窗
|
openUploadChoice() {
|
this.uploadChoiceDialogVisible = true
|
},
|
// 选择拍照上传
|
choiceCamera() {
|
this.uploadChoiceDialogVisible = false
|
this.cameraDialogVisible = true
|
this.$nextTick(() => {
|
this.initCamera()
|
})
|
},
|
// 选择文件上传
|
choiceFile() {
|
this.uploadChoiceDialogVisible = false
|
// 创建隐藏的文件输入框
|
const input = document.createElement('input')
|
input.type = 'file'
|
input.accept = 'image/*'
|
input.onchange = (e) => {
|
const file = e.target.files[0]
|
if (file) {
|
this.handleFileUpload(file)
|
}
|
}
|
input.click()
|
},
|
// 处理文件上传
|
handleFileUpload(file) {
|
// 验证文件类型
|
const isImage = file.type.startsWith('image/')
|
if (!isImage) {
|
this.$message.error('请上传图片文件')
|
return
|
}
|
// 验证文件大小(限制10MB)
|
const isLt10M = file.size / 1024 / 1024 < 10
|
if (!isLt10M) {
|
this.$message.error('图片大小不能超过10MB')
|
return
|
}
|
// 生成预览URL
|
const imageUrl = URL.createObjectURL(file)
|
this.empBaseInfoImageUrl = imageUrl
|
// 读取文件为Base64
|
const reader = new FileReader()
|
reader.onload = (e) => {
|
this.empBaseInfoForm.imagePath = e.target.result
|
this.$message.success('照片上传成功')
|
}
|
reader.readAsDataURL(file)
|
},
|
// 打开摄像头
|
openCamera() {
|
this.cameraDialogVisible = true
|
this.$nextTick(() => {
|
this.initCamera()
|
})
|
},
|
// 初始化摄像头
|
async initCamera() {
|
try {
|
// 请求摄像头权限
|
this.stream = await navigator.mediaDevices.getUserMedia({
|
video: {
|
width: { ideal: 640 },
|
height: { ideal: 480 },
|
facingMode: 'user' // 前置摄像头
|
},
|
audio: false
|
})
|
|
// 将视频流绑定到 video 元素
|
const video = this.$refs.video
|
if (video) {
|
video.srcObject = this.stream
|
}
|
} catch (error) {
|
this.$message.error('无法访问摄像头,请检查摄像头权限设置')
|
console.error('摄像头初始化失败:', error)
|
}
|
},
|
// 拍照
|
takePhoto() {
|
const video = this.$refs.video
|
const canvas = this.$refs.canvas
|
|
if (!video || !canvas) return
|
|
// 设置画布尺寸
|
canvas.width = video.videoWidth || 640
|
canvas.height = video.videoHeight || 480
|
|
// 绘制视频帧到画布
|
const ctx = canvas.getContext('2d')
|
ctx.drawImage(video, 0, 0, canvas.width, canvas.height)
|
|
// 转换为图片数据
|
this.capturedImage = canvas.toDataURL('image/jpeg', 0.9)
|
|
// 停止摄像头
|
this.stopCamera()
|
},
|
// 重拍
|
retakePhoto() {
|
this.capturedImage = ''
|
this.initCamera()
|
},
|
// 确认使用照片
|
confirmPhoto() {
|
if (this.capturedImage) {
|
// 设置图片预览
|
this.empBaseInfoImageUrl = this.capturedImage
|
|
// 设置表单数据(Base64格式)
|
this.empBaseInfoForm.imagePath = this.capturedImage
|
|
// 关闭弹窗
|
this.closeCamera()
|
|
this.$message.success('照片已保存')
|
}
|
},
|
// 关闭摄像头
|
closeCamera() {
|
this.stopCamera()
|
this.cameraDialogVisible = false
|
this.capturedImage = ''
|
},
|
// 停止摄像头流
|
stopCamera() {
|
if (this.stream) {
|
this.stream.getTracks().forEach(track => {
|
track.stop()
|
})
|
this.stream = null
|
}
|
|
const video = this.$refs.video
|
if (video) {
|
video.srcObject = null
|
}
|
},
|
handleWorkExperienceSuccess() {
|
this.isAdd = true
|
this.initList()
|
this.dialogIsShow()
|
},
|
dialogIsShow() {
|
this.workExperienceModal = false
|
this.isAdd = true
|
this.dialogshowArr[this.thisShowIndex].show = !this.dialogshowArr[this.thisShowIndex]
|
.show
|
},
|
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.dialogshowArr[0].show = true
|
},
|
editWorkExperience(row) {
|
this.isAdd = false
|
this.workExperienceEditData = { ...row }
|
this.thisShowIndex = 1
|
this.dialogshowArr[1].show = true
|
},
|
editPhysicalExam(row) {
|
this.isAdd = false
|
this.physicalExamEditData = { ...row }
|
this.thisShowIndex = 2
|
this.dialogshowArr[2].show = true
|
},
|
editContractInfo(row) {
|
this.isAdd = false
|
this.contractInfoEditData = { ...row }
|
this.thisShowIndex = 3
|
this.dialogshowArr[3].show = true
|
},
|
editDimissionAttend(row) {
|
this.isAdd = false
|
this.dimissionAttendEditData = { ...row }
|
this.thisShowIndex = 4
|
this.dialogshowArr[4].show = true
|
},
|
editLeaveInfo(row) {
|
this.isAdd = false
|
this.leaveInfoEditData = { ...row }
|
this.thisShowIndex = 5
|
this.dialogshowArr[5].show = true
|
},
|
editResign(row) {
|
this.isAdd = false
|
this.resignEditData = { ...row }
|
this.thisShowIndex = 6
|
this.dialogshowArr[6].show = true
|
},
|
editUnemployment(row) {
|
this.isAdd = false
|
this.unemploymentEditData = { ...row }
|
this.thisShowIndex = 7
|
this.dialogshowArr[7].show = true
|
},
|
editInsurance(row) {
|
this.isAdd = false
|
this.socialSecurityEditData = { ...row }
|
this.thisShowIndex = 8
|
this.dialogshowArr[8].show = true
|
},
|
editAccidentCases(row) {
|
this.isAdd = false
|
this.accidentInsuranceEditData = { ...row }
|
this.thisShowIndex = 9
|
this.dialogshowArr[9].show = true
|
},
|
editOccupational(row) {
|
this.isAdd = false
|
this.workInjuryEditData = { ...row }
|
this.thisShowIndex = 10
|
this.dialogshowArr[10].show = true
|
},
|
editLaborTrouble(row) {
|
this.isAdd = false
|
this.arbitrationEditData = { ...row }
|
this.thisShowIndex = 11
|
this.dialogshowArr[11].show = true
|
},
|
editBadRecord(row) {
|
this.isAdd = false
|
this.badRecordEditData = { ...row }
|
this.thisShowIndex = 12
|
this.dialogshowArr[12].show = true
|
},
|
editRemarkInfo(row) {
|
this.isAdd = false
|
this.remarkEditData = { ...row }
|
this.thisShowIndex = 13
|
this.dialogshowArr[13].show = true
|
},
|
gzadd(index) {
|
this.isAdd = true
|
this.thisShowIndex = index
|
// 填充员工基本信息到编辑组件
|
const baseInfo = {
|
empId: this.empBaseInfoForm.empId,
|
empNumb: this.empBaseInfoForm.empNumb,
|
empName: this.empBaseInfoForm.empName,
|
sex: this.empBaseInfoForm.sex,
|
certificateNumb: this.empBaseInfoForm.certificateNumb,
|
deptId: this.empBaseInfoForm.deptId,
|
deptName: this.empBaseInfoForm.deptName,
|
allDeptName: this.empBaseInfoForm.allDeptName,
|
JobId: this.empBaseInfoForm.JobId,
|
jobName: this.empBaseInfoForm.jobName
|
}
|
switch (index) {
|
case 1: this.workExperienceEditData = { ...baseInfo }; break
|
case 2: this.physicalExamEditData = { ...baseInfo }; break
|
case 3: this.contractInfoEditData = { ...baseInfo }; break
|
case 4: this.dimissionAttendEditData = { ...baseInfo }; break
|
case 5: this.leaveInfoEditData = { ...baseInfo }; break
|
case 6: this.resignEditData = { ...baseInfo }; break
|
case 7: this.unemploymentEditData = { ...baseInfo }; break
|
case 8: this.socialSecurityEditData = { ...baseInfo }; break
|
case 9: this.accidentInsuranceEditData = { ...baseInfo }; break
|
case 10: this.workInjuryEditData = { ...baseInfo }; break
|
case 11: this.arbitrationEditData = { ...baseInfo }; break
|
case 12: this.badRecordEditData = { ...baseInfo }; break
|
case 13: this.remarkEditData = { ...baseInfo }; break
|
}
|
this.dialogshowArr[index].show = true
|
},
|
gzdelete(tables, selection, Id) {
|
if (!selection.length) {
|
this.$message({
|
message: this.$t('tips.noDataSelected'),
|
type: 'warning'
|
})
|
return
|
}
|
this.$confirm(this.$t('tips.confirmDelete'), this.$t('common.tips'), {
|
confirmButtonText: this.$t('common.confirm'),
|
cancelButtonText: this.$t('common.cancel'),
|
type: 'warning'
|
}).then(() => {
|
const Ids = []
|
// eslint-disable-next-line no-unused-vars
|
let urls = ''
|
selection.forEach((c) => {
|
if (selection === 'onremarkInfoDataselection') {
|
Ids.push(c.remarkId)
|
urls = 'empRemarkInfo'
|
} else if (selection === 'onbadRecordDataselection') {
|
Ids.push(c.badId)
|
urls = 'empBadRecord'
|
} else if (selection === 'laborTroubleDataselection') {
|
Ids.push(c.arbitrationId)
|
urls = 'empLaborTrouble'
|
} else if (selection === 'occupationalDataselection') {
|
Ids.push(c.occupationalId)
|
urls = 'empOccupational'
|
} else if (selection === 'accidentCasesDataselection') {
|
Ids.push(c.accidentId)
|
urls = 'empAccidentCases'
|
} else if (selection === 'insuranceDataselection') {
|
Ids.push(c.insuranceId)
|
urls = 'empInsurance'
|
} else if (selection === 'unemploymentDataselection') {
|
Ids.push(c.unemploymentId)
|
urls = 'empUnemployment'
|
} else if (selection === 'dimissionAttendDataselection') {
|
Ids.push(c.dimissionAttendId)
|
urls = 'empDimissionAttend'
|
} else if (selection === 'resignDataselection') {
|
Ids.push(c.resignId)
|
urls = 'empResign'
|
} else if (selection === 'leaveInfoDataselection') {
|
Ids.push(c.leaveId)
|
urls = 'empLeaveInfo'
|
} else if (selection === 'contractInfoDataselection') {
|
Ids.push(c.contractId)
|
urls = 'empContractInfo'
|
} else if (selection === 'physicalExamDataselection') {
|
Ids.push(c.physicalExamId)
|
urls = 'empPhysicalExam'
|
} else if (selection === 'workExperienceDataselection') {
|
Ids.push(c.workExperienceId)
|
urls = 'empWorkExperience'
|
}
|
})
|
this.delete(Ids, urls, selection)
|
}).catch(() => {
|
this.clearSelections(tables)
|
})
|
},
|
clearSelections(tabless) {
|
this.$refs.tabless.clearSelection()
|
},
|
delete(ids, urls, selection) {
|
this.loading = true
|
this.$delete(`hr/${urls}/${ids}`).then(() => {
|
this.$message({
|
message: this.$t('tips.deleteSuccess'),
|
type: 'success'
|
})
|
if (selection === 'remarkInfoDataselection') {
|
this.initremarkInfoData()
|
} else if (selection === 'badRecordDataselection') {
|
this.initbadRecordData()
|
} else if (selection === 'laborTroubleDataselection') {
|
this.initlaborTroubleData()
|
} else if (selection === 'occupationalDataselection') {
|
this.initoccupationalData()
|
} else if (selection === 'accidentCasesDataselection') {
|
this.initaccidentCasesData()
|
} else if (selection === 'insuranceDataselection') {
|
this.initinsuranceData()
|
} else if (selection === 'unemploymentDataselection') {
|
this.initunemploymentData()
|
} else if (selection === 'dimissionAttendDataselection') {
|
this.initdimissionAttendData()
|
} else if (selection === 'resignDataselection') {
|
this.initresignData()
|
} else if (selection === 'leaveInfoDataselection') {
|
this.initleaveInfoData()
|
} else if (selection === 'contractInfoDataselection') {
|
this.initcontractInfoData()
|
} else if (selection === 'physicalExamDataselection') {
|
this.initphysicalExamData()
|
} else if (selection === 'workExperienceDataselection') {
|
this.initList()
|
}
|
})
|
},
|
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'
|
})
|
})
|
},
|
querySearchJob(queryString, cb) {
|
const restaurants = this.restaurJob
|
const results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants
|
// 调用 callback 返回建议列表的数据
|
cb(results)
|
},
|
createFilter(queryString) {
|
return (restaurant) => {
|
return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0)
|
}
|
},
|
jobNameSelect(items) {
|
this.empBaseInfoForm.jobName = items.value
|
this.empBaseInfoForm.JobId = items.code
|
},
|
generateUserInfo(index, val) {
|
var userinfo = toCardGetUserInfo(val)
|
if (userinfo === null) {
|
return
|
}
|
switch (index) {
|
case 0:
|
this.empBaseInfoForm.age = userinfo.age
|
this.empBaseInfoForm.birthdate = userinfo.birth
|
this.empBaseInfoForm.sex = userinfo.sex
|
break
|
}
|
},
|
placeNameSelect(items) {
|
this.empBaseInfoForm.nativePlaceName = items.value
|
this.empBaseInfoForm.nativePlace = items.code
|
},
|
querySearch(queryString, cb) {
|
var restaurants = this.restaurants
|
var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants
|
// 调用 callback 返回建议列表的数据
|
cb(results)
|
},
|
calculateSeniority(val) {
|
this.empBaseInfoForm.seniority = calculateSeniority(val)
|
},
|
goAnchor: function(type) {
|
let item = 1
|
this.item = type
|
// 根据点击的菜单懒加载对应数据
|
switch (type) {
|
case 'jbxx':
|
item = 0
|
// 基本信息 - 已加载
|
break
|
case 'gzjl':
|
item = 1
|
// 工作经历 - 懒加载
|
if (!this.workExperienceData || this.workExperienceData.length === 0) {
|
this.initList()
|
}
|
break
|
case 'tjxx':
|
item = 2
|
// 体检信息 - 懒加载
|
if (!this.physicalExamData || this.physicalExamData.length === 0) {
|
this.initphysicalExamData()
|
}
|
break
|
case 'htxx':
|
item = 3
|
// 合同信息 - 懒加载
|
if (!this.contractInfoData || this.contractInfoData.length === 0) {
|
this.initcontractInfoData()
|
}
|
break
|
case 'tgjl':
|
item = 4
|
// 调岗记录 - 懒加载
|
if (!this.jobChangeData || this.jobChangeData.length === 0) {
|
this.initjobChangeData()
|
}
|
break
|
case 'qjjl':
|
item = 5
|
// 请假记录 - 懒加载
|
if (!this.leaveInfoData || this.leaveInfoData.length === 0) {
|
this.initleaveInfoData()
|
}
|
break
|
case 'czsq':
|
item = 6
|
// 辞职申请 - 懒加载
|
if (!this.resignData || this.resignData.length === 0) {
|
this.initresignData()
|
}
|
break
|
case 'lzdykq':
|
item = 7
|
// 考勤情况 - 懒加载
|
if (!this.dimissionAttendData || this.dimissionAttendData.length === 0) {
|
this.initdimissionAttendData()
|
}
|
break
|
case 'rlzjl':
|
item = 8
|
// 入离职记录 - 懒加载
|
if (!this.dimissionLogData || this.dimissionLogData.length === 0) {
|
this.initdimissionLogData()
|
}
|
break
|
case 'syjlq':
|
item = 9
|
// 失业金领取 - 懒加载
|
if (!this.unemploymentData || this.unemploymentData.length === 0) {
|
this.initunemploymentData()
|
}
|
break
|
case 'sbsq':
|
item = 10
|
// 社保申请 - 懒加载
|
if (!this.insuranceData || this.insuranceData.length === 0) {
|
this.initinsuranceData()
|
}
|
break
|
case 'ywxaj':
|
item = 11
|
// 意外险案件 - 懒加载
|
if (!this.accidentCasesData || this.accidentCasesData.length === 0) {
|
this.initaccidentCasesData()
|
}
|
break
|
case 'gsaj':
|
item = 12
|
// 工伤案件 - 懒加载
|
if (!this.occupationalData || this.occupationalData.length === 0) {
|
this.initoccupationalData()
|
}
|
break
|
case 'lzaj':
|
item = 13
|
// 仲裁案件 - 懒加载
|
if (!this.laborTroubleData || this.laborTroubleData.length === 0) {
|
this.initlaborTroubleData()
|
}
|
break
|
case 'bljl':
|
item = 14
|
// 不良记录 - 懒加载
|
if (!this.badRecordData || this.badRecordData.length === 0) {
|
this.initbadRecordData()
|
}
|
break
|
case 'bz':
|
item = 15
|
// 备注 - 懒加载
|
if (!this.remarkInfoData || this.remarkInfoData.length === 0) {
|
this.initremarkInfoData()
|
}
|
break
|
case 'jljt':
|
item = 16
|
// 奖励津贴 - 懒加载
|
break
|
}
|
this.$nextTick(() => {
|
this.$refs.boxDetails.scrollTop = item ? this.$refs[this.listType[item]].offsetTop - 100 : 0
|
})
|
},
|
initSysConfig() {
|
return {
|
configId: '',
|
configName: '',
|
configKey: '',
|
configValue: '',
|
remark: ''
|
}
|
},
|
singleDelete(row, names) {
|
let ids = ''
|
let urls = ''
|
if (names === 'remarkInfoDataselection') {
|
ids = row.remarkId
|
urls = 'empRemarkInfo'
|
} else if (names === 'badRecordDataselection') {
|
ids = row.badId
|
urls = 'empBadRecord'
|
} else if (names === 'laborTroubleDataselection') {
|
ids = row.arbitrationId
|
urls = 'empLaborTrouble'
|
} else if (names === 'occupationalDataselection') {
|
ids = row.occupationalId
|
urls = 'empOccupational'
|
} else if (names === 'accidentCasesDataselection') {
|
ids = row.accidentId
|
urls = 'empAccidentCases'
|
} else if (names === 'insuranceDataselection') {
|
ids = row.insuranceId
|
urls = 'empInsurance'
|
} else if (names === 'unemploymentDataselection') {
|
ids = row.unemploymentId
|
urls = 'empUnemployment'
|
} else if (names === 'dimissionAttendDataselection') {
|
ids = row.dimissionAttendId
|
urls = 'empDimissionAttend'
|
} else if (names === 'resignDataselection') {
|
ids = row.resignId
|
urls = 'empResign'
|
} else if (names === 'leaveInfoDataselection') {
|
ids = row.leaveId
|
urls = 'empLeaveInfo'
|
} else if (names === 'contractInfoDataselection') {
|
ids = row.contractId
|
urls = 'empContractInfo'
|
} else if (names === 'physicalExamDataselection') {
|
ids = row.physicalExamId
|
urls = 'empPhysicalExam'
|
} else if (names === 'workExperienceDataselection') {
|
ids = row.workExperienceId
|
urls = 'empWorkExperience'
|
}
|
this.delete(ids, urls, names)
|
},
|
submitForm() {
|
this.$refs.form.validate((valid) => {
|
if (valid) {
|
this.buttonLoading = true
|
if (this.type === 'add') {
|
// create
|
this.$post('system/sysConfig', { ...this.sysConfig }).then(() => {
|
this.buttonLoading = false
|
this.isVisible = false
|
this.$message({
|
message: this.$t('tips.createSuccess'),
|
type: 'success'
|
})
|
this.$emit('success')
|
})
|
} else {
|
// update
|
this.$put('system/sysConfig', { ...this.sysConfig }).then(() => {
|
this.buttonLoading = false
|
this.isVisible = false
|
this.$message({
|
message: this.$t('tips.updateSuccess'),
|
type: 'success'
|
})
|
this.$emit('success')
|
})
|
}
|
} else {
|
return false
|
}
|
})
|
},
|
close() {
|
this.$emit('close')
|
},
|
reset() {
|
if (undefined !== this.$refs.form) {
|
this.$refs.form.clearValidate()
|
this.$refs.form.resetFields()
|
}
|
|
this.sysConfig = this.initSysConfig()
|
},
|
startDate(rule, value, callback) {
|
// 如果结束日期没选,cb
|
if (!this.contractInfoForm.endDate) {
|
callback()
|
} else {
|
// 结束日期有,进行判断
|
if (this.compareDate(value, this.contractInfoForm.endDate)) {
|
// 如果起始在结束之前
|
callback()
|
} else {
|
callback(new Error('开始日期不能在结束日期之后,请重新选择'))
|
}
|
}
|
},
|
// 验证合同结束日期
|
endDate(rule, value, callback) {
|
// 如果起始日期没选,cb
|
if (!this.contractInfoForm.signingDate) {
|
callback()
|
} else {
|
// 起始日期有,进行判断
|
if (this.compareDate(this.contractInfoForm.signingDate, value)) {
|
// 如果起始在结束之前
|
this.contractInfoForm.contractPeriod = dateDifference(this.contractInfoForm.signingDate, this.contractInfoForm.endDate, 'o')
|
callback()
|
} else {
|
callback(new Error('结束日期不能在开始始日期之前,请重新选择'))
|
}
|
}
|
},
|
compareDate(start, end) {
|
return new Date(end).getTime() > new Date(start).getTime()
|
}
|
}
|
}
|
</script>
|
<style lang="scss" scoped>
|
.conDetails {
|
display: flex;
|
justify-content: space-between;
|
|
.dadetails {
|
width: 220px;
|
padding: 10px;
|
box-sizing: border-box;
|
|
.jbxxImg {
|
width: 100px;
|
height: 80px;
|
}
|
|
.title-da {
|
padding-top: 8px;
|
font-weight: 700;
|
color: #333;
|
height: 30px;
|
line-height: 30px;
|
}
|
|
}
|
|
.boxDetails {
|
flex: 1;
|
padding: 10px;
|
font-size: 16px;
|
height: 90vh;
|
overflow-y: scroll;
|
|
.jbxxTitle, .jbxxTitle2 {
|
height: 30px;
|
line-height: 30px;
|
padding-left: 15px;
|
//border-left: 4px solid #a00515;
|
margin: 30px 0 20px;
|
color: #000;
|
position: relative;
|
}
|
|
.jbxx .jbxxTitle {
|
margin: 20px 0;
|
}
|
|
.jbxxTitle::before,
|
.jbxxTitle2::before {
|
content: '';
|
position: absolute;
|
left: -10px;
|
top: 50%;
|
transform: translateY(-50%);
|
background-color: #a00515;
|
border-radius: 50%;
|
display: inline-block;
|
height: 15px;
|
width: 15px;
|
}
|
|
.jbxxTitle::after {
|
|
content: '';
|
position: absolute;
|
left: 100px;
|
top: 50%;
|
display: inline-block;
|
width: 80%;
|
height: 1px;
|
border: 1px dashed #ccc;
|
}
|
|
.el-table__header {
|
width: 100%;
|
}
|
|
//.jbxx{
|
// /deep/.el-form-item{
|
// display: flex;
|
// }
|
// /deep/.el-form-item__label{
|
// white-space: nowrap;
|
// width: 100px!important;
|
// }
|
// /deep/.el-form-item__content{
|
// margin-left: 10px!important;
|
// width: 80%!important;
|
// }
|
// .formjbxx{
|
// display: flex;
|
// flex-wrap: wrap;
|
// }
|
//}
|
|
}
|
}
|
|
.el-select {
|
width: 100%;
|
}
|
|
.el-autocomplete {
|
width: 100%;
|
}
|
|
.el-date-editor.el-input,
|
.el-date-editor.el-input__inner {
|
width: 100%;
|
}
|
|
.el-main {
|
margin-top: 2%;
|
}
|
|
.app-main {
|
background-color: #ffffff;
|
}
|
|
.el-button,
|
.el-button--primary {
|
background: #a32c30;
|
border-color: #a32c30;
|
color: #fff;
|
outline: none;
|
}
|
|
.zs-main .text-header {
|
line-height: 40px;
|
}
|
|
.el-card {
|
border: none;
|
}
|
|
.el-input-number {
|
width: 100%;
|
}
|
|
.clearfix:before,
|
.clearfix:after {
|
display: table;
|
content: '';
|
}
|
|
.clearfix:after {
|
clear: both;
|
}
|
|
.add-folder {
|
text-align: initial;
|
}
|
|
.zs-main {
|
.search-title {
|
height: 50px;
|
|
.search {
|
position: relative;
|
top: 50%;
|
transform: translateY(-50%);
|
}
|
|
.title {
|
position: relative;
|
top: 40%;
|
transform: translateY(-50%);
|
}
|
|
.zs-title {
|
border-left: 4px solid #a32c30;
|
padding-left: 10px;
|
font-size: 16px;
|
}
|
}
|
|
.add-folder-but {
|
background: #fff !important;
|
color: #a32c30 !important;
|
margin-bottom: 20px;
|
}
|
|
padding: 0 15px 0 15px;
|
|
.text-header {
|
line-height: 60px;
|
}
|
|
.uploading-image {
|
width: 70%;
|
height: 70%;
|
display: block;
|
margin: 0 auto;
|
}
|
}
|
|
.el-timeline-item__timestamp {
|
font-size: 15px;
|
color: #000;
|
}
|
|
/* 设置带边框的checkbox,选中后边框的颜色 */
|
.myRedCheckBox.is-bordered.is-checked {
|
border-color: #a32c30;
|
}
|
|
/* 设置选中后的文字颜色 */
|
.myRedCheckBox .el-checkbox__input.is-checked + .el-checkbox__label {
|
color: #a32c30;
|
}
|
|
/* 设置选中后对勾框的边框和背景颜色 */
|
.myRedCheckBox .el-checkbox__input.is-checked .el-checkbox__inner,
|
.myRedCheckBox .el-checkbox__input.is-indeterminate .el-checkbox__inner {
|
border-color: #a32c30;
|
background-color: #a32c30;
|
}
|
|
/* 设置checkbox获得焦点后,对勾框的边框颜色 */
|
.myRedCheckBox .el-checkbox__input.is-focus .el-checkbox__inner {
|
border-color: #a32c30;
|
}
|
|
/* 设置鼠标经过对勾框,对勾框边框的颜色 */
|
.myRedCheckBox .el-checkbox__inner:hover {
|
border-color: #a32c30;
|
}
|
|
.myRedCheckBox .el-checkbox__label {
|
width: 90%;
|
overflow: hidden;
|
text-overflow: ellipsis;
|
white-space: nowrap;
|
}
|
|
.avatar-uploader .el-upload {
|
border: 1px dashed #d9d9d9;
|
border-radius: 6px;
|
cursor: pointer;
|
position: relative;
|
overflow: hidden;
|
}
|
|
.avatar-uploader .el-upload:hover {
|
border-color: #409eff;
|
}
|
|
.avatar-uploader-icon {
|
font-size: 28px;
|
color: #8c939d;
|
width: 150px;
|
height: 150px;
|
line-height: 150px;
|
text-align: center;
|
}
|
|
.avatar {
|
width: 150px;
|
height: 150px;
|
display: block;
|
}
|
|
// 头像包装器
|
.avatar-wrapper {
|
text-align: center;
|
cursor: pointer;
|
|
.avatar {
|
width: 120px;
|
height: 150px;
|
border-radius: 4px;
|
object-fit: cover;
|
border: 1px dashed #d9d9d9;
|
margin: 0 auto;
|
|
&:hover {
|
border-color: #409eff;
|
}
|
}
|
|
.avatar-uploader-placeholder {
|
width: 120px;
|
height: 150px;
|
border: 1px dashed #d9d9d9;
|
border-radius: 4px;
|
display: flex;
|
flex-direction: column;
|
align-items: center;
|
justify-content: center;
|
margin: 0 auto;
|
background-color: #fafafa;
|
|
&:hover {
|
border-color: #409eff;
|
}
|
|
.avatar-uploader-icon {
|
font-size: 28px;
|
color: #8c939d;
|
}
|
|
.upload-tip {
|
font-size: 12px;
|
color: #8c939d;
|
margin-top: 8px;
|
}
|
}
|
}
|
|
// 上传方式选择容器
|
.upload-choice-container {
|
display: flex;
|
justify-content: space-around;
|
padding: 20px 0;
|
|
.upload-choice-item {
|
display: flex;
|
flex-direction: column;
|
align-items: center;
|
justify-content: center;
|
width: 120px;
|
height: 120px;
|
border: 2px dashed #d9d9d9;
|
border-radius: 8px;
|
cursor: pointer;
|
transition: all 0.3s;
|
|
&:hover {
|
border-color: #409eff;
|
background-color: #f5f7fa;
|
}
|
|
i {
|
font-size: 40px;
|
color: #409eff;
|
margin-bottom: 10px;
|
}
|
|
span {
|
font-size: 14px;
|
color: #606266;
|
}
|
}
|
}
|
|
// 摄像头容器
|
.camera-container {
|
text-align: center;
|
|
.camera-video {
|
width: 100%;
|
max-width: 600px;
|
height: auto;
|
border-radius: 4px;
|
background: #000;
|
}
|
|
.captured-image {
|
width: 100%;
|
max-width: 600px;
|
height: auto;
|
border-radius: 4px;
|
}
|
}
|
|
.avatar-uploader .el-upload-dragger .el-icon-upload {
|
margin: 20px 0 16px;
|
}
|
|
.avatar-uploader .el-upload-dragger {
|
border: none;
|
width: 100px;
|
height: 100px;
|
}
|
|
.table-button {
|
color: #a00515;
|
display: inline-block;
|
width: 45%;
|
cursor: pointer;
|
}
|
|
.filter-item {
|
margin-bottom: 10px;
|
position: absolute;
|
right: 20px;
|
}
|
|
.jbxx-ul {
|
margin-top: 10px;
|
font-size: 14px;
|
list-style: none;
|
padding-left: 10px !important;
|
|
> li:last-of-type {
|
> div:first-of-type {
|
position: absolute;
|
left: 4px;
|
height: 100%;
|
border-left: 0;
|
}
|
}
|
|
li {
|
padding-bottom: 5px;
|
position: relative;
|
height: 35px;
|
box-sizing: border-box;
|
|
> div:first-of-type {
|
position: absolute;
|
left: 4px;
|
height: 100%;
|
border-left: 2px solid #dfe4ed;
|
}
|
|
> div:last-of-type {
|
color: #333;
|
cursor: pointer;
|
position: relative;
|
height: 35px;
|
box-sizing: border-box;
|
padding-left: 28px !important;
|
|
&:hover {
|
color: #a00515;
|
cursor: pointer;
|
}
|
|
.light {
|
color: #a00515;
|
}
|
}
|
|
.item-node {
|
left: -1px;
|
width: 12px;
|
height: 12px;
|
position: absolute;
|
background-color: #dfe4ed;
|
border-radius: 50%;
|
display: -webkit-box;
|
display: -ms-flexbox;
|
display: flex;
|
-webkit-box-pack: center;
|
-ms-flex-pack: center;
|
justify-content: center;
|
-webkit-box-align: center;
|
-ms-flex-align: center;
|
align-items: center;
|
}
|
}
|
}
|
|
</style>
|
<style lang="scss">
|
.da-dialog {
|
button.el-dialog__headerbtn {
|
height: 30px;
|
width: 30px;
|
background-color: #a00515;
|
opacity: 0.8;
|
line-height: 30px;
|
border-radius: 50%;
|
|
i {
|
color: #fff !important;
|
}
|
|
&:hover {
|
opacity: 0.5;
|
}
|
}
|
|
.el-pagination {
|
width: 98%;
|
text-align: right;
|
}
|
|
.el-aside {
|
height: 750px;
|
overflow: hidden;
|
}
|
|
li.el-timeline-item {
|
padding-bottom: 1px;
|
height: 35px;
|
}
|
|
.el-dialog__title {
|
font-weight: 700;
|
}
|
|
.el-dialog__body {
|
padding: 10px 20px;
|
}
|
}
|
|
.el-dialog.is-fullscreen {
|
overflow: hidden;
|
}
|
|
.formjbxx {
|
.el-input.is-disabled .el-input__inner {
|
background-color: #fff !important;
|
color: #333 !important;
|
}
|
}
|
|
.pri-del-btn {
|
background-color: rgb(64, 158, 255) !important;
|
border-color: rgb(64, 158, 255) !important;
|
}
|
</style>
|