<template>
|
<div class="info-input">
|
<el-container>
|
<el-aside width="175px">
|
<el-timeline style="padding-left: 15px">
|
<el-timeline-item v-show="timelineShow('empBaseinfo:list')" @click.native="isShow(showArr[0].show, 0)">
|
<span :class="thisShowIndex===0?'selectedTimeline':''">基本信息</span>
|
</el-timeline-item>
|
<el-timeline-item v-show="timelineShow('empWorkexperience:list')" @click.native="isShow(showArr[1].show, 1)">
|
<span :class="thisShowIndex===1?'selectedTimeline':''">工作经历</span>
|
</el-timeline-item>
|
<el-timeline-item v-show="timelineShow('empPhysicalexam:list')" @click.native="isShow(showArr[2].show, 2)">
|
<span :class="thisShowIndex===2?'selectedTimeline':''">体检信息</span>
|
</el-timeline-item>
|
<el-timeline-item v-show="timelineShow('empContractinfo:list')" @click.native="isShow(showArr[3].show, 3)">
|
<span :class="thisShowIndex===3?'selectedTimeline':''">合同信息</span>
|
</el-timeline-item>
|
<el-timeline-item v-show="timelineShow('empDimissionattend:list')" @click.native="isShow(showArr[4].show, 4)">
|
<span :class="thisShowIndex===4?'selectedTimeline':''">离职当月考勤</span>
|
</el-timeline-item>
|
<el-timeline-item v-show="timelineShow('empLeaveinfo:list')" @click.native="isShow(showArr[5].show, 5)">
|
<span :class="thisShowIndex===5?'selectedTimeline':''">请假记录</span>
|
</el-timeline-item>
|
<el-timeline-item v-show="timelineShow('empResign:list')" @click.native="isShow(showArr[6].show, 6)">
|
<span :class="thisShowIndex===6?'selectedTimeline':''">辞职申请</span>
|
</el-timeline-item>
|
<el-timeline-item v-show="timelineShow('empUnemployment:list')" @click.native="isShow(showArr[7].show, 7)">
|
<span :class="thisShowIndex===7?'selectedTimeline':''">失业金领取</span>
|
</el-timeline-item>
|
<el-timeline-item v-show="timelineShow('empInsurance:list')" @click.native="isShow(showArr[8].show, 8)">
|
<span :class="thisShowIndex===8?'selectedTimeline':''">社保申请</span>
|
</el-timeline-item>
|
<el-timeline-item v-show="timelineShow('empAccidentcases:list')" @click.native="isShow(showArr[9].show, 9)">
|
<span :class="thisShowIndex===9?'selectedTimeline':''">意外险案件</span>
|
</el-timeline-item>
|
<el-timeline-item v-show="timelineShow('empOccupational:list')" @click.native="isShow(showArr[10].show, 10)">
|
<span :class="thisShowIndex===10?'selectedTimeline':''">工伤案件</span>
|
</el-timeline-item>
|
<el-timeline-item v-show="timelineShow('empLabortrouble:list')" @click.native="isShow(showArr[11].show, 11)">
|
<span :class="thisShowIndex===11?'selectedTimeline':''">仲裁案件</span>
|
</el-timeline-item>
|
<el-timeline-item v-show="timelineShow('empBadrecord:list')" @click.native="isShow(showArr[12].show, 12)">
|
<span :class="thisShowIndex===12?'selectedTimeline':''">不良记录</span>
|
</el-timeline-item>
|
<el-timeline-item v-show="timelineShow('empRemarkinfo:list')" @click.native="isShow(showArr[13].show, 13)">
|
<span :class="thisShowIndex===13?'selectedTimeline':''">备注信息</span>
|
</el-timeline-item>
|
</el-timeline>
|
</el-aside>
|
<el-main>
|
<el-row>
|
<el-col>
|
<el-button class="commonBtn" @click.native="dialogIsShow('0')">新增</el-button>
|
<el-button class="commonBtn" style="background-color: #409EFF" @click.native="butDelete()">删除</el-button>
|
<el-button class="commonBtn" style="float: right" @click.native="showDryg(0)">导入员工信息</el-button>
|
</el-col>
|
</el-row>
|
<el-table
|
v-show="showArr[0].show"
|
ref="empBaseInfoTable"
|
:data="basicInformationData"
|
stripe
|
border
|
:cell-style="{padding:'7px 0','text-align':'center'}"
|
:header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
|
style="width: 100%;"
|
@sort-change="changeSort"
|
>
|
<el-table-column type="selection" width="50" />
|
<el-table-column label="操作" width="80">
|
<template slot-scope="scope">
|
<!-- <el-button-->
|
<!-- type="text"-->
|
<!-- size="small"-->
|
<!-- @click="editEmpBase(scope.row)"-->
|
<!-- >编辑-->
|
<!-- </el-button>-->
|
|
<span style="color: #a00515;cursor: pointer;" @click="editEmpBase(scope.row)">
|
<i class="el-icon-edit-outline" style="font-size: 1.9vh;margin-right: 5px;" />
|
编辑
|
</span>
|
</template>
|
</el-table-column>
|
-->
|
<!-- <el-table-column label="照片" width="60">-->
|
<!-- <template slot-scope="scope">-->
|
<!-- <!– <img :src="scope.row.imagePath">–>-->
|
<!-- <el-image-->
|
<!-- v-if="scope.row.imagePath && scope.row.imagePath != ''"-->
|
<!-- style="width: 30px; height: 30px"-->
|
<!-- :src="scope.row.imagePath"-->
|
<!-- fit="cover"-->
|
<!-- />-->
|
|
<!-- <el-image-->
|
<!-- v-else-->
|
<!-- style="width: 30px; height: 30px"-->
|
<!-- :src="defaultImg"-->
|
<!-- fit="cover"-->
|
<!-- />-->
|
<!-- </template>-->
|
<!-- </el-table-column>-->
|
<el-table-column
|
show-overflow-tooltip
|
prop="empNumb"
|
label="编号"
|
width="80"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="allDeptName"
|
label="部门(护卫点)"
|
width="300"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="50" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="empName"
|
label="姓名"
|
width="80"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="180" />
|
<el-table-column show-overflow-tooltip prop="empType" label="员工类别" width="80" :formatter="empTypeFormat" />
|
<el-table-column show-overflow-tooltip prop="sex" label="性别" width="50" :formatter="sexFormat" />
|
<el-table-column show-overflow-tooltip prop="nation" label="民族" width="50" :formatter="nationFormat" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="marriage"
|
label="婚姻状况"
|
width="80"
|
:formatter="marriageFormat"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="politics"
|
label="政治面貌"
|
width="80"
|
:formatter="politicsFormat"
|
/>
|
<el-table-column show-overflow-tooltip prop="education" label="学历" width="50" :formatter="educationFormat" />
|
<el-table-column
|
prop="entryDate"
|
show-overflow-tooltip
|
label="入职日期"
|
width="120"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
prop="insuranceType"
|
show-overflow-tooltip
|
label="社保档位"
|
width="80"
|
:formatter="insuranceTypeFormat"
|
/>
|
<el-table-column prop="socialNumb" show-overflow-tooltip label="社保电脑号" width="100" />
|
<el-table-column prop="guardNumb" show-overflow-tooltip label="保安员证号" width="100" />
|
<el-table-column prop="archivesNumb" show-overflow-tooltip label="档案编号" width="80" />
|
<el-table-column prop="archivesStatusName" show-overflow-tooltip label="档案情况" />
|
</el-table>
|
<el-table
|
v-show="showArr[1].show"
|
ref="workExperienceTable"
|
:data="workExperienceData"
|
:cell-style="{padding:'7px 0','text-align':'center'}"
|
:header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
|
stripe
|
border
|
style="width: 100%;"
|
@sort-change="changeSort"
|
>
|
<el-table-column type="selection" width="55" />
|
<el-table-column label="操作" width="100">
|
<template slot-scope="scope">
|
<!-- <el-button-->
|
<!-- type="text"-->
|
<!-- size="small"-->
|
<!-- @click="editWorkExperience(scope.row)"-->
|
<!-- >编辑-->
|
<!-- </el-button>-->
|
<span style="color: #a00515;cursor: pointer;" @click="editWorkExperience(scope.row)">
|
<i class="el-icon-edit-outline" style="font-size: 1.9vh;margin-right: 5px;" />
|
编辑
|
</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="empNumb"
|
label="编号"
|
width="100"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
prop="empName"
|
label="姓名"
|
width="100"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column prop="certificateNumb" show-overflow-tooltip label="身份证号码" width="180" />
|
<el-table-column prop="workUnit" show-overflow-tooltip label="工作单位" width="160" />
|
<el-table-column
|
prop="beginDate"
|
label="开始日期"
|
width="140"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column prop="endDate" label="结束日期" width="140" />
|
<el-table-column prop="jobContent" show-overflow-tooltip label="主要工作内容" min-width="120" />
|
</el-table>
|
<el-table
|
v-show="showArr[2].show"
|
ref="physicalExamTable"
|
:data="physicalExamData"
|
:cell-style="{padding:'7px 0','text-align':'center'}"
|
:header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
|
stripe
|
border
|
style="width: 100%;"
|
@sort-change="changeSort"
|
>
|
<el-table-column type="selection" width="50" />
|
<el-table-column label="操作" width="80">
|
<template slot-scope="scope">
|
<!-- <el-button-->
|
<!-- type="text"-->
|
<!-- size="small"-->
|
<!-- @click="editPhysicalExam(scope.row)"-->
|
<!-- >编辑-->
|
<!-- </el-button>-->
|
|
<span style="color: #a00515;cursor: pointer;" @click="editPhysicalExam(scope.row)">
|
<i class="el-icon-edit-outline" style="font-size: 1.9vh;margin-right: 5px;" />
|
编辑
|
</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
show-overflow-tooltip
|
prop="empNumb"
|
label="编号"
|
width="80"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="allDeptName"
|
label="部门(护卫点)"
|
width="300"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="80" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="empName"
|
label="姓名"
|
width="80"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="160" />
|
<el-table-column prop="hospital" show-overflow-tooltip label="体检医院" min-width="100" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="physicalExamDate"
|
label="体检日期"
|
width="120"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="physicalExamType"
|
label="体检类型"
|
width="80"
|
:formatter="typeFormat"
|
/>
|
<el-table-column show-overflow-tooltip prop="bloodPressure" label="血压" width="60" />
|
<el-table-column show-overflow-tooltip prop="transaminase" label="转氨酶" width="80" />
|
<el-table-column prop="ecg" show-overflow-tooltip label="心电图" width="80" :formatter="ecgNameFormat" />
|
<el-table-column prop="conclusion" show-overflow-tooltip label="体检结论" min-width="100" />
|
<el-table-column prop="reviewRecord" show-overflow-tooltip label="复查日期" min-width="100" />
|
<el-table-column prop="remark" show-overflow-tooltip label="备注" />
|
</el-table>
|
<el-table
|
v-show="showArr[3].show"
|
ref="contractInfoTable"
|
:data="contractInfoData"
|
:cell-style="{padding:'7px 0','text-align':'center'}"
|
:header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
|
stripe
|
border
|
style="width: 100%;"
|
@sort-change="changeSort"
|
>
|
<el-table-column type="selection" width="55" />
|
<el-table-column label="操作" width="100">
|
<template slot-scope="scope">
|
<!-- <el-button-->
|
<!-- type="text"-->
|
<!-- size="small"-->
|
<!-- @click="editContractInfo(scope.row)"-->
|
<!-- >编辑-->
|
<!-- </el-button>-->
|
|
<span style="color: #a00515;cursor: pointer;" @click="editContractInfo(scope.row)">
|
<i class="el-icon-edit-outline" style="font-size: 1.9vh;margin-right: 5px;" />
|
编辑
|
</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
show-overflow-tooltip
|
prop="empNumb"
|
label="编号"
|
width="100"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="allDeptName"
|
label="部门(护卫点)"
|
width="300"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="100" />
|
<el-table-column
|
prop="empName"
|
label="姓名"
|
width="100"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="155" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="signingDate"
|
label="合同签订日期"
|
width="140"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="endDate"
|
label="合同结束日期"
|
width="140"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="contractPeriod" label="合同期限(年)" width="120" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="contractStatus"
|
label="合同状态"
|
:formatter="contractStatusFormat"
|
width="120"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="transactor" label="合同办理人" width="100" />
|
</el-table>
|
<el-table
|
v-show="showArr[4].show"
|
ref="dimissionAttendTable"
|
:data="dimissionAttendData"
|
:cell-style="{padding:'7px 0','text-align':'center'}"
|
:header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
|
stripe
|
border
|
style="width: 100%;"
|
@sort-change="changeSort"
|
>
|
<el-table-column type="selection" width="50" />
|
<el-table-column label="操作" width="80">
|
<template slot-scope="scope">
|
<!-- <el-button type="text" size="small" @click="editDimissionAttend(scope.row)">编辑</el-button>-->
|
|
<span style="color: #a00515;cursor: pointer;" @click="editDimissionAttend(scope.row)">
|
<i class="el-icon-edit-outline" style="font-size: 1.9vh;margin-right: 5px;" />
|
编辑
|
</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
show-overflow-tooltip
|
prop="empNumb"
|
label="编号"
|
width="80"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="allDeptName"
|
label="部门(护卫点)"
|
width="300"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="60" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="empName"
|
label="姓名"
|
width="80"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="120" />
|
<el-table-column show-overflow-tooltip prop="attendMonth" label="离职考勤月份" width="120" />
|
<el-table-column show-overflow-tooltip prop="attendDays" label="出勤天数" width="100" />
|
<el-table-column show-overflow-tooltip prop="overtimeDay" label="加班(天)" width="100" />
|
<el-table-column show-overflow-tooltip prop="overtimeHour" label="加班(小时)" width="120" />
|
<el-table-column show-overflow-tooltip prop="deduct" label="有无代扣款项" width="120" />
|
<el-table-column show-overflow-tooltip prop="leaveDay" label="请假(天)" width="100" />
|
<el-table-column show-overflow-tooltip prop="absenteeism" label="旷工(天)" width="100" />
|
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
|
</el-table>
|
<el-table
|
v-show="showArr[5].show"
|
ref="leaveInfoTable"
|
:data="leaveInfoData"
|
:cell-style="{padding:'7px 0','text-align':'center'}"
|
:header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
|
stripe
|
border
|
style="width: 100%;"
|
@sort-change="changeSort"
|
>
|
<el-table-column type="selection" width="50" />
|
<el-table-column label="操作" width="80">
|
<template slot-scope="scope">
|
<!-- <el-button type="text" size="small" @click="editLeaveInfo(scope.row)">编辑</el-button>-->
|
<span style="color: #a00515;cursor: pointer;" @click="editLeaveInfo(scope.row)">
|
<i class="el-icon-edit-outline" style="font-size: 1.9vh;margin-right: 5px;" />
|
编辑
|
</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
show-overflow-tooltip
|
prop="empNumb"
|
label="编号"
|
width="80"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="allDeptName"
|
label="部门(护卫点)"
|
width="300"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="80" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="empName"
|
label="姓名"
|
width="80"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="120" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="beginTime"
|
label="开始时间"
|
width="140"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="endTime" label="结束时间" width="110" />
|
<el-table-column show-overflow-tooltip prop="leaveDay" label="请假天数" width="80" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="leaveType"
|
label="请假类型"
|
width="80"
|
:formatter="leaveTypeFormat"
|
/>
|
<el-table-column show-overflow-tooltip prop="returnDate" label="返岗时间" width="110" />
|
<el-table-column show-overflow-tooltip prop="reporter" label="报备人" width="80" />
|
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
|
</el-table>
|
<el-table
|
v-show="showArr[6].show"
|
ref="resignTable"
|
:data="resignData"
|
:cell-style="{padding:'7px 0','text-align':'center'}"
|
:header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
|
stripe
|
border
|
style="width: 100%;"
|
@sort-change="changeSort"
|
>
|
<el-table-column type="selection" width="50" />
|
<el-table-column label="操作" width="80">
|
<template slot-scope="scope">
|
<!-- <el-button type="text" size="small" @click="editResign(scope.row)">编辑</el-button>-->
|
<span style="color: #a00515;cursor: pointer;" @click="editResign(scope.row)">
|
<i class="el-icon-edit-outline" style="font-size: 1.9vh;margin-right: 5px;" />
|
编辑
|
</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
show-overflow-tooltip
|
prop="empNumb"
|
label="编号"
|
width="80"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="allDeptName"
|
label="部门(护卫点)"
|
width="300"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="100" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="empName"
|
label="姓名"
|
width="100"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="160" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="applayDate"
|
label="辞职申请日期"
|
width="150"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="reason" label="辞职事由" width="150" />
|
<el-table-column show-overflow-tooltip prop="reporter" label="汇报人" width="100" />
|
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
|
</el-table>
|
<el-table
|
v-show="showArr[7].show"
|
ref="unemploymentTable"
|
:data="unemploymentData"
|
:cell-style="{padding:'7px 0','text-align':'center'}"
|
:header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
|
stripe
|
border
|
style="width: 100%;"
|
@sort-change="changeSort"
|
>
|
<el-table-column type="selection" width="50" />
|
<el-table-column label="操作" width="80">
|
<template slot-scope="scope">
|
<!-- <el-button type="text" size="small" @click="editUnemployment(scope.row)">编辑</el-button>-->
|
<span style="color: #a00515;cursor: pointer;" @click="editUnemployment(scope.row)">
|
<i class="el-icon-edit-outline" style="font-size: 1.9vh;margin-right: 5px;" />
|
编辑
|
</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
show-overflow-tooltip
|
prop="empNumb"
|
label="编号"
|
width="80"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="allDeptName"
|
label="部门(护卫点)"
|
width="300"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="100" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="empName"
|
label="姓名"
|
width="100"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="150" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="applayDate"
|
label="失业金申请日期"
|
width="150"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="applayReason" label="申报事由" />
|
<el-table-column show-overflow-tooltip prop="reporter" label="汇报人" width="100" />
|
<el-table-column show-overflow-tooltip prop="auditor" label="审核人" width="100" />
|
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
|
</el-table>
|
<el-table
|
v-show="showArr[8].show"
|
ref="insuranceTable"
|
:data="insuranceData"
|
:cell-style="{padding:'7px 0','text-align':'center'}"
|
:header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
|
stripe
|
border
|
style="width: 100%;"
|
@sort-change="changeSort"
|
>
|
<el-table-column type="selection" width="50" />
|
<el-table-column label="操作" width="80">
|
<template slot-scope="scope">
|
<!-- <el-button type="text" size="small" @click="editInsurance(scope.row)">编辑</el-button>-->
|
<span style="color: #a00515;cursor: pointer;" @click="editInsurance(scope.row)">
|
<i class="el-icon-edit-outline" style="font-size: 1.9vh;margin-right: 5px;" />
|
编辑
|
</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
show-overflow-tooltip
|
prop="empNumb"
|
label="编号"
|
width="80"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="allDeptName"
|
label="部门(护卫点)"
|
width="300"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="100" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="empName"
|
label="姓名"
|
width="100"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="120" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="applayDate"
|
label="社保申请日期"
|
width="140"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="proposer" label="申请人" width="80" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="insuranceGaers"
|
label="社保档位"
|
:formatter="insuranceGaersFormat"
|
width="80"
|
/>
|
<el-table-column prop="reportStatus " label="是否已报告" width="100" :formatter="reportStatusFormat" />
|
<el-table-column prop="applayStatus" label="状态" width="80" :formatter="applayStatusFormat" />
|
<el-table-column prop="auditor" label="审核人" width="80" />
|
<el-table-column prop="remark" label="备注" width="300" />
|
</el-table>
|
<el-table
|
v-show="showArr[9].show"
|
ref="accidentCasesTable"
|
:data="accidentCasesData"
|
:cell-style="{padding:'7px 0','text-align':'center'}"
|
:header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
|
stripe
|
border
|
style="width: 100%;"
|
@sort-change="changeSort"
|
>
|
<el-table-column type="selection" width="50" />
|
<el-table-column label="操作" width="80">
|
<template slot-scope="scope">
|
<!-- <el-button type="text" size="small" @click="editAccidentCases(scope.row)">编辑</el-button>-->
|
<span style="color: #a00515;cursor: pointer;" @click="editAccidentCases(scope.row)">
|
<i class="el-icon-edit-outline" style="font-size: 1.9vh;margin-right: 5px;" />
|
编辑
|
</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
show-overflow-tooltip
|
prop="empNumb"
|
label="编号"
|
width="90"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="allDeptName"
|
label="部门(护卫点)"
|
width="300"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="80" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="empName"
|
label="姓名"
|
width="80"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="120" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="injuredTime"
|
label="受伤日期"
|
width="120"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<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="80" />-->
|
<!-- <el-table-column show-overflow-tooltip prop="treatmentName" label="就诊科室" width="80" />-->
|
<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="80" />
|
<!-- <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="innsureFee" label="保险赔付费用" width="120" />
|
</el-table>
|
<el-table
|
v-show="showArr[10].show"
|
ref="occupationalTable"
|
:data="occupationalData"
|
:cell-style="{padding:'7px 0','text-align':'center'}"
|
:header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
|
stripe
|
border
|
style="width: 100%;"
|
@sort-change="changeSort"
|
>
|
<el-table-column type="selection" width="50" />
|
<el-table-column label="操作" width="80">
|
<template slot-scope="scope">
|
<!-- <el-button type="text" size="small" @click="editOccupational(scope.row)">编辑</el-button>-->
|
<span style="color: #a00515;cursor: pointer;" @click="editOccupational(scope.row)">
|
<i class="el-icon-edit-outline" style="font-size: 1.9vh;margin-right: 5px;" />
|
编辑
|
</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
show-overflow-tooltip
|
prop="empNumb"
|
label="编号"
|
width="90"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="allDeptName"
|
label="部门(护卫点)"
|
width="300"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="60" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="empName"
|
label="姓名"
|
width="80"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="120" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="injuredTime"
|
label="受伤日期"
|
width="130"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="injuredAddress" label="受伤地点" width="100" />
|
<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="就诊医院" />
|
<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="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="settleStatusName" label="是否结案" width="80" />
|
</el-table>
|
<el-table
|
v-show="showArr[11].show"
|
ref="laborTroubleTable"
|
:data="laborTroubleData"
|
:cell-style="{padding:'7px 0','text-align':'center'}"
|
:header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
|
stripe
|
border
|
style="width: 100%;"
|
@sort-change="changeSort"
|
>
|
<el-table-column type="selection" width="50" />
|
<el-table-column label="操作" width="80">
|
<template slot-scope="scope">
|
<!-- <el-button type="text" size="small" @click="editLaborTrouble(scope.row)">编辑</el-button>-->
|
<span style="color: #a00515;cursor: pointer;" @click="editLaborTrouble(scope.row)">
|
<i class="el-icon-edit-outline" style="font-size: 1.9vh;margin-right: 5px;" />
|
编辑
|
</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
show-overflow-tooltip
|
prop="empNumb"
|
label="编号"
|
width="80"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="allDeptName"
|
label="部门(护卫点)"
|
width="280"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="60" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="empName"
|
label="姓名"
|
width="80"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="120" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="arbitrationDate"
|
label="仲裁日期"
|
width="120"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="arbitrationType"
|
label="仲裁类型"
|
width="100"
|
:formatter="arbitrationTypeFormat"
|
/>
|
<el-table-column show-overflow-tooltip prop="arbitrationReason" label="仲裁事由" min-width="100" />
|
<el-table-column show-overflow-tooltip prop="reporter" label="报备人" width="70" />
|
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
|
<el-table-column show-overflow-tooltip prop="arbitrationPay" label="仲裁赔付(元)" width="120" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="arbitrationStatus"
|
label="状态"
|
width="50"
|
:formatter="arbitrationStatusFormat"
|
/>
|
<el-table-column show-overflow-tooltip prop="settleDate" label="案结日期" width="100" />
|
</el-table>
|
<el-table
|
v-show="showArr[12].show"
|
ref="badRecordTable"
|
:data="badRecordData"
|
:cell-style="{padding:'7px 0','text-align':'center'}"
|
:header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
|
stripe
|
border
|
style="width: 100%;"
|
@sort-change="changeSort"
|
>
|
<el-table-column type="selection" width="55" />
|
<el-table-column label="操作" width="100">
|
<template slot-scope="scope">
|
<!-- <el-button-->
|
<!-- type="text"-->
|
<!-- size="small"-->
|
<!-- @click="editBadRecord(scope.row)"-->
|
<!-- >编辑-->
|
<!-- </el-button>-->
|
<span style="color: #a00515;cursor: pointer;" @click="editBadRecord(scope.row)">
|
<i class="el-icon-edit-outline" style="font-size: 1.9vh;margin-right: 5px;" />
|
编辑
|
</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
show-overflow-tooltip
|
prop="empNumb"
|
label="编号"
|
width="100"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="allDeptName"
|
label="部门(护卫点)"
|
width="300"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="120" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="empName"
|
label="姓名"
|
width="120"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" min-width="120" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="badDate"
|
label="不良记录日期"
|
width="150"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="badContent" label="不良记录描述" min-width="120" />
|
<el-table-column show-overflow-tooltip prop="reporter" label="汇报人" width="120" />
|
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
|
</el-table>
|
<el-table
|
v-show="showArr[13].show"
|
ref="remarkInfoTable"
|
:data="remarkInfoData"
|
:cell-style="{padding:'7px 0','text-align':'center'}"
|
:header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}"
|
stripe
|
border
|
style="width: 100%;"
|
@sort-change="changeSort"
|
>
|
<el-table-column type="selection" width="50" />
|
<el-table-column label="操作" width="80">
|
<template slot-scope="scope">
|
<!-- <el-button type="text" size="small" @click="editRemarkInfo(scope.row)">编辑</el-button>-->
|
<span style="color: #a00515;cursor: pointer;" @click="editRemarkInfo(scope.row)">
|
<i class="el-icon-edit-outline" style="font-size: 1.9vh;margin-right: 5px;" />
|
编辑
|
</span>
|
</template>
|
</el-table-column>
|
<el-table-column
|
show-overflow-tooltip
|
prop="empNumb"
|
label="编号"
|
width="100"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column
|
show-overflow-tooltip
|
prop="allDeptName"
|
label="部门(护卫点)"
|
width="300"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="120" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="empName"
|
label="姓名"
|
width="120"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="180" />
|
<el-table-column
|
show-overflow-tooltip
|
prop="remarkDate"
|
label="备注日期"
|
width="150"
|
sortable="custom"
|
:sort-orders="['ascending', 'descending']"
|
/>
|
<el-table-column show-overflow-tooltip prop="remarkContent" label="备注信息" />
|
</el-table>
|
<pagination
|
v-show="total>0"
|
:total="total"
|
:page.sync="pagination.num"
|
:limit.sync="pagination.size"
|
@pagination="search"
|
/>
|
<el-col>
|
<div style="width: 250px;margin: 20px auto 0;">
|
<el-button class="nomalBtn" @click="deleteFrom()">取消</el-button>
|
<el-button class="commonBtn" @click="submitTo()">提交</el-button>
|
</div>
|
</el-col>
|
</el-main>
|
</el-container>
|
<el-dialog title="导入员工信息" :visible.sync="dialogShowDryg" width="50%">
|
<el-form :model="baseicInformationForm" label-position="right" label-width="120px">
|
<el-row>
|
<el-col span="24">
|
<el-form-item label="员工模板下载" prop="region">
|
<a :href="downloadEmpExcel" target="_blank" style="color: #3A8EE6;">员工信息.xlxs</a>
|
<span style="margin-left: 100px;">点击下载</span>
|
</el-form-item>
|
<el-form-item label="导入员工">
|
<el-upload
|
ref="upload"
|
class="upload-demo"
|
:action="uploadEmpExcel"
|
accept=".xls, .xlsx, .excel"
|
:headers="headers()"
|
:on-success="importHandleAvatarSuccess"
|
:on-error="importHandleAvatarError"
|
:auto-upload="false"
|
>
|
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
|
</el-upload>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button @click="showDryg(1)">取 消</el-button>
|
<el-button type="primary" @click="showDryg(2)">确 定</el-button>
|
</div>
|
</el-dialog>
|
<el-dialog title="基本信息" top="8vh" :visible.sync="dialogshowArr[0].show" width="60%" class="baseinfo">
|
<el-container style="height: 70vh;">
|
<el-aside width="200px">
|
<!-- 头像显示区域 -->
|
<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>
|
</el-aside>
|
<el-main>
|
<el-form
|
ref="empBaseInfoForm"
|
class="info-input-form"
|
:model="empBaseInfoForm"
|
:rules="rules"
|
label-position="right"
|
label-width="120px"
|
>
|
<el-row>
|
<el-col :span="11">
|
<el-form-item label="档案号" prop="archivesNumb">
|
<el-input v-model="empBaseInfoForm.archivesNumb" />
|
</el-form-item>
|
<el-form-item label="编号" prop="empNumb">
|
<el-input v-model="empBaseInfoForm.empNumb" />
|
</el-form-item>
|
<el-form-item label="身份证号码" prop="certificateNumb">
|
<el-input
|
v-model="empBaseInfoForm.certificateNumb"
|
@input="generateUserInfo(0,empBaseInfoForm.certificateNumb)"
|
/>
|
</el-form-item>
|
<el-form-item label="员工类别" prop="empType">
|
<el-select v-model="empBaseInfoForm.empType" placeholder="请选择员工类型">
|
<el-option
|
v-for="dict in empTypeOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="民族" prop="nation">
|
<el-select v-model="empBaseInfoForm.nation" filterable placeholder="请选择民族">
|
<el-option
|
v-for="dict in nationOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="婚姻状态" prop="marriage">
|
<el-select v-model="empBaseInfoForm.marriage" placeholder="请选择婚姻状态">
|
<el-option
|
v-for="dict in marriageOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="身高(cm)" prop="stature">
|
<el-input v-model="empBaseInfoForm.stature" />
|
</el-form-item>
|
<el-form-item label="政治面貌" prop="politics">
|
<el-select v-model="empBaseInfoForm.politics" placeholder="请选择政治面貌">
|
<el-option
|
v-for="dict in statusOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="学历" prop="education">
|
<el-select v-model="empBaseInfoForm.education" placeholder="请选择学历">
|
<el-option
|
v-for="dict in educationOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="籍贯" prop="nativePlaceName">
|
<el-autocomplete
|
v-model="empBaseInfoForm.nativePlaceName"
|
class="inline-input"
|
:fetch-suggestions="querySearch"
|
placeholder="请输入籍贯"
|
@select="placeNameSelect"
|
/>
|
</el-form-item>
|
<el-form-item label="现住址" prop="currentAddress">
|
<el-input v-model="empBaseInfoForm.currentAddress" />
|
</el-form-item>
|
<el-form-item label="电话号码" prop="telePhone">
|
<el-input v-model="empBaseInfoForm.telePhone" />
|
</el-form-item>
|
<el-form-item label="招聘介绍人" prop="introducer">
|
<el-input v-model="empBaseInfoForm.introducer" />
|
</el-form-item>
|
<el-form-item label="银行名称">
|
<el-input v-model="empBaseInfoForm.bankName" />
|
</el-form-item>
|
<el-form-item label="社保档位" prop="insuranceType">
|
<el-select v-model="empBaseInfoForm.insuranceType" placeholder="请选择社保档位">
|
<el-option
|
v-for="dict in insuranceTypeOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="家庭成员及关系1" prop="family">
|
<el-input v-model="empBaseInfoForm.family" />
|
</el-form-item>
|
<el-form-item label="家庭成员及关系2" prop="urgencyPhone">
|
<el-input v-model="empBaseInfoForm.urgencyPhone" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="2">
|
<p />
|
</el-col>
|
<el-col :span="11">
|
<el-form-item label="姓名" prop="empName">
|
<el-input v-model="empBaseInfoForm.empName" />
|
</el-form-item>
|
<el-form-item label="部门(护卫点)" required message="请选择部门(护卫点)" prop="allDeptName">
|
<treeselect
|
v-model="empBaseInfoForm.deptId"
|
:multiple="false"
|
:options="depts"
|
:clear-value-text="$t('common.clear')"
|
placeholder="请选择部门(护卫点)"
|
style="width:100%"
|
@select="DeptNameSelect"
|
/>
|
</el-form-item>
|
<el-form-item label="岗位" prop="jobName">
|
<el-autocomplete
|
v-model="empBaseInfoForm.jobName"
|
class="inline-input"
|
:fetch-suggestions="querySearchJob"
|
placeholder="请输入岗位"
|
@select="jobNameSelect"
|
/>
|
</el-form-item>
|
<el-form-item label="性别" prop="sex">
|
<el-select v-model="empBaseInfoForm.sex" placeholder="请选择性别">
|
<el-option
|
v-for="dict in sexOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="身份证有效期" prop="certificateValidity">
|
<el-date-picker
|
v-model="empBaseInfoForm.certificateValidity"
|
type="date"
|
value-format="yyyy-MM-dd"
|
placeholder="选择日期"
|
/>
|
</el-form-item>
|
<el-form-item label="年龄" prop="age">
|
<el-input v-model="empBaseInfoForm.age" />
|
</el-form-item>
|
<el-form-item label="出生日期" prop="birthdate">
|
<el-date-picker
|
v-model="empBaseInfoForm.birthdate"
|
type="date"
|
value-format="yyyy-MM-dd"
|
placeholder="选择日期"
|
/>
|
</el-form-item>
|
<el-form-item label="入职日期" prop="entryDate">
|
<el-date-picker
|
v-model="empBaseInfoForm.entryDate"
|
type="date"
|
value-format="yyyy-MM-dd"
|
placeholder="选择日期"
|
@input="calculateSeniority"
|
/>
|
</el-form-item>
|
<el-form-item label="入司工龄" prop="seniority">
|
<el-input v-model="empBaseInfoForm.seniority" />
|
</el-form-item>
|
<el-form-item label="户籍地址" prop="censusAddress">
|
<el-input v-model="empBaseInfoForm.censusAddress" />
|
</el-form-item>
|
<el-form-item label="保安员证号" prop="guardNumb">
|
<el-input v-model="empBaseInfoForm.guardNumb" />
|
</el-form-item>
|
<el-form-item label="保安员回执" prop="returnReceipt">
|
<el-input v-model="empBaseInfoForm.returnReceipt" />
|
</el-form-item>
|
<el-form-item label="档案情况" prop="archivesStatus">
|
<el-select v-model="empBaseInfoForm.archivesStatus" placeholder="请选择档案情况">
|
<el-option
|
v-for="dict in archivesStatusOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="银行账号">
|
<el-input v-model="empBaseInfoForm.bankNumb" />
|
</el-form-item>
|
<el-form-item label="社保电脑号" prop="socialNumb">
|
<el-input v-model="empBaseInfoForm.socialNumb" />
|
</el-form-item>
|
<el-form-item label="员工手册" prop="handbookStatus">
|
<el-select v-model="empBaseInfoForm.handbookStatus" placeholder="请选择员工手册">
|
<el-option
|
v-for="dict in handbookStatusOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="工作证" prop="empCardStatus">
|
<el-select v-model="empBaseInfoForm.empCardStatus" placeholder="请选择工作证">
|
<el-option
|
v-for="dict in empCardStatusOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col>
|
<el-form-item label="相关证件" prop="certificateList">
|
<el-select v-model="empBaseInfoForm.certificateList" multiple placeholder="请选择相关证件">
|
<el-option
|
v-for="dict in certificateListOptions"
|
:key="dict.dicItemCode"
|
:label="dict.dicItemName"
|
:value="dict.dicItemCode"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
</el-main>
|
</el-container>
|
|
<div slot="footer" class="dialog-footer">
|
<el-button type="primary" @click="putEmpBase('empBaseInfoForm')">保 存</el-button>
|
<el-button v-if="isAdd" type="primary" @click="putEmpBaseContinue('empBaseInfoForm')">保存并继续新增</el-button>
|
<el-button @click="dialogIsShow()">取 消</el-button>
|
</div>
|
</el-dialog>
|
<work-experience-edit
|
:visible.sync="dialogshowArr[1].show"
|
:is-add="isAdd"
|
:edit-data="workExperienceEditData"
|
:sex-options="sexOptions"
|
:show-continue-button="true"
|
:emp-info-disabled="false"
|
@select-employee="showXzyg"
|
@success="handleWorkExperienceSuccess"
|
@continue="handleWorkExperienceContinue"
|
/>
|
<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"
|
:show-continue-button="true"
|
:emp-info-disabled="false"
|
@select-employee="showXzyg"
|
@success="handlePhysicalExamSuccess"
|
@continue="handlePhysicalExamContinue"
|
/>
|
<contract-info-edit
|
:visible.sync="dialogshowArr[3].show"
|
:is-add="isAdd"
|
:edit-data="contractInfoEditData"
|
:sex-options="sexOptions"
|
:contract-status-options="contractStatusOptions"
|
:show-continue-button="true"
|
:emp-info-disabled="false"
|
@select-employee="showXzyg"
|
@success="handleContractInfoSuccess"
|
@continue="handleContractInfoContinue"
|
/>
|
<dimission-attend-edit
|
:visible.sync="dialogshowArr[4].show"
|
:is-add="isAdd"
|
:edit-data="dimissionAttendEditData"
|
:sex-options="sexOptions"
|
:show-continue-button="true"
|
:emp-info-disabled="false"
|
@select-employee="showXzyg"
|
@success="handleDimissionAttendSuccess"
|
@continue="handleDimissionAttendContinue"
|
/>
|
<leave-info-edit
|
:visible.sync="dialogshowArr[5].show"
|
:is-add="isAdd"
|
:edit-data="leaveInfoEditData"
|
:sex-options="sexOptions"
|
:leave-type-options="leaveTypeOptions"
|
:show-continue-button="true"
|
:emp-info-disabled="false"
|
@select-employee="showXzyg"
|
@success="handleLeaveInfoSuccess"
|
@continue="handleLeaveInfoContinue"
|
/>
|
<resign-edit
|
:visible.sync="dialogshowArr[6].show"
|
:is-add="isAdd"
|
:edit-data="resignEditData"
|
:sex-options="sexOptions"
|
:show-continue-button="true"
|
:emp-info-disabled="false"
|
@select-employee="showXzyg"
|
@success="handleResignSuccess"
|
@continue="handleResignContinue"
|
/>
|
<unemployment-insurance-edit
|
:visible.sync="dialogshowArr[7].show"
|
:is-add="isAdd"
|
:edit-data="unemploymentEditData"
|
:sex-options="sexOptions"
|
:show-continue-button="true"
|
:emp-info-disabled="false"
|
@select-employee="showXzyg"
|
@success="handleUnemploymentSuccess"
|
@continue="handleUnemploymentContinue"
|
/>
|
<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"
|
:show-continue-button="true"
|
:emp-info-disabled="false"
|
@select-employee="showXzyg"
|
@success="handleInsuranceSuccess"
|
@continue="handleInsuranceContinue"
|
/>
|
<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"
|
:show-continue-button="true"
|
:emp-info-disabled="false"
|
@select-employee="showXzyg"
|
@success="handleAccidentCasesSuccess"
|
@continue="handleAccidentCasesContinue"
|
/>
|
<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"
|
:show-continue-button="true"
|
:emp-info-disabled="false"
|
@select-employee="showXzyg"
|
@success="handleOccupationalSuccess"
|
@continue="handleOccupationalContinue"
|
/>
|
<arbitration-edit
|
:visible.sync="dialogshowArr[11].show"
|
:is-add="isAdd"
|
:edit-data="arbitrationEditData"
|
:sex-options="sexOptions"
|
:arbitration-type-options="arbitrationTypeOptions"
|
:settle-status-options="settleStatusOptions"
|
:show-continue-button="true"
|
:emp-info-disabled="false"
|
@select-employee="showXzyg"
|
@success="handleLaborTroubleSuccess"
|
@continue="handleLaborTroubleContinue"
|
/>
|
<bad-record-edit
|
:visible.sync="dialogshowArr[12].show"
|
:is-add="isAdd"
|
:edit-data="badRecordEditData"
|
:sex-options="sexOptions"
|
:show-continue-button="true"
|
:emp-info-disabled="false"
|
@select-employee="showXzyg"
|
@success="handleBadRecordSuccess"
|
@continue="handleBadRecordContinue"
|
/>
|
<remark-edit
|
:visible.sync="dialogshowArr[13].show"
|
:is-add="isAdd"
|
:edit-data="remarkEditData"
|
:sex-options="sexOptions"
|
:show-continue-button="true"
|
:emp-info-disabled="false"
|
@select-employee="showXzyg"
|
@success="handleRemarkInfoSuccess"
|
@continue="handleRemarkInfoContinue"
|
/>
|
|
<el-dialog title="选择员工" :visible.sync="dialogShowXzyg" width="60%">
|
<Selectuser @selectedUser="selectedUser" @cancleChooseUser="cancleChooseUser" />
|
</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, toCardGetUserInfo, dateDifference } from '@/utils/myUtil'
|
import Treeselect from '@riophae/vue-treeselect'
|
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
import Pagination from '@/components/Pagination'
|
import { pages } from '@/settings'
|
import { getToken } from '@/utils/auth'
|
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 {
|
components: { Treeselect, Pagination, WorkExperienceEdit, PhysicalExamEdit, ContractInfoEdit, DimissionAttendEdit, LeaveInfoEdit, ResignEdit, UnemploymentInsuranceEdit, SocialSecurityEdit, AccidentInsuranceEdit, WorkInjuryEdit, ArbitrationEdit, BadRecordEdit, RemarkEdit },
|
mixins: [dictMixin],
|
data() {
|
return {
|
downloadEmpExcel: pages.downloadEmpExcel,
|
uploadEmpExcel: pages.uploadEmpExcel,
|
defaultImg: require('../../assets/avatar/20180414165936.jpg'),
|
baseicInformationForm: {},
|
dialogShowDryg: false,
|
empBaseInfoImageUrl: '',
|
// 上传方式选择弹窗
|
uploadChoiceDialogVisible: false,
|
// 摄像头相关
|
cameraDialogVisible: false,
|
capturedImage: '',
|
stream: null,
|
total: 0, // 总数量
|
queryParams: {}, // 查询参数
|
sort: {}, // 排序
|
pagination: { // 分页参数
|
size: 15,
|
num: 1
|
},
|
tableUrl: '',
|
tableDataName: '',
|
inputForName: '',
|
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: {
|
empName: [{ required: true, message: '请选择员工' }],
|
workUnit: [{ required: true, message: '请输入工作单位', trigger: 'blur' }, {
|
max: 128,
|
message: '长度不超过128个字符',
|
trigger: 'blur'
|
}],
|
beginDate: [{ required: true, trigger: 'blur', validator: this.startDate }],
|
endDate: [{ required: true, trigger: 'blur', validator: this.endDate }],
|
jobContent: [{ max: 512, message: '长度不超过512个字符', trigger: 'blur' }]
|
},
|
physicalExamRules: {
|
empName: [{ required: true, message: '请选择员工' }],
|
physicalExamDate: [{ required: true, message: '请选择体检日期' }],
|
hospital: [{ required: true, message: '请输入体检医院' }, {
|
max: 64,
|
message: '长度不超过64个字符'
|
}],
|
physicalExamType: [{ required: true, message: '请选择体检类型' }],
|
bloodPressure: [{ required: true, message: '请输入血压' }, {
|
max: 40,
|
message: '长度不超过40个字符'
|
}],
|
transaminase: [{ required: true, message: '请输入转氨酶' }, {
|
max: 40,
|
message: '长度不超过40个字符'
|
}],
|
ecg: [{ required: true, message: '请选择心电图' }],
|
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: {
|
empName: [{ required: true, message: '请选择员工', trigger: 'change' }],
|
signingDate: [{ required: true, 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, validator: this.endDate }],
|
remark: [{ max: 512, message: '长度不超过512个字符', trigger: 'blur' }]
|
},
|
dimissionAttendRules: {
|
empName: [{ required: true, message: '请选择员工', trigger: 'change' }],
|
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: {
|
empName: [{ required: true, message: '请选择员工', trigger: 'change' }],
|
beginTime: [{ required: true, validator: this.startDate }],
|
leaveType: [{ required: true, message: '请选择请假类型', trigger: 'change' }],
|
endTime: [{ required: true, validator: this.endDate }],
|
returnDate: [{ required: true, message: '请选择返岗时间', trigger: 'change' }],
|
reporter: [{ required: true, message: '请输入报备人', trigger: 'blur' }],
|
remark: [{ max: 512, message: '长度不超过512个字符', trigger: 'blur' }]
|
},
|
resignRules: {
|
empName: [{ required: true, message: '请选择员工', trigger: 'change' }],
|
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: {
|
empName: [{ required: true, message: '请选择员工', trigger: 'change' }],
|
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: {
|
empName: [{ required: true, message: '请选择员工', trigger: 'change' }],
|
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: {
|
empName: [{ required: true, message: '请选择员工', trigger: 'change' }],
|
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: {
|
empName: [{ required: true, message: '请选择员工', trigger: 'change' }],
|
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: {
|
empName: [{ required: true, message: '请选择员工', trigger: 'change' }],
|
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: {
|
empName: [{ required: true, message: '请选择员工', trigger: 'change' }],
|
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: {
|
empName: [{ required: true, message: '请选择员工', trigger: 'change' }],
|
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' }],
|
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' }],
|
formLabelWidth: '120px',
|
thisShowIndex: 0,
|
dialogShowXzyg: false,
|
workExperienceEditData: {},
|
physicalExamEditData: {},
|
contractInfoEditData: {},
|
dimissionAttendEditData: {},
|
leaveInfoEditData: {},
|
resignEditData: {},
|
unemploymentEditData: {},
|
socialSecurityEditData: {},
|
accidentInsuranceEditData: {},
|
workInjuryEditData: {},
|
arbitrationEditData: {},
|
badRecordEditData: {},
|
remarkEditData: {},
|
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
|
}
|
],
|
// eslint-disable-next-line no-undef
|
showArr: [
|
{
|
show: true
|
},
|
{
|
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
|
}
|
],
|
isAdd: false,
|
depts: [],
|
deptTree: [],
|
physicalExamData: [],
|
workExperienceData: [],
|
basicInformationData: [],
|
contractInfoData: [],
|
attendanceData: [],
|
leaveInfoData: [],
|
resignData: [],
|
unemploymentData: [],
|
insuranceData: [],
|
remarkInfoData: [],
|
laborTroubleData: [],
|
occupationalData: [],
|
badRecordData: [],
|
accidentCasesData: [],
|
dimissionAttendData: [],
|
remarkInfoForm: {
|
remarkId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
sexName: '',
|
certificateNumb: '',
|
JobId: '',
|
deptId: '',
|
deptName: '',
|
allDeptName: '',
|
jobName: '',
|
remarkContent: '',
|
remarkDate: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
delFlag: '',
|
empStatus: 0,
|
version: ''
|
},
|
laborTroubleForm: {
|
arbitrationId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
sexName: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
allDeptName: '',
|
JobId: '',
|
jobName: '',
|
arbitrationDate: '',
|
arbitrationType: '',
|
arbitrationReason: '',
|
reporter: '',
|
arbitrationPay: '',
|
arbitrationStatus: '',
|
settleDate: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
delFlag: '',
|
version: '',
|
empStatus: 0,
|
remark: ''
|
},
|
occupationalForm: {
|
occupationalId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
sexName: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
allDeptName: '',
|
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: '',
|
delFlag: '',
|
version: '',
|
empStatus: 0,
|
remark: ''
|
},
|
accidentCasesForm: {
|
accidentId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
sexName: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
allDeptName: '',
|
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: '',
|
delFlag: '2',
|
empStatus: 0,
|
version: ''
|
},
|
insuranceForm: {
|
insuranceId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
sexName: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
allDeptName: '',
|
JobId: '',
|
jobName: '',
|
applayDate: '',
|
proposer: '',
|
insuranceGaers: '',
|
reportStatus: '',
|
applayStatus: '',
|
auditor: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
delFlag: '',
|
version: '',
|
empStatus: 0,
|
remark: ''
|
},
|
unemploymentForm: {
|
unemploymentId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
sexName: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
allDeptName: '',
|
JobId: '',
|
jobName: '',
|
applayDate: '',
|
applayReason: '',
|
reporter: '',
|
auditor: '',
|
remark: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
delFlag: '',
|
empStatus: 0,
|
version: ''
|
},
|
resignForm: {
|
resignId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
sexName: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
allDeptName: '',
|
JobId: '',
|
jobName: '',
|
applayDate: '',
|
reporter: '',
|
reason: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
delFlag: '',
|
version: '',
|
empStatus: 0,
|
remark: ''
|
},
|
leaveInfoForm: {
|
leaveId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
sexName: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
allDeptName: '',
|
JobId: '',
|
jobName: '',
|
beginTime: '',
|
endTime: '',
|
leaveType: '',
|
leaveDay: '',
|
reporter: '',
|
returnDate: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
delFlag: '',
|
version: '',
|
empStatus: 0,
|
remark: ''
|
},
|
contractInfoForm: {
|
contractId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
certificateNumb: '',
|
sex: '',
|
sexName: '',
|
deptId: '',
|
deptName: '',
|
allDeptName: '',
|
JobId: '',
|
jobName: '',
|
beginDate: '',
|
endDate: '',
|
contractStatus: '',
|
contractPeriod: '',
|
transactor: '',
|
signingDate: '',
|
remark: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
delFlag: '',
|
empStatus: 0,
|
version: ''
|
},
|
dimissionAttendForm: {
|
dimissionAttendId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
sex: '',
|
sexName: '',
|
deptId: '',
|
deptName: '',
|
allDeptName: '',
|
JobId: '',
|
jobName: '',
|
certificateNumb: '',
|
attendMonth: '',
|
attendDays: '',
|
overtimeHour: '',
|
overtimeDay: '',
|
leaveDay: '',
|
deduct: '',
|
absenteeism: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
delFlag: '',
|
version: '',
|
empStatus: 0,
|
remark: ''
|
},
|
physicalExamForm: {
|
physicalExamId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
certificateNumb: '',
|
sex: '',
|
sexName: '',
|
deptId: '',
|
deptName: '',
|
allDeptName: '',
|
JobId: '',
|
jobName: '',
|
hospital: '',
|
physicalExamDate: '',
|
physicalExamType: '',
|
bloodPressure: '',
|
transaminase: '',
|
ecg: '',
|
conclusion: '',
|
reviewRecord: '',
|
remark: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
delFlag: '',
|
empStatus: 0,
|
version: ''
|
},
|
workExperienceForm: {
|
workExperienceId: '',
|
empId: '',
|
empNumb: '',
|
empName: '',
|
certificateNumb: '',
|
sex: '',
|
sexName: '',
|
deptId: '',
|
deptName: '',
|
allDeptName: '',
|
JobId: '',
|
jobName: '',
|
workUnit: '',
|
beginDate: '',
|
endDate: '',
|
jobContent: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
delFlag: '',
|
empStatus: 0,
|
version: ''
|
},
|
empBaseInfoForm: {
|
imagePath: '',
|
empId: '',
|
customerId: '',
|
archivesNumb: '',
|
deptId: null,
|
deptName: '',
|
allDeptName: '',
|
empNumb: '',
|
empName: '',
|
sex: '1',
|
sexName: '男',
|
JobId: '',
|
jobName: '',
|
empType: '01',
|
certificateType: '',
|
certificateNumb: '',
|
nation: '01',
|
certificateValidity: '',
|
marriage: '1',
|
age: '',
|
stature: '',
|
birthdate: '',
|
politics: '13',
|
entryDate: '',
|
education: '61',
|
seniority: '',
|
nativePlace: '',
|
nativePlaceName: '',
|
censusAddress: '',
|
currentAddress: '',
|
guardNumb: '',
|
telePhone: '',
|
returnReceipt: '',
|
introducer: '',
|
archivesStatus: '0',
|
bankName: '',
|
bankNumb: '',
|
InsuranceType: '',
|
socialNumb: '',
|
family: '',
|
handbookStatus: '0',
|
urgencyPhone: '',
|
empCardStatus: '0',
|
certificateList: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
delFlag: '',
|
empStatus: 0,
|
version: ''
|
},
|
badRecordForm: {
|
badId: '',
|
empId: '',
|
empName: '',
|
empNumb: '',
|
sex: '',
|
sexName: '',
|
certificateNumb: '',
|
deptId: '',
|
deptName: '',
|
allDeptName: '',
|
JobId: '',
|
jobName: '',
|
badDate: '',
|
reporter: '',
|
badContent: '',
|
createTime: '',
|
creator: '',
|
modifyTime: '',
|
modifier: '',
|
delFlag: '',
|
version: '',
|
empStatus: 0,
|
remark: ''
|
},
|
permissions: {}
|
}
|
},
|
computed: {
|
// 字典选项计算属性
|
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') },
|
ecgOptions() { return this.getDictOptions('ECG') },
|
certificateListOptions() { return this.getDictOptions('certificateList') },
|
physicalExamTypeOptions() { return this.getDictOptions('PHYSICALEXAMTYPE') },
|
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.permissions = JSON.parse(localStorage.getItem('PERMISSIONS'))
|
// 字典数据已在登录时预加载,直接从 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'])
|
this.initDept()
|
this.thisShowIndex = 1
|
this.isShow(false, 0)
|
this.initJob()
|
},
|
methods: {
|
timelineShow(name) {
|
for (const v of this.permissions) {
|
if (v === name) {
|
return true
|
}
|
}
|
return false
|
},
|
importHandleAvatarError() {
|
this.$notify.error({
|
title: '错误',
|
message: '导入失败'
|
})
|
},
|
importHandleAvatarSuccess(res, file) {
|
if (res.data === null || res.data.length === 0) {
|
this.$notify({
|
title: '成功',
|
message: '导入成功!',
|
type: 'success'
|
})
|
} else {
|
this.$alert(JSON.stringify(res.data), '导入失败原因', {
|
confirmButtonText: '确定'
|
})
|
}
|
},
|
headers() {
|
const token = getToken()
|
if (token) {
|
return {
|
Authorization: 'bearer ' + token
|
}
|
} else {
|
return null
|
}
|
},
|
showDryg(operate) {
|
switch (operate) {
|
case 0:
|
this.dialogShowDryg = true
|
break
|
case 1:
|
this.dialogShowDryg = false
|
break
|
case 2:
|
this.$refs.upload.submit()
|
break
|
}
|
},
|
|
// 获取图片的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()
|
},
|
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
|
}
|
},
|
// 图片预览
|
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 === 'PNG') {
|
this.preView(this.empBaseInfoImageUrl)
|
} else {
|
this.$message.error('只能上传jpg/png文件,且不超过4MB,请重新上传!')
|
}
|
} else {
|
this.$message.error('图片大小超过4M,请重新上传')
|
}
|
},
|
// 打开上传方式选择弹窗
|
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
|
}
|
},
|
// 翻页插件翻页方法
|
search() {
|
this.fetch({
|
...this.queryParams,
|
...this.sort
|
})
|
},
|
// 公用查询
|
fetch(params = {}) {
|
params.pageSize = this.pagination.size
|
params.pageNum = this.pagination.num
|
this.$get(this.tableUrl, {
|
...params
|
}).then((r) => {
|
const data = r.data.data
|
this.total = data.total
|
this[this.tableDataName] = data.rows
|
})
|
},
|
dialogIsShow(val) {
|
this.isAdd = val === '0'
|
switch (this.thisShowIndex) {
|
case 0:
|
this.cleanEmpBase()
|
break
|
case 1:
|
this.workExperienceEditData = {}
|
break
|
case 2:
|
this.physicalExamEditData = {}
|
break
|
case 3:
|
this.contractInfoEditData = {}
|
break
|
case 4:
|
this.dimissionAttendEditData = {}
|
break
|
case 5:
|
this.leaveInfoEditData = {}
|
break
|
case 6:
|
this.resignEditData = {}
|
break
|
case 7:
|
this.unemploymentEditData = {}
|
break
|
case 8:
|
this.socialSecurityEditData = {}
|
break
|
case 9:
|
this.accidentInsuranceEditData = {}
|
break
|
case 10:
|
this.workInjuryEditData = {}
|
break
|
case 11:
|
this.arbitrationEditData = {}
|
break
|
case 12:
|
this.badRecordEditData = {}
|
break
|
case 13:
|
this.remarkEditData = {}
|
break
|
}
|
this.dialogshowArr[this.thisShowIndex].show = !this.dialogshowArr[this.thisShowIndex]
|
.show
|
},
|
isShow(tableShow, index) {
|
if (index === this.thisShowIndex) {
|
return
|
}
|
if (tableShow) {
|
this.showArr[index].show = false
|
} else {
|
this.showArr[index].show = true
|
this.showArr[this.thisShowIndex].show = false
|
}
|
this.thisShowIndex = index
|
switch (this.thisShowIndex) {
|
case 0:
|
this.tableUrl = 'hr/empBaseInfo/list'
|
this.tableDataName = 'basicInformationData'
|
this.queryParams.delFlag = 2
|
this.search()
|
break
|
case 1:
|
this.tableUrl = 'hr/empWorkExperience/list'
|
this.tableDataName = 'workExperienceData'
|
this.queryParams.delFlag = 2
|
this.search()
|
break
|
case 2:
|
this.tableUrl = 'hr/empPhysicalExam/list'
|
this.tableDataName = 'physicalExamData'
|
this.queryParams.delFlag = 2
|
this.search()
|
break
|
case 3:
|
this.tableUrl = 'hr/empContractInfo/list'
|
this.tableDataName = 'contractInfoData'
|
this.queryParams.delFlag = 2
|
this.search()
|
break
|
case 4:
|
this.tableUrl = 'hr/empDimissionAttend/list'
|
this.tableDataName = 'dimissionAttendData'
|
this.queryParams.delFlag = 2
|
this.search()
|
break
|
case 5:
|
this.tableUrl = 'hr/empLeaveInfo/list'
|
this.tableDataName = 'leaveInfoData'
|
this.queryParams.delFlag = 2
|
this.search()
|
break
|
case 6:
|
this.tableUrl = 'hr/empResign/list'
|
this.tableDataName = 'resignData'
|
this.queryParams.delFlag = 2
|
this.search()
|
break
|
case 7:
|
this.tableUrl = 'hr/empUnemployment/list'
|
this.tableDataName = 'unemploymentData'
|
this.queryParams.delFlag = 2
|
this.search()
|
break
|
case 8:
|
this.tableUrl = 'hr/empInsurance/list'
|
this.tableDataName = 'insuranceData'
|
this.queryParams.delFlag = 2
|
this.search()
|
break
|
case 9:
|
this.tableUrl = 'hr/empAccidentCases/list'
|
this.tableDataName = 'accidentCasesData'
|
this.queryParams.delFlag = 2
|
this.search()
|
break
|
case 10:
|
this.tableUrl = 'hr/empOccupational/list'
|
this.tableDataName = 'occupationalData'
|
this.queryParams.delFlag = 2
|
this.search()
|
break
|
case 11:
|
this.tableUrl = 'hr/empLaborTrouble/list'
|
this.tableDataName = 'laborTroubleData'
|
this.queryParams.delFlag = 2
|
this.search()
|
break
|
case 12:
|
this.tableUrl = 'hr/empBadRecord/list'
|
this.tableDataName = 'badRecordData'
|
this.queryParams.delFlag = 2
|
this.search()
|
break
|
case 13:
|
this.tableUrl = 'hr/empRemarkInfo/list'
|
this.tableDataName = 'remarkInfoData'
|
this.queryParams.delFlag = 2
|
this.search()
|
break
|
}
|
},
|
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'
|
})
|
})
|
},
|
resetDeptTree() {
|
this.$refs.deptTree.setCheckedKeys([])
|
},
|
initJob() {
|
this.$get('system/position/dicJob').then((r) => {
|
this.restaurJob = r.data.data
|
})
|
},
|
butDelete() {
|
let selected
|
switch (this.thisShowIndex) {
|
case 0:
|
selected = this.$refs.empBaseInfoTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.empId)
|
})
|
this.$delete(`hr/empBaseInfo/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.deleteSuccess'),
|
type: 'success'
|
})
|
this.selectEmpBase()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要删除的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 1:
|
selected = this.$refs.workExperienceTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.workExperienceId)
|
})
|
this.$delete(`hr/empWorkExperience/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.deleteSuccess'),
|
type: 'success'
|
})
|
this.selectWorkExperience()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要删除的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 2:
|
selected = this.$refs.physicalExamTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.physicalExamId)
|
})
|
this.$delete(`hr/empPhysicalExam/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.deleteSuccess'),
|
type: 'success'
|
})
|
this.selectPhysicalExam()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要删除的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 3:
|
selected = this.$refs.contractInfoTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.contractId)
|
})
|
this.$delete(`hr/empContractInfo/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.deleteSuccess'),
|
type: 'success'
|
})
|
this.selectContractInfo()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要删除的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 4:
|
selected = this.$refs.dimissionAttendTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.dimissionAttendId)
|
})
|
this.$delete(`hr/empDimissionAttend/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.deleteSuccess'),
|
type: 'success'
|
})
|
this.selectDimissionAttend()
|
})
|
}
|
break
|
case 5:
|
selected = this.$refs.leaveInfoTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.leaveId)
|
})
|
this.$delete(`hr/empLeaveInfo/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.deleteSuccess'),
|
type: 'success'
|
})
|
this.selectLeaveInfo()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要删除的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 6:
|
selected = this.$refs.resignTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.resignId)
|
})
|
this.$delete(`hr/empResign/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.deleteSuccess'),
|
type: 'success'
|
})
|
this.selectResign()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要删除的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 7:
|
selected = this.$refs.unemploymentTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.unemploymentId)
|
})
|
this.$delete(`hr/empUnemployment/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.deleteSuccess'),
|
type: 'success'
|
})
|
this.selectUnemployment()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要删除的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 8:
|
selected = this.$refs.insuranceTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.insuranceId)
|
})
|
this.$delete(`hr/empInsurance/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.deleteSuccess'),
|
type: 'success'
|
})
|
this.selectInsurance()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要删除的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 9:
|
selected = this.$refs.accidentCasesTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.accidentId)
|
})
|
this.$delete(`hr/empAccidentCases/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.deleteSuccess'),
|
type: 'success'
|
})
|
this.selectAccidentCases()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要删除的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 10:
|
selected = this.$refs.occupationalTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.occupationalId)
|
})
|
this.$delete(`hr/empOccupational/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.deleteSuccess'),
|
type: 'success'
|
})
|
this.selectOccupational()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要删除的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 11:
|
selected = this.$refs.laborTroubleTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.arbitrationId)
|
})
|
this.$delete(`hr/empLaborTrouble/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.deleteSuccess'),
|
type: 'success'
|
})
|
this.selectLaborTrouble()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要删除的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 12:
|
selected = this.$refs.badRecordTable.selection
|
if (selected.length > 0) {
|
const badIds = []
|
selected.forEach((j) => {
|
badIds.push(j.badId)
|
})
|
this.$delete(`hr/empBadRecord/` + badIds).then(() => {
|
this.$message({
|
message: this.$t('tips.deleteSuccess'),
|
type: 'success'
|
})
|
this.selectBadRecord()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要删除的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 13:
|
selected = this.$refs.remarkInfoTable.selection
|
if (selected.length > 0) {
|
const badIds = []
|
selected.forEach((j) => {
|
badIds.push(j.remarkId)
|
})
|
this.$delete(`hr/empRemarkInfo/` + badIds).then(() => {
|
this.$message({
|
message: this.$t('tips.deleteSuccess'),
|
type: 'success'
|
})
|
this.selectBadRecord()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要删除的记录',
|
type: 'error'
|
})
|
}
|
break
|
}
|
},
|
typeFormat(row, column) {
|
return this.selectDictLabel(this.physicalExamTypeOptions, row.physicalExamType)
|
},
|
empTypeFormat(row, column) {
|
return this.selectDictLabel(this.empTypeOptions, row.empType)
|
},
|
sexFormat(row, column) {
|
return this.selectDictLabel(this.sexOptions, row.sex)
|
},
|
nationFormat(row, column) {
|
return this.selectDictLabel(this.nationOptions, row.nation)
|
},
|
marriageFormat(row, column) {
|
return this.selectDictLabel(this.marriageOptions, row.marriage)
|
},
|
politicsFormat(row, column) {
|
return this.selectDictLabel(this.statusOptions, row.politics)
|
},
|
educationFormat(row, column) {
|
return this.selectDictLabel(this.educationOptions, row.education)
|
},
|
insuranceTypeFormat(row, column) {
|
return this.selectDictLabel(this.insuranceTypeOptions, row.insuranceType)
|
},
|
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)
|
},
|
startDate(rule, value, callback) {
|
if (!value) {
|
callback(new Error('开始日期不能为空!'))
|
} else {
|
switch (this.thisShowIndex) {
|
case 1:
|
// 如果结束日期没选,cb
|
if (!this.workExperienceForm.endDate) {
|
callback()
|
} else {
|
// 结束日期有,进行判断
|
if (this.compareDate(value, this.workExperienceForm.endDate)) {
|
// 如果起始在结束之前
|
callback()
|
} else {
|
callback(new Error('开始日期不能在结束日期之后,请重新选择'))
|
}
|
}
|
break
|
case 3:
|
// 如果结束日期没选,cb
|
if (!this.contractInfoForm.endDate) {
|
callback()
|
} else {
|
// 结束日期有,进行判断
|
if (this.compareDate(value, this.contractInfoForm.endDate)) {
|
// 如果起始在结束之前
|
callback()
|
} else {
|
callback(new Error('开始日期不能在结束日期之后,请重新选择'))
|
}
|
}
|
break
|
case 5:
|
// 如果结束日期没选,cb
|
if (!this.leaveInfoForm.endTime) {
|
callback()
|
} else {
|
// 结束日期有,进行判断
|
if (this.compareDate(value, this.leaveInfoForm.endTime)) {
|
// 如果起始在结束之前
|
callback()
|
} else {
|
callback(new Error('开始时间不能在结束时间之后,请重新选择'))
|
}
|
}
|
break
|
}
|
}
|
},
|
endDate(rule, value, callback) {
|
if (!value) {
|
callback(new Error('结束日期不能为空!'))
|
} else {
|
switch (this.thisShowIndex) {
|
case 1:
|
// 如果起始日期没选,cb
|
if (!this.workExperienceForm.beginDate) {
|
callback()
|
} else {
|
// 起始日期有,进行判断
|
if (this.compareDate(this.workExperienceForm.beginDate, value)) {
|
// 如果起始在结束之前
|
this.leaveInfoForm.leaveDay = dateDifference(this.leaveInfoForm.beginTime, this.leaveInfoForm.endTime, 'd')
|
callback()
|
} else {
|
callback(new Error('结束日期不能在开始始日期之前,请重新选择'))
|
}
|
}
|
break
|
case 3:
|
// 如果起始日期没选,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('结束日期不能在开始始日期之前,请重新选择'))
|
}
|
}
|
break
|
case 5:
|
// 如果起始日期没选,cb
|
if (!this.leaveInfoForm.beginTime) {
|
callback()
|
} else {
|
// 起始日期有,进行判断
|
if (this.compareDate(this.leaveInfoForm.beginTime, value)) {
|
// 如果起始在结束之前
|
// this.leaveInfoForm.leaveDay = dateDifference(this.leaveInfoForm.beginTime, this.leaveInfoForm.endTime, 'd')
|
callback()
|
} else {
|
callback(new Error('结束日期不能在开始始日期之前,请重新选择'))
|
}
|
}
|
break
|
}
|
}
|
},
|
compareDate(start, end) {
|
return new Date(end).getTime() > new Date(start).getTime()
|
},
|
deleteFrom() {
|
this.butDelete()
|
},
|
submitTo() {
|
let selected
|
switch (this.thisShowIndex) {
|
case 0:
|
selected = this.$refs.empBaseInfoTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.empId)
|
})
|
this.$delete(`hr/empBaseInfo/toNormal/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.submitSuccess'),
|
type: 'success'
|
})
|
this.tableUrl = 'hr/empBaseInfo/list'
|
this.tableDataName = 'basicInformationData'
|
this.queryParams.delFlag = 2
|
this.search()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要提交的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 1:
|
selected = this.$refs.workExperienceTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.workExperienceId)
|
})
|
this.$delete(`hr/empWorkExperience/toNormal/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.submitSuccess'),
|
type: 'success'
|
})
|
this.tableUrl = 'hr/empWorkExperience/list'
|
this.tableDataName = 'workExperienceData'
|
this.queryParams.delFlag = 2
|
this.search()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要提交的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 2:
|
selected = this.$refs.physicalExamTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.physicalExamId)
|
})
|
this.$delete(`hr/empPhysicalExam/toNormal/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.submitSuccess'),
|
type: 'success'
|
})
|
this.tableUrl = 'hr/empPhysicalExam/list'
|
this.tableDataName = 'physicalExamData'
|
this.queryParams.delFlag = 2
|
this.search()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要提交的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 3:
|
selected = this.$refs.contractInfoTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.contractId)
|
})
|
this.$delete(`hr/empContractInfo/toNormal/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.submitSuccess'),
|
type: 'success'
|
})
|
this.tableUrl = 'hr/empContractInfo/list'
|
this.tableDataName = 'contractInfoData'
|
this.queryParams.delFlag = 2
|
this.search()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要提交的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 4:
|
selected = this.$refs.dimissionAttendTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.dimissionAttendId)
|
})
|
this.$delete(`hr/empDimissionAttend/toNormal/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.submitSuccess'),
|
type: 'success'
|
})
|
this.tableUrl = 'hr/empDimissionAttend/list'
|
this.tableDataName = 'dimissionAttendData'
|
this.queryParams.delFlag = 2
|
this.search()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要提交的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 5:
|
selected = this.$refs.leaveInfoTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.leaveId)
|
})
|
this.$delete(`hr/empLeaveInfo/toNormal/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.submitSuccess'),
|
type: 'success'
|
})
|
this.tableUrl = 'hr/empLeaveInfo/list'
|
this.tableDataName = 'leaveInfoData'
|
this.queryParams.delFlag = 2
|
this.search()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要提交的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 6:
|
selected = this.$refs.resignTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.resignId)
|
})
|
this.$delete(`hr/empResign/toNormal/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.submitSuccess'),
|
type: 'success'
|
})
|
this.tableUrl = 'hr/empResign/list'
|
this.tableDataName = 'resignData'
|
this.queryParams.delFlag = 2
|
this.search()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要提交的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 7:
|
selected = this.$refs.unemploymentTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.unemploymentId)
|
})
|
this.$delete(`hr/empUnemployment/toNormal/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.submitSuccess'),
|
type: 'success'
|
})
|
this.tableUrl = 'hr/empUnemployment/list'
|
this.tableDataName = 'unemploymentData'
|
this.queryParams.delFlag = 2
|
this.search()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要提交的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 8:
|
selected = this.$refs.insuranceTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.insuranceId)
|
})
|
this.$delete(`hr/empInsurance/toNormal/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.submitSuccess'),
|
type: 'success'
|
})
|
this.tableUrl = 'hr/empInsurance/list'
|
this.tableDataName = 'insuranceData'
|
this.queryParams.delFlag = 2
|
this.search()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要提交的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 9:
|
selected = this.$refs.accidentCasesTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.accidentId)
|
})
|
this.$delete(`hr/empAccidentCases/toNormal/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.submitSuccess'),
|
type: 'success'
|
})
|
this.tableUrl = 'hr/empAccidentCases/list'
|
this.tableDataName = 'accidentCasesData'
|
this.queryParams.delFlag = 2
|
this.search()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要提交的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 10:
|
selected = this.$refs.occupationalTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.occupationalId)
|
})
|
this.$delete(`hr/empOccupational/toNormal/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.submitSuccess'),
|
type: 'success'
|
})
|
this.tableUrl = 'hr/empOccupational/list'
|
this.tableDataName = 'occupationalData'
|
this.queryParams.delFlag = 2
|
this.search()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要提交的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 11:
|
selected = this.$refs.laborTroubleTable.selection
|
if (selected.length > 0) {
|
const delIds = []
|
selected.forEach((j) => {
|
delIds.push(j.arbitrationId)
|
})
|
this.$delete(`hr/empLaborTrouble/toNormal/` + delIds).then(() => {
|
this.$message({
|
message: this.$t('tips.submitSuccess'),
|
type: 'success'
|
})
|
this.tableUrl = 'hr/empLaborTrouble/list'
|
this.tableDataName = 'laborTroubleData'
|
this.queryParams.delFlag = 2
|
this.search()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要提交的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 12:
|
selected = this.$refs.badRecordTable.selection
|
if (selected.length > 0) {
|
const badIds = []
|
selected.forEach((j) => {
|
badIds.push(j.badId)
|
})
|
this.$delete(`hr/empBadRecord/toNormal/` + badIds).then(() => {
|
this.$message({
|
message: this.$t('tips.submitSuccess'),
|
type: 'success'
|
})
|
this.tableUrl = 'hr/empBadRecord/list'
|
this.tableDataName = 'badRecordData'
|
this.queryParams.delFlag = 2
|
this.search()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要提交的记录',
|
type: 'error'
|
})
|
}
|
break
|
case 13:
|
selected = this.$refs.remarkInfoTable.selection
|
if (selected.length > 0) {
|
const badIds = []
|
selected.forEach((j) => {
|
badIds.push(j.remarkId)
|
})
|
this.$delete(`hr/empRemarkInfo/toNormal/` + badIds).then(() => {
|
this.$message({
|
message: this.$t('tips.submitSuccess'),
|
type: 'success'
|
})
|
this.tableUrl = 'hr/empRemarkInfo/list'
|
this.tableDataName = 'remarkInfoData'
|
this.queryParams.delFlag = 2
|
this.search()
|
})
|
} else {
|
this.$message({
|
message: '请先选中需要提交的记录',
|
type: 'error'
|
})
|
}
|
break
|
}
|
},
|
selectEmpBase() {
|
this.tableUrl = 'hr/empBaseInfo/list'
|
this.tableDataName = 'basicInformationData'
|
this.queryParams.delFlag = 2
|
this.search()
|
},
|
cleanEmpBase() {
|
this.empBaseInfoForm.empId = ''
|
this.empBaseInfoForm.customerId = ''
|
this.empBaseInfoForm.archivesNumb = ''
|
this.empBaseInfoForm.deptId = null
|
this.empBaseInfoForm.deptName = ''
|
this.empBaseInfoForm.allDeptName = ''
|
this.empBaseInfoForm.empNumb = ''
|
this.empBaseInfoForm.empName = ''
|
this.empBaseInfoForm.sex = ''
|
this.empBaseInfoForm.JobId = ''
|
this.empBaseInfoForm.jobName = ''
|
this.empBaseInfoForm.empType = ''
|
this.empBaseInfoForm.certificateType = ''
|
this.empBaseInfoForm.certificateNumb = ''
|
this.empBaseInfoForm.nation = ''
|
this.empBaseInfoForm.certificateValidity = ''
|
this.empBaseInfoForm.marriage = ''
|
this.empBaseInfoForm.age = ''
|
this.empBaseInfoForm.stature = ''
|
this.empBaseInfoForm.birthdate = ''
|
this.empBaseInfoForm.politics = ''
|
this.empBaseInfoForm.entryDate = ''
|
this.empBaseInfoForm.education = ''
|
this.empBaseInfoForm.seniority = ''
|
this.empBaseInfoForm.nativePlace = ''
|
this.empBaseInfoForm.nativePlaceName = ''
|
this.empBaseInfoForm.censusAddress = ''
|
this.empBaseInfoForm.currentAddress = ''
|
this.empBaseInfoForm.guardNumb = ''
|
this.empBaseInfoForm.telePhone = ''
|
this.empBaseInfoForm.returnReceipt = ''
|
this.empBaseInfoForm.introducer = ''
|
this.empBaseInfoForm.archivesStatus = ''
|
this.empBaseInfoForm.bankName = ''
|
this.empBaseInfoForm.bankNumb = ''
|
this.empBaseInfoForm.InsuranceType = ''
|
this.empBaseInfoForm.socialNumb = ''
|
this.empBaseInfoForm.family = ''
|
this.empBaseInfoForm.handbookStatus = ''
|
this.empBaseInfoForm.urgencyPhone = ''
|
this.empBaseInfoForm.empCardStatus = ''
|
this.empBaseInfoForm.certificateList = ''
|
this.empBaseInfoForm.createTime = ''
|
this.empBaseInfoForm.creator = ''
|
this.empBaseInfoForm.modifyTime = ''
|
this.empBaseInfoForm.modifier = ''
|
this.empBaseInfoForm.delFlag = ''
|
this.empBaseInfoForm.version = ''
|
this.empBaseInfoForm.imagePath = ''
|
this.empBaseInfoImageUrl = ''
|
},
|
editEmpBase(row) {
|
this.isAdd = false
|
let certificateList = []
|
if (row.certificateList && typeof row.certificateList === 'string') {
|
certificateList = row.certificateList.split(',')
|
row.certificateList = certificateList
|
}
|
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.allDeptName = row.allDeptName
|
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.nativePlaceName = row.nativePlaceName
|
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
|
this.empBaseInfoImageUrl = pages.getEmpBaseInfoImage + row.empId
|
this.empBaseInfoForm.insuranceType = row.insuranceType
|
},
|
putEmpBase(formName) {
|
this.$refs[formName].validate((valid) => {
|
if (valid) {
|
if (this.isAdd) {
|
this.$post('hr/empBaseInfo', { ...this.empBaseInfoForm }).then(() => {
|
this.buttonLoading = false
|
this.$message({
|
message: this.$t('tips.createSuccess'),
|
type: 'success'
|
})
|
this.cleanEmpBase()
|
this.selectEmpBase()
|
})
|
} else {
|
this.$put('hr/empBaseInfo', { ...this.empBaseInfoForm }).then(() => {
|
this.$message({
|
message: this.$t('tips.updateSuccess'),
|
type: 'success'
|
})
|
this.$emit('success')
|
this.cleanEmpBase()
|
this.selectEmpBase()
|
})
|
}
|
this.dialogIsShow()
|
}
|
})
|
},
|
putEmpBaseContinue(formName) {
|
this.$refs[formName].validate((valid) => {
|
if (valid) {
|
if (this.isAdd) {
|
this.$post('hr/empBaseInfo', { ...this.empBaseInfoForm }).then(() => {
|
this.buttonLoading = false
|
this.$message({
|
message: this.$t('tips.createSuccess'),
|
type: 'success'
|
})
|
this.cleanEmpBase()
|
this.selectEmpBase()
|
})
|
}
|
}
|
})
|
setTimeout(() => {
|
this.$refs[formName].clearValidate()
|
}, 1500)
|
},
|
selectWorkExperience() {
|
this.tableUrl = 'hr/empWorkExperience/list'
|
this.tableDataName = 'workExperienceData'
|
this.queryParams.delFlag = 2
|
this.search()
|
},
|
handleWorkExperienceSuccess() {
|
this.isAdd = true
|
this.selectWorkExperience()
|
this.dialogIsShow()
|
},
|
handleWorkExperienceContinue() {
|
this.selectWorkExperience()
|
},
|
editWorkExperience(row) {
|
this.isAdd = false
|
this.workExperienceEditData = { ...row }
|
this.dialogshowArr[1].show = true
|
},
|
selectPhysicalExam() {
|
this.tableUrl = 'hr/empPhysicalExam/list'
|
this.tableDataName = 'physicalExamData'
|
this.queryParams.delFlag = 2
|
this.search()
|
},
|
handlePhysicalExamSuccess() {
|
this.isAdd = true
|
this.selectPhysicalExam()
|
this.dialogIsShow()
|
},
|
handlePhysicalExamContinue() {
|
this.selectPhysicalExam()
|
},
|
editPhysicalExam(row) {
|
this.isAdd = false
|
this.physicalExamEditData = { ...row }
|
this.dialogshowArr[2].show = true
|
},
|
selectContractInfo() {
|
this.tableUrl = 'hr/empContractInfo/list'
|
this.tableDataName = 'contractInfoData'
|
this.queryParams.delFlag = 2
|
this.search()
|
},
|
handleContractInfoSuccess() {
|
this.isAdd = true
|
this.selectContractInfo()
|
this.dialogIsShow()
|
},
|
handleContractInfoContinue() {
|
this.selectContractInfo()
|
},
|
editContractInfo(row) {
|
this.isAdd = false
|
this.contractInfoEditData = { ...row }
|
this.dialogshowArr[3].show = true
|
},
|
selectDimissionAttend() {
|
this.tableUrl = 'hr/empDimissionAttend/list'
|
this.tableDataName = 'dimissionAttendData'
|
this.queryParams.delFlag = 2
|
this.search()
|
},
|
handleDimissionAttendSuccess() {
|
this.isAdd = true
|
this.selectDimissionAttend()
|
this.dialogIsShow()
|
},
|
handleDimissionAttendContinue() {
|
this.selectDimissionAttend()
|
},
|
editDimissionAttend(row) {
|
this.isAdd = false
|
this.dimissionAttendEditData = { ...row }
|
this.dialogshowArr[4].show = true
|
},
|
selectLeaveInfo() {
|
this.tableUrl = 'hr/empLeaveInfo/list'
|
this.tableDataName = 'leaveInfoData'
|
this.queryParams.delFlag = 2
|
this.search()
|
},
|
handleLeaveInfoSuccess() {
|
this.isAdd = true
|
this.selectLeaveInfo()
|
this.dialogIsShow()
|
},
|
handleLeaveInfoContinue() {
|
this.selectLeaveInfo()
|
},
|
editLeaveInfo(row) {
|
this.isAdd = false
|
this.leaveInfoEditData = { ...row }
|
this.dialogshowArr[5].show = true
|
},
|
selectResign() {
|
this.tableUrl = 'hr/empResign/list'
|
this.tableDataName = 'resignData'
|
this.queryParams.delFlag = 2
|
this.search()
|
},
|
handleResignSuccess() {
|
this.isAdd = true
|
this.selectResign()
|
this.dialogIsShow()
|
},
|
handleResignContinue() {
|
this.selectResign()
|
},
|
editResign(row) {
|
this.isAdd = false
|
this.resignEditData = { ...row }
|
this.dialogshowArr[6].show = true
|
},
|
selectUnemployment() {
|
this.tableUrl = 'hr/empUnemployment/list'
|
this.tableDataName = 'unemploymentData'
|
this.queryParams.delFlag = 2
|
this.search()
|
},
|
handleUnemploymentSuccess() {
|
this.isAdd = true
|
this.selectUnemployment()
|
this.dialogIsShow()
|
},
|
handleUnemploymentContinue() {
|
this.selectUnemployment()
|
},
|
editUnemployment(row) {
|
this.isAdd = false
|
this.unemploymentEditData = { ...row }
|
this.dialogshowArr[7].show = true
|
},
|
selectInsurance() {
|
this.tableUrl = 'hr/empInsurance/list'
|
this.tableDataName = 'insuranceData'
|
this.queryParams.delFlag = 2
|
this.search()
|
},
|
handleInsuranceSuccess() {
|
this.isAdd = true
|
this.selectInsurance()
|
this.dialogIsShow()
|
},
|
handleInsuranceContinue() {
|
this.selectInsurance()
|
},
|
editInsurance(row) {
|
this.isAdd = false
|
this.socialSecurityEditData = { ...row }
|
this.dialogshowArr[8].show = true
|
},
|
selectAccidentCases() {
|
this.tableUrl = 'hr/empAccidentCases/list'
|
this.tableDataName = 'accidentCasesData'
|
this.queryParams.delFlag = 2
|
this.search()
|
},
|
handleAccidentCasesSuccess() {
|
this.isAdd = true
|
this.selectAccidentCases()
|
this.dialogIsShow()
|
},
|
handleAccidentCasesContinue() {
|
this.selectAccidentCases()
|
},
|
editAccidentCases(row) {
|
this.isAdd = false
|
this.accidentInsuranceEditData = { ...row }
|
this.dialogshowArr[9].show = true
|
},
|
selectOccupational() {
|
this.tableUrl = 'hr/empOccupational/list'
|
this.tableDataName = 'occupationalData'
|
this.queryParams.delFlag = 2
|
this.search()
|
},
|
handleOccupationalSuccess() {
|
this.isAdd = true
|
this.selectOccupational()
|
this.dialogIsShow()
|
},
|
handleOccupationalContinue() {
|
this.selectOccupational()
|
},
|
editOccupational(row) {
|
this.isAdd = false
|
this.workInjuryEditData = { ...row }
|
this.dialogshowArr[10].show = true
|
},
|
selectLaborTrouble() {
|
this.tableUrl = 'hr/empLaborTrouble/list'
|
this.tableDataName = 'laborTroubleData'
|
this.queryParams.delFlag = 2
|
this.search()
|
},
|
handleLaborTroubleSuccess() {
|
this.isAdd = true
|
this.selectLaborTrouble()
|
this.dialogIsShow()
|
},
|
handleLaborTroubleContinue() {
|
this.selectLaborTrouble()
|
},
|
editLaborTrouble(row) {
|
this.isAdd = false
|
this.arbitrationEditData = { ...row }
|
this.dialogshowArr[11].show = true
|
},
|
selectBadRecord() {
|
this.tableUrl = 'hr/empBadRecord/list'
|
this.tableDataName = 'badRecordData'
|
this.queryParams.delFlag = 2
|
this.search()
|
},
|
handleBadRecordSuccess() {
|
this.isAdd = true
|
this.selectBadRecord()
|
this.dialogIsShow()
|
},
|
handleBadRecordContinue() {
|
this.selectBadRecord()
|
},
|
editBadRecord(row) {
|
this.isAdd = false
|
this.badRecordEditData = { ...row }
|
this.dialogshowArr[12].show = true
|
},
|
selectRemarkInfo() {
|
this.tableUrl = 'hr/empRemarkInfo/list'
|
this.tableDataName = 'remarkInfoData'
|
this.queryParams.delFlag = 2
|
this.search()
|
},
|
handleRemarkInfoSuccess() {
|
this.isAdd = true
|
this.selectRemarkInfo()
|
this.dialogIsShow()
|
},
|
handleRemarkInfoContinue() {
|
this.selectRemarkInfo()
|
},
|
editRemarkInfo(row) {
|
this.isAdd = false
|
this.remarkEditData = { ...row }
|
this.dialogshowArr[13].show = true
|
},
|
showXzyg() {
|
this.dialogShowXzyg = true
|
},
|
cancleChooseUser() {
|
this.dialogShowXzyg = false
|
},
|
selectedUser(users) {
|
for (var i = 0; i < users.length; i++) {
|
var data = users[i]
|
switch (this.thisShowIndex) {
|
case 1:
|
this.workExperienceEditData = { empId: data.empId, empName: data.empName, empNumb: data.empNumb, certificateNumb: data.certificateNumb, deptId: data.deptId, deptName: data.deptName, allDeptName: data.allDeptName, JobId: data.jobId, jobName: data.jobName, sex: data.sex === '1' ? '男' : '女' }
|
break
|
case 2:
|
this.physicalExamEditData = { empId: data.empId, empName: data.empName, empNumb: data.empNumb, certificateNumb: data.certificateNumb, deptId: data.deptId, deptName: data.deptName, allDeptName: data.allDeptName, JobId: data.jobId, jobName: data.jobName, sex: data.sex === '1' ? '男' : '女' }
|
break
|
case 3:
|
this.contractInfoEditData = { empId: data.empId, empName: data.empName, empNumb: data.empNumb, certificateNumb: data.certificateNumb, deptId: data.deptId, deptName: data.deptName, allDeptName: data.allDeptName, JobId: data.jobId, jobName: data.jobName, sex: data.sex === '1' ? '男' : '女' }
|
break
|
case 4:
|
this.dimissionAttendEditData = { empId: data.empId, empName: data.empName, empNumb: data.empNumb, certificateNumb: data.certificateNumb, deptId: data.deptId, deptName: data.deptName, allDeptName: data.allDeptName, JobId: data.jobId, jobName: data.jobName, sex: data.sex === '1' ? '男' : '女' }
|
break
|
case 5:
|
this.leaveInfoEditData = { empId: data.empId, empName: data.empName, empNumb: data.empNumb, certificateNumb: data.certificateNumb, deptId: data.deptId, deptName: data.deptName, allDeptName: data.allDeptName, JobId: data.jobId, jobName: data.jobName, sex: data.sex === '1' ? '男' : '女' }
|
break
|
case 6:
|
this.resignEditData = { empId: data.empId, empName: data.empName, empNumb: data.empNumb, certificateNumb: data.certificateNumb, deptId: data.deptId, deptName: data.deptName, allDeptName: data.allDeptName, JobId: data.jobId, jobName: data.jobName, sex: data.sex === '1' ? '男' : '女' }
|
break
|
case 7:
|
this.unemploymentEditData = { empId: data.empId, empName: data.empName, empNumb: data.empNumb, certificateNumb: data.certificateNumb, deptId: data.deptId, deptName: data.deptName, allDeptName: data.allDeptName, JobId: data.jobId, jobName: data.jobName, sex: data.sex === '1' ? '男' : '女' }
|
break
|
case 8:
|
this.socialSecurityEditData = { empId: data.empId, empName: data.empName, empNumb: data.empNumb, certificateNumb: data.certificateNumb, deptId: data.deptId, deptName: data.deptName, allDeptName: data.allDeptName, JobId: data.jobId, jobName: data.jobName, sex: data.sex === '1' ? '男' : '女' }
|
break
|
case 9:
|
this.accidentInsuranceEditData = { empId: data.empId, empName: data.empName, empNumb: data.empNumb, certificateNumb: data.certificateNumb, deptId: data.deptId, deptName: data.deptName, allDeptName: data.allDeptName, JobId: data.jobId, jobName: data.jobName, sex: data.sex === '1' ? '男' : '女' }
|
break
|
case 10:
|
this.workInjuryEditData = { empId: data.empId, empName: data.empName, empNumb: data.empNumb, certificateNumb: data.certificateNumb, deptId: data.deptId, deptName: data.deptName, allDeptName: data.allDeptName, JobId: data.jobId, jobName: data.jobName, sex: data.sex === '1' ? '男' : '女' }
|
break
|
case 11:
|
this.arbitrationEditData = { empId: data.empId, empName: data.empName, empNumb: data.empNumb, certificateNumb: data.certificateNumb, deptId: data.deptId, deptName: data.deptName, allDeptName: data.allDeptName, JobId: data.jobId, jobName: data.jobName, sex: data.sex === '1' ? '男' : '女' }
|
break
|
case 12:
|
this.badRecordEditData = { empId: data.empId, empName: data.empName, empNumb: data.empNumb, certificateNumb: data.certificateNumb, deptId: data.deptId, deptName: data.deptName, allDeptName: data.allDeptName, JobId: data.jobId, jobName: data.jobName, sex: data.sex === '1' ? '男' : '女' }
|
break
|
case 13:
|
this.remarkEditData = { empId: data.empId, empName: data.empName, empNumb: data.empNumb, certificateNumb: data.certificateNumb, deptId: data.deptId, deptName: data.deptName, allDeptName: data.allDeptName, JobId: data.jobId, jobName: data.jobName, sex: data.sex === '1' ? '男' : '女' }
|
break
|
}
|
if (this.thisShowIndex >= 7 && this.thisShowIndex <= 13) {
|
// case 7-13 已在 switch 中直接设置 editData,此处无需额外操作
|
}
|
}
|
this.dialogShowXzyg = false
|
},
|
querySearch(queryString, cb) {
|
var restaurants = this.restaurants
|
var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants
|
// 调用 callback 返回建议列表的数据
|
cb(results)
|
},
|
createFilter(queryString) {
|
return (restaurant) => {
|
return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0)
|
}
|
}, placeNameSelect(item) {
|
this.empBaseInfoForm.nativePlaceName = item.value
|
this.empBaseInfoForm.nativePlace = item.code
|
}, querySearchJob(queryString, cb) {
|
const restaurants = this.restaurJob
|
const results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants
|
// 调用 callback 返回建议列表的数据
|
cb(results)
|
}, jobNameSelect(item) {
|
this.empBaseInfoForm.jobName = item.value
|
this.empBaseInfoForm.JobId = item.code
|
}, DeptNameSelect(val) {
|
this.empBaseInfoForm.deptId = val.deptId
|
this.empBaseInfoForm.deptName = val.label
|
this.empBaseInfoForm.allDeptName = val.allDeptName
|
},
|
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
|
}
|
},
|
calculateSeniority(val) {
|
this.empBaseInfoForm.seniority = calculateSeniority(val)
|
},
|
transinsuranceGaers(val) {
|
switch (val) {
|
case '1':
|
return '(深户)五险一档'
|
case '2':
|
return '(非深户)五险一档'
|
case '3':
|
return '(非深户)五险二档'
|
case '4':
|
return '(非深户)五险三档'
|
case '5':
|
return '(非深户)四险一档'
|
}
|
},
|
changeSort(val) {
|
this.sort.field = val.prop
|
this.sort.order = val.order
|
this.search()
|
}
|
}
|
}
|
</script>
|
<style lang="scss" scoped>
|
.baseinfo .el-container {
|
.el-aside {
|
background-color: #fff;
|
}
|
|
.el-main {
|
background-color: #fff;
|
}
|
|
}
|
|
.el-container {
|
height: 86.7vh;
|
background-color: #fff;
|
|
.el-aside {
|
color: #333;
|
text-align: center;
|
height: 100%;
|
background-color: #fff;
|
}
|
|
.el-main {
|
color: #333;
|
height: 100%;
|
|
.el-table {
|
margin-top: 10px;
|
}
|
}
|
|
.el-timeline-item {
|
padding-bottom: 5px;
|
}
|
}
|
|
.button-from {
|
text-align: center;
|
margin-top: 2%;
|
}
|
|
.commonBtn {
|
background-color: rgb(163, 44, 48);
|
color: white;
|
}
|
|
.nomalBtn {
|
border: 1px solid rgb(163, 44, 48);
|
background-color: white;
|
color: rgb(163, 44, 48);
|
}
|
|
.selectedTimeline {
|
color: rgb(163, 44, 48);
|
}
|
|
.info-card {
|
margin-top: 20px;
|
}
|
|
.el-select {
|
width: 100%;
|
}
|
|
.el-autocomplete {
|
width: 100%;
|
}
|
|
.el-header, .el-footer {
|
background-color: #e9eef3;
|
color: #333;
|
text-align: center;
|
line-height: 60px;
|
|
}
|
|
.el-date-editor.el-input,
|
.el-date-editor.el-input__inner {
|
width: 100%;
|
}
|
|
/* 头像上传相关样式 */
|
.avatar-wrapper {
|
width: 178px;
|
height: 178px;
|
border: 1px dashed #d9d9d9;
|
border-radius: 6px;
|
cursor: pointer;
|
position: relative;
|
overflow: hidden;
|
display: flex;
|
align-items: center;
|
justify-content: center;
|
}
|
|
.avatar-wrapper:hover {
|
border-color: #409EFF;
|
}
|
|
.avatar {
|
width: 100%;
|
height: 100%;
|
display: block;
|
object-fit: cover;
|
}
|
|
.avatar-uploader-placeholder {
|
width: 100%;
|
height: 100%;
|
display: flex;
|
flex-direction: column;
|
align-items: center;
|
justify-content: center;
|
color: #8c939d;
|
}
|
|
.avatar-uploader-icon {
|
font-size: 28px;
|
color: #8c939d;
|
margin-bottom: 8px;
|
}
|
|
.upload-tip {
|
font-size: 12px;
|
color: #8c939d;
|
}
|
|
/* 上传方式选择容器 */
|
.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 {
|
display: flex;
|
justify-content: center;
|
align-items: center;
|
background-color: #000;
|
min-height: 360px;
|
}
|
|
.camera-video {
|
width: 100%;
|
max-width: 640px;
|
height: auto;
|
}
|
|
.captured-image {
|
max-width: 100%;
|
max-height: 480px;
|
}
|
</style>
|
|
<style lang="scss">
|
.info-input {
|
.el-timeline-item__wrapper {
|
|
color: #a00515;
|
cursor: pointer;
|
top: -5px;
|
|
.el-timeline-item__content {
|
&:hover {
|
color: #a00515;
|
}
|
}
|
|
}
|
}
|
|
</style>
|