| | |
| | | <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> |
| | | <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> |
| | |
| | | 编辑 |
| | | </span> |
| | | </template> |
| | | </el-table-column>--> |
| | | </el-table-column> |
| | | --> |
| | | <!-- <el-table-column label="照片" width="60">--> |
| | | <!-- <template slot-scope="scope">--> |
| | | <!-- <!– <img :src="scope.row.imagePath">–>--> |
| | |
| | | <!-- />--> |
| | | <!-- </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="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="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="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="entryDate" |
| | | show-overflow-tooltip |
| | | label="入职日期" |
| | | width="120" |
| | | sortable="custom" |
| | | :sort-orders="['ascending', 'descending']" |
| | | /> |
| | | <el-table-column |
| | | prop="insuranceType" |
| | | show-overflow-tooltip |
| | |
| | | </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="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="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> |
| | |
| | | </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="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="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="physicalExamDate" |
| | | label="体检日期" |
| | | width="120" |
| | | sortable="custom" |
| | | :sort-orders="['ascending', 'descending']" |
| | | /> |
| | | <el-table-column |
| | | show-overflow-tooltip |
| | | prop="physicalExamType" |
| | |
| | | </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="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 |
| | | 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="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="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 |
| | |
| | | </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="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="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" /> |
| | |
| | | </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="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="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="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="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="备注" /> |
| | |
| | | </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="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="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="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="备注" /> |
| | |
| | | </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="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="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="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" /> |
| | |
| | | </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="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="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="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 |
| | | 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" /> |
| | |
| | | </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="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="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="injuredTime" |
| | | label="受伤日期" |
| | | width="120" |
| | | sortable="custom" |
| | | :sort-orders="['ascending', 'descending']" |
| | | /> |
| | | <el-table-column show-overflow-tooltip prop="injuredAddress" label="受伤地点" width="80" /> |
| | | <el-table-column show-overflow-tooltip prop="injuredPart" label="受伤部位" width="80" /> |
| | | <el-table-column show-overflow-tooltip prop="injuredDescribe" label="受伤经过描述" width="120" /> |
| | | <el-table-column show-overflow-tooltip prop="injuredDiacrisis" label="意外险诊断" width="120" /> |
| | | <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="hospitalName" label="就诊医院" width="80" />--> |
| | | <!-- <el-table-column show-overflow-tooltip prop="treatmentName" label="就诊科室" width="80" />--> |
| | | <el-table-column |
| | | show-overflow-tooltip |
| | | prop="hospitalizatioFlag" |
| | |
| | | width="80" |
| | | :formatter="hospitalizatioFlagFormat" |
| | | /> |
| | | <el-table-column show-overflow-tooltip prop="bedNumb" label="床号" width="60" /> |
| | | <!-- <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="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> |
| | |
| | | </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="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="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="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="受伤经过描述" width="120" /> |
| | |
| | | </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="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="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="arbitrationDate" |
| | | label="仲裁日期" |
| | | width="120" |
| | | sortable="custom" |
| | | :sort-orders="['ascending', 'descending']" |
| | | /> |
| | | <el-table-column |
| | | show-overflow-tooltip |
| | | prop="arbitrationType" |
| | |
| | | </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="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="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="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="备注" /> |
| | |
| | | </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="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="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="remarkDate" |
| | | label="备注日期" |
| | | width="150" |
| | | sortable="custom" |
| | | :sort-orders="['ascending', 'descending']" |
| | | /> |
| | | <el-table-column show-overflow-tooltip prop="remarkContent" label="备注信息" /> |
| | | </el-table> |
| | | <pagination |
| | |
| | | <el-dialog title="基本信息" top="8vh" :visible.sync="dialogshowArr[0].show" width="60%" class="baseinfo"> |
| | | <el-container style="height: 70vh;"> |
| | | <el-aside width="200px"> |
| | | <el-upload |
| | | class="avatar-uploader" |
| | | action="#" |
| | | :show-file-list="false" |
| | | :on-change="handlePictureCardPreview" |
| | | :auto-upload="false" |
| | | > |
| | | <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过4MB</div> |
| | | <img v-if="empBaseInfoImageUrl" :src="empBaseInfoImageUrl" class="avatar"> |
| | | <i v-else class="el-icon-plus avatar-uploader-icon" /> |
| | | </el-upload> |
| | | <!-- 头像显示区域 --> |
| | | <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 |
| | |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="家庭成员及关系" prop="family"> |
| | | <el-form-item label="家庭成员及关系1" prop="family"> |
| | | <el-input v-model="empBaseInfoForm.family" /> |
| | | </el-form-item> |
| | | <el-form-item label="紧急联系电话" prop="urgencyPhone"> |
| | | <el-form-item label="家庭成员及关系2" prop="urgencyPhone"> |
| | | <el-input v-model="empBaseInfoForm.urgencyPhone" /> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="性别" prop="sex"> |
| | | <el-input v-model="contractInfoForm.sex" /> |
| | | <!-- <el-input v-model="contractInfoForm.sex" />--> |
| | | <el-select v-model="contractInfoForm.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="signingDate"> |
| | | <el-date-picker |
| | |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="putUnemployment('unemploymentForm')">保 存</el-button> |
| | | <el-button v-if="isAdd" type="primary" @click="putUnemploymentContinue('unemploymentForm')">保存并继续新增</el-button> |
| | | <el-button v-if="isAdd" type="primary" @click="putUnemploymentContinue('unemploymentForm')">保存并继续新增 |
| | | </el-button> |
| | | <el-button @click="dialogIsShow()">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="备注" prop="remark"> |
| | | <el-input v-model="accidentCasesForm.remark" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="putOccupational('occupationalForm')">保 存</el-button> |
| | | <el-button v-if="isAdd" type="primary" @click="putOccupationalContinue('occupationalForm')">保存并继续新增</el-button> |
| | | <el-button v-if="isAdd" type="primary" @click="putOccupationalContinue('occupationalForm')">保存并继续新增 |
| | | </el-button> |
| | | <el-button @click="dialogIsShow()">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog title="劳资案件" :visible.sync="dialogshowArr[11].show" width="50%"> |
| | | <el-dialog title="仲裁案件" :visible.sync="dialogshowArr[11].show" width="50%"> |
| | | <el-form |
| | | ref="laborTroubleForm" |
| | | :model="laborTroubleForm" |
| | |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="putLaborTrouble('laborTroubleForm')">保 存</el-button> |
| | | <el-button v-if="isAdd" type="primary" @click="putLaborTroubleContinue('laborTroubleForm')">保存并继续新增</el-button> |
| | | <el-button v-if="isAdd" type="primary" @click="putLaborTroubleContinue('laborTroubleForm')">保存并继续新增 |
| | | </el-button> |
| | | <el-button @click="dialogIsShow()">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="putRemarkInfo('remarkInfoForm')">保 存</el-button> |
| | | <el-button v-if="isAdd" type="primary" @click="putRemarkInfoContinue('remarkInfoForm')">保存并继续新增</el-button> |
| | | <el-button v-if="isAdd" type="primary" @click="putRemarkInfoContinue('remarkInfoForm')">保存并继续新增 |
| | | </el-button> |
| | | <el-button @click="dialogIsShow()">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <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> |
| | |
| | | import Pagination from '@/components/Pagination' |
| | | import { pages } from '@/settings' |
| | | import { getToken } from '@/utils/auth' |
| | | import dictMixin from '../../utils/dictMixin' |
| | | |
| | | export default { |
| | | components: { Treeselect, Pagination }, |
| | | mixins: [dictMixin], |
| | | data() { |
| | | return { |
| | | downloadEmpExcel: pages.downloadEmpExcel, |
| | |
| | | baseicInformationForm: {}, |
| | | dialogShowDryg: false, |
| | | empBaseInfoImageUrl: '', |
| | | // 上传方式选择弹窗 |
| | | uploadChoiceDialogVisible: false, |
| | | // 摄像头相关 |
| | | cameraDialogVisible: false, |
| | | capturedImage: '', |
| | | stream: null, |
| | | total: 0, // 总数量 |
| | | queryParams: {}, // 查询参数 |
| | | sort: {}, // 排序 |
| | |
| | | pattern: /^\d{1,2}(\.\d{1,1})?$/, |
| | | message: '出勤天数精确到1位小数' |
| | | }], |
| | | overtimeDay: [{ pattern: /^\d{1,2}(\.\d{1,1})?$/, message: '加班(天)精确到1位小数' }], |
| | | overtimeHour: [{ pattern: /^\d{1,2}(\.\d{1,1})?$/, message: '加班(小时)精确到1位小数' }], |
| | | leaveDay: [{ pattern: /^\d{1,2}(\.\d{1,1})?$/, message: '请假(天)精确到1位小数' }], |
| | | absenteeism: [{ 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: { |
| | |
| | | empStatus: 0, |
| | | remark: '' |
| | | }, |
| | | statusOptions: [], |
| | | empTypeOptions: [], |
| | | nationOptions: [], |
| | | marriageOptions: [], |
| | | educationOptions: [], |
| | | nativePlaceOptions: [], |
| | | archivesStatusOptions: [], |
| | | insuranceTypeOptions: [], |
| | | empCardStatusOptions: [], |
| | | handbookStatusOptions: [], |
| | | ecgOptions: [], |
| | | certificateListOptions: [], |
| | | physicalExamTypeOptions: [], |
| | | contractStatusOptions: [], |
| | | leaveTypeOptions: [], |
| | | insuranceGaersOptions: [], |
| | | applayStatusOptions: [], |
| | | reportStatusOptions: [], |
| | | hospitalizatioFlagOptions: [], |
| | | settleStatusOptions: [], |
| | | arbitrationTypeOptions: [], |
| | | changeTypeOptions: [], |
| | | dimissionTypeOptions: [], |
| | | sexOptions: [], |
| | | 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')) |
| | | this.getDicts('PLITICAL').then(response => { |
| | | this.statusOptions = response.data |
| | | }) |
| | | this.getDicts('sex').then(response => { |
| | | this.sexOptions = response.data |
| | | }) |
| | | this.getDicts('empType').then(response => { |
| | | this.empTypeOptions = response.data |
| | | }) |
| | | this.getDicts('NATION').then(response => { |
| | | this.nationOptions = response.data |
| | | }) |
| | | this.getDicts('MARRIAGE').then(response => { |
| | | this.marriageOptions = response.data |
| | | }) |
| | | this.getDicts('EDUCATION').then(response => { |
| | | this.educationOptions = response.data |
| | | }) |
| | | this.getDicts('NATIVEPLACE').then(response => { |
| | | this.nativePlaceOptions = response.data |
| | | }) |
| | | this.getDicts('archivesStatus').then(response => { |
| | | this.archivesStatusOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceTypeOptions = response.data |
| | | }) |
| | | this.getDicts('empCardStatus').then(response => { |
| | | this.empCardStatusOptions = response.data |
| | | }) |
| | | this.getDicts('handbookStatus').then(response => { |
| | | this.handbookStatusOptions = response.data |
| | | }) |
| | | this.getDicts('certificateList').then(response => { |
| | | this.certificateListOptions = response.data |
| | | }) |
| | | this.getDicts('PHYSICALEXAMTYPE').then(response => { |
| | | this.physicalExamTypeOptions = response.data |
| | | }) |
| | | this.getDicts('ECG').then(response => { |
| | | this.ecgOptions = response.data |
| | | }) |
| | | this.getDicts('CONTRACTSTATUS').then(response => { |
| | | this.contractStatusOptions = response.data |
| | | }) |
| | | this.getDicts('LEAVETYPE').then(response => { |
| | | this.leaveTypeOptions = response.data |
| | | }) |
| | | this.getDicts('INSURANCETYPE').then(response => { |
| | | this.insuranceGaersOptions = response.data |
| | | }) |
| | | this.getDicts('applayStatus').then(response => { |
| | | this.applayStatusOptions = response.data |
| | | }) |
| | | this.getDicts('reportStatus').then(response => { |
| | | this.reportStatusOptions = response.data |
| | | }) |
| | | this.getDicts('hospitalizatioFlag').then(response => { |
| | | this.hospitalizatioFlagOptions = response.data |
| | | }) |
| | | this.getDicts('settleStatus').then(response => { |
| | | this.settleStatusOptions = response.data |
| | | }) |
| | | this.getDicts('ZCTYPE').then(response => { |
| | | this.arbitrationTypeOptions = response.data |
| | | }) |
| | | this.getDicts('changeType').then(response => { |
| | | this.changeTypeOptions = response.data |
| | | }) |
| | | this.getDicts('LZTYPE').then(response => { |
| | | this.dimissionTypeOptions = response.data |
| | | }) |
| | | // 字典数据已在登录时预加载,直接从 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) |
| | |
| | | } |
| | | } 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 |
| | | } |
| | | }, |
| | | // 翻页插件翻页方法 |
| | |
| | | // 起始日期有,进行判断 |
| | | if (this.compareDate(this.contractInfoForm.signingDate, value)) { |
| | | // 如果起始在结束之前 |
| | | this.contractInfoForm.contractPeriod = dateDifference(this.contractInfoForm.signingDate, this.contractInfoForm.endDate, 'y') |
| | | this.contractInfoForm.contractPeriod = dateDifference(this.contractInfoForm.signingDate, this.contractInfoForm.endDate, 'o') |
| | | callback() |
| | | } else { |
| | | callback(new Error('结束日期不能在开始始日期之前,请重新选择')) |
| | |
| | | .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"> |