From 11ab4edc4f3c59643ffbd73ef2bf05bbb3e793aa Mon Sep 17 00:00:00 2001
From: yubo <autumnal_wind@yeah.net>
Date: 星期六, 11 四月 2026 08:45:47 +0800
Subject: [PATCH] style(user): 调整员工编号列宽度
---
src/views/user/archivesChange.vue | 1594 +++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 1,075 insertions(+), 519 deletions(-)
diff --git a/src/views/user/archivesChange.vue b/src/views/user/archivesChange.vue
index 54a4e87..156f8e2 100644
--- a/src/views/user/archivesChange.vue
+++ b/src/views/user/archivesChange.vue
@@ -14,17 +14,19 @@
<div class="menu dadetails">
<div style="height: 22vh;">
- <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>
<!-- <img src="https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1333074204,3035391839&fm=26&gp=0.jpg" class="jbxxImg">-->
<div class="title-da">
档案号:{{ empBaseInfoForm.archivesNumb }}
@@ -153,7 +155,7 @@
<div class="item-node" />
<div>
<a href="javascript:void(0)" :class="item=='lzaj'?'light':''" @click="goAnchor('lzaj')">
- 劳资案件
+ 仲裁案件
</a>
</div>
</li>
@@ -205,7 +207,11 @@
<el-row style="width: 100%;">
<el-col :span="8">
<el-form-item label="编号" prop="empNumb">
- <el-input v-model="empBaseInfoForm.empNumb" style="width: 100%;" :disabled="readon ? false : true" />
+ <el-input
+ v-model="empBaseInfoForm.empNumb"
+ style="width: 100%;"
+ :disabled="readon ? false : true"
+ />
</el-form-item>
</el-col>
<el-col :span="8">
@@ -227,7 +233,11 @@
<el-row>
<el-col :span="8">
<el-form-item label="性别" prop="sex">
- <el-select v-model="empBaseInfoForm.sex" placeholder="请选择性别" :disabled="readon ? false : true">
+ <el-select
+ v-model="empBaseInfoForm.sex"
+ placeholder="请选择性别"
+ :disabled="readon ? false : true"
+ >
<el-option
v-for="dict in sexOptions"
:key="dict.dicItemCode"
@@ -267,7 +277,11 @@
<el-row>
<el-col :span="8">
<el-form-item label="员工类别" prop="empType">
- <el-select v-model="empBaseInfoForm.empType" placeholder="请选择员工类型" :disabled="readon ? false : true">
+ <el-select
+ v-model="empBaseInfoForm.empType"
+ placeholder="请选择员工类型"
+ :disabled="readon ? false : true"
+ >
<el-option
v-for="dict in empTypeOptions"
:key="dict.dicItemCode"
@@ -279,7 +293,12 @@
</el-col>
<el-col :span="8">
<el-form-item label="民族" prop="nation">
- <el-select v-model="empBaseInfoForm.nation" filterable placeholder="请选择民族" :disabled="readon ? false : true">
+ <el-select
+ v-model="empBaseInfoForm.nation"
+ filterable
+ placeholder="请选择民族"
+ :disabled="readon ? false : true"
+ >
<el-option
v-for="dict in nationOptions"
:key="dict.dicItemCode"
@@ -299,7 +318,11 @@
<el-row>
<el-col :span="8">
<el-form-item label="婚姻状态" prop="marriage">
- <el-select v-model="empBaseInfoForm.marriage" placeholder="请选择婚姻状态" :disabled="readon ? false : true">
+ <el-select
+ v-model="empBaseInfoForm.marriage"
+ placeholder="请选择婚姻状态"
+ :disabled="readon ? false : true"
+ >
<el-option
v-for="dict in marriageOptions"
:key="dict.dicItemCode"
@@ -330,7 +353,11 @@
<el-row>
<el-col :span="8">
<el-form-item label="政治面貌" prop="politics">
- <el-select v-model="empBaseInfoForm.politics" placeholder="请选择政治面貌" :disabled="readon ? false : true">
+ <el-select
+ v-model="empBaseInfoForm.politics"
+ placeholder="请选择政治面貌"
+ :disabled="readon ? false : true"
+ >
<el-option
v-for="dict in statusOptions"
:key="dict.dicItemCode"
@@ -353,7 +380,11 @@
</el-col>
<el-col :span="8">
<el-form-item label="最高学历" prop="education">
- <el-select v-model="empBaseInfoForm.education" placeholder="请选择最高学历" :disabled="readon ? false : true">
+ <el-select
+ v-model="empBaseInfoForm.education"
+ placeholder="请选择最高学历"
+ :disabled="readon ? false : true"
+ >
<el-option
v-for="dict in educationOptions"
:key="dict.dicItemCode"
@@ -368,7 +399,11 @@
<el-row>
<el-col :span="8">
<el-form-item label="籍贯" prop="nativePlaceName">
- <el-select v-model="empBaseInfoForm.nativePlace" placeholder="请选择籍贯" :disabled="readon ? false : true">
+ <el-select
+ v-model="empBaseInfoForm.nativePlace"
+ placeholder="请选择籍贯"
+ :disabled="readon ? false : true"
+ >
<el-option
v-for="dict in nativePlaceOptions"
:key="dict.dicItemCode"
@@ -403,7 +438,11 @@
</el-col>
<el-col :span="8">
<el-form-item label="档案情况" prop="archivesStatus">
- <el-select v-model="empBaseInfoForm.archivesStatus" placeholder="请选择档案情况" :disabled="readon ? false : true">
+ <el-select
+ v-model="empBaseInfoForm.archivesStatus"
+ placeholder="请选择档案情况"
+ :disabled="readon ? false : true"
+ >
<el-option
v-for="dict in archivesStatusOptions"
:key="dict.dicItemCode"
@@ -448,7 +487,11 @@
</el-col>
<el-col :span="8">
<el-form-item label="社保档位" prop="insuranceType">
- <el-select v-model="empBaseInfoForm.insuranceType" placeholder="请选择社保档位" :disabled="readon ? false : true">
+ <el-select
+ v-model="empBaseInfoForm.insuranceType"
+ placeholder="请选择社保档位"
+ :disabled="readon ? false : true"
+ >
<el-option
v-for="dict in insuranceTypeOptions"
:key="dict.dicItemCode"
@@ -478,7 +521,11 @@
</el-col>
<el-col :span="8">
<el-form-item label="工作证" prop="empCardStatus">
- <el-select v-model="empBaseInfoForm.empCardStatus" placeholder="请选择工作证" :disabled="readon ? false : true">
+ <el-select
+ v-model="empBaseInfoForm.empCardStatus"
+ placeholder="请选择工作证"
+ :disabled="readon ? false : true"
+ >
<el-option
v-for="dict in empCardStatusOptions"
:key="dict.dicItemCode"
@@ -492,18 +539,22 @@
</el-row>
<el-row>
<el-col :span="8">
- <el-form-item label="家庭成员及关系" prop="family">
+ <el-form-item label="家庭成员及关系1" prop="family">
<el-input v-model="empBaseInfoForm.family" :disabled="readon ? false : true" />
</el-form-item>
</el-col>
<el-col :span="8">
- <el-form-item label="紧急联系电话" prop="urgencyPhone">
+ <el-form-item label="家庭成员及关系2" prop="urgencyPhone">
<el-input v-model="empBaseInfoForm.urgencyPhone" :disabled="readon ? false : true" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="员工手册" prop="handbookStatus">
- <el-select v-model="empBaseInfoForm.handbookStatus" placeholder="请选择员工手册" :disabled="readon ? false : true">
+ <el-select
+ v-model="empBaseInfoForm.handbookStatus"
+ placeholder="请选择员工手册"
+ :disabled="readon ? false : true"
+ >
<el-option
v-for="dict in handbookStatusOptions"
:key="dict.dicItemCode"
@@ -516,6 +567,11 @@
<el-col :span="8">
<el-form-item label="相关证件" prop="certificateListName">
<el-input v-model="empBaseInfoForm.certificateListName" :disabled="readon ? false : true" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="年假天数" prop="annualLeave">
+ <el-input v-model="empBaseInfoForm.annualLeave" disabled />
</el-form-item>
</el-col>
</el-row>
@@ -583,10 +639,22 @@
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="physicalExamId" label="" />
<el-table-column show-overflow-tooltip prop="hospital" label="体检医院" width="150" />
<el-table-column show-overflow-tooltip prop="physicalExamDate" label="体检日期" width="140" />
- <el-table-column show-overflow-tooltip prop="physicalExamType" label="体检类型" width="140" :formatter="typeFormat" />
+ <el-table-column
+ show-overflow-tooltip
+ prop="physicalExamType"
+ label="体检类型"
+ width="140"
+ :formatter="typeFormat"
+ />
<el-table-column show-overflow-tooltip prop="bloodPressure" label="血压" width="140" />
<el-table-column show-overflow-tooltip prop="transaminase" label="转氨酶" width="140" />
- <el-table-column show-overflow-tooltip prop="ecg" label="心电图" width="140" :formatter="ecgNameFormat" />
+ <el-table-column
+ show-overflow-tooltip
+ prop="ecg"
+ label="心电图"
+ width="140"
+ :formatter="ecgNameFormat"
+ />
<el-table-column show-overflow-tooltip prop="conclusion" label="体检结论" />
<el-table-column show-overflow-tooltip prop="reviewRecord" label="复查记录" width="140" />
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
@@ -625,7 +693,12 @@
<el-table-column show-overflow-tooltip prop="signingDate" label="合同签订日期" />
<el-table-column show-overflow-tooltip prop="endDate" label="合同结束日期" />
<el-table-column show-overflow-tooltip prop="contractPeriod" label="合同期限(年)" />
- <el-table-column show-overflow-tooltip prop="contractStatus" label="合同状态" :formatter="contractStatusFormat" />
+ <el-table-column
+ show-overflow-tooltip
+ prop="contractStatus"
+ label="合同状态"
+ :formatter="contractStatusFormat"
+ />
<el-table-column show-overflow-tooltip prop="transactor" label="合同办理人" />
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
</el-table>
@@ -657,13 +730,18 @@
<span v-text="getIndex(scope.$index)" />
</template>
</el-table-column>
- <el-table-column show-overflow-tooltip prop="newDeptName" label="现部门" />
+ <el-table-column show-overflow-tooltip prop="allDeptName" label="现部门" />
<el-table-column show-overflow-tooltip prop="newJobName" label="现岗位" />
<el-table-column show-overflow-tooltip prop="empName" label="姓名" width="180" />
<el-table-column show-overflow-tooltip prop="oldDeptName" label="原部门" />
<el-table-column show-overflow-tooltip prop="oldJobName" label="原岗位" />
<el-table-column show-overflow-tooltip prop="changeDate" label="调岗日期" />
- <el-table-column show-overflow-tooltip prop="changeType" label="调岗类型" :formatter="changeTypeFormat" />
+ <el-table-column
+ show-overflow-tooltip
+ prop="changeType"
+ label="调岗类型"
+ :formatter="changeTypeFormat"
+ />
<el-table-column show-overflow-tooltip prop="changeReason" label="调岗理由" />
</el-table>
<pagination
@@ -807,11 +885,18 @@
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" width="55">
<template slot-scope="scope">
<span v-text="getIndex(scope.$index)" />
- </template>EmpLeaveInfo
+ </template>
+ EmpLeaveInfo
</el-table-column>
+ <el-table-column show-overflow-tooltip prop="deptName" label="部门/护卫点" />
<el-table-column show-overflow-tooltip prop="entryDate" label="入职日期" />
<el-table-column show-overflow-tooltip prop="dimissionDate" label="离职日期" />
- <el-table-column show-overflow-tooltip prop="dimissionType" label="离职类型" :formatter="dimissionTypeFormat" />
+ <el-table-column
+ show-overflow-tooltip
+ prop="dimissionType"
+ label="离职类型"
+ :formatter="dimissionTypeFormat"
+ />
<el-table-column show-overflow-tooltip prop="selfLeaveDay" label="自离天数" />
<el-table-column show-overflow-tooltip prop="reporter" label="报备人" />
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
@@ -886,9 +971,24 @@
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="insuranceId" label="" />
<el-table-column show-overflow-tooltip prop="applayDate" label="社保申请日期" width="180" />
<el-table-column show-overflow-tooltip prop="proposer" label="申请人" width="180" />
- <el-table-column show-overflow-tooltip prop="insuranceGaers" label="社保档位" :formatter="insuranceGaersFormat" />
- <el-table-column show-overflow-tooltip prop="reportStatus" label="是否已报告" :formatter="reportStatusFormat" />
- <el-table-column show-overflow-tooltip prop="applayStatus" label="状态" :formatter="applayStatusFormat" />
+ <el-table-column
+ show-overflow-tooltip
+ prop="insuranceGaers"
+ label="社保档位"
+ :formatter="insuranceGaersFormat"
+ />
+ <el-table-column
+ show-overflow-tooltip
+ prop="reportStatus"
+ label="是否已报告"
+ :formatter="reportStatusFormat"
+ />
+ <el-table-column
+ show-overflow-tooltip
+ prop="applayStatus"
+ label="状态"
+ :formatter="applayStatusFormat"
+ />
<el-table-column show-overflow-tooltip prop="auditor" label="审核人" width="180" />
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
</el-table>
@@ -923,21 +1023,39 @@
</template>
</el-table-column>
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="accidentId" label="" />
- <el-table-column show-overflow-tooltip prop="injuredTime" label="受伤日期" width="100" />
- <el-table-column show-overflow-tooltip prop="injuredAddress" label="受伤地点" width="100" />
+ <el-table-column show-overflow-tooltip prop="injuredTime" label="受伤日期" width="110">
+ <template slot-scope="scope">
+ <span class="table-button" @click="editAccidentCases(scope.row,9)">{{
+ scope.row.injuredTime
+ }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column show-overflow-tooltip prop="injuredAddress" label="受伤地点" width="200" />
<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="100" />
- <el-table-column show-overflow-tooltip prop="hospitalName" label="就诊医院" width="100" />
- <el-table-column show-overflow-tooltip prop="treatmentName" label="就诊科室" width="100" />
- <el-table-column show-overflow-tooltip prop="hospitalizatioFlag" label="是否住院" width="80" :formatter="hospitalizatioFlagFormat" />
- <el-table-column show-overflow-tooltip prop="bedNumb" label="床号" width="60" />
+ <el-table-column show-overflow-tooltip prop="injuredDescribe" label="受伤经过描述" width="300" />
+ <el-table-column show-overflow-tooltip prop="injuredDiacrisis" label="意外险诊断" width="150" />
+ <!-- <el-table-column show-overflow-tooltip prop="hospitalName" label="就诊医院" width="100" />-->
+ <!-- <el-table-column show-overflow-tooltip prop="treatmentName" label="就诊科室" width="100" />-->
+ <el-table-column
+ show-overflow-tooltip
+ prop="hospitalizatioFlag"
+ label="是否住院"
+ width="80"
+ :formatter="hospitalizatioFlagFormat"
+ />
+ <!-- <el-table-column show-overflow-tooltip prop="bedNumb" label="床号" width="60" />-->
<el-table-column show-overflow-tooltip prop="reprotTime" label="报案时间" width="100" />
- <el-table-column show-overflow-tooltip prop="submitTime" label="递交资料时间" width="120" />
- <el-table-column show-overflow-tooltip prop="sbumitBy" label="递交人" width="100" />
+ <!-- <el-table-column show-overflow-tooltip prop="submitTime" label="递交资料时间" width="120" />-->
+ <!-- <el-table-column show-overflow-tooltip prop="sbumitBy" label="递交人" width="100" />-->
<el-table-column show-overflow-tooltip prop="expensesFee" label="医疗总费用" width="100" />
<el-table-column show-overflow-tooltip prop="innsureFee" label="保险赔付费用" width="120" />
- <el-table-column show-overflow-tooltip prop="settleStatus" label="是否结案" width="120" :formatter="settleStatusFormat" />
+ <el-table-column
+ show-overflow-tooltip
+ prop="settleStatus"
+ label="是否结案"
+ width="120"
+ :formatter="settleStatusFormat"
+ />
</el-table>
<pagination
v-show="accidentCasesDatatotal>0"
@@ -970,21 +1088,37 @@
</template>
</el-table-column>
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="occupationalId" label="" />
- <el-table-column show-overflow-tooltip prop="injuredTime" label="受伤日期" width="120" />
+ <el-table-column show-overflow-tooltip prop="injuredTime" label="受伤日期" width="110">
+ <template slot-scope="scope">
+ <span class="table-button" @click="editOccupational(scope.row)">{{ scope.row.injuredTime }}</span>
+ </template>
+ </el-table-column>
<el-table-column show-overflow-tooltip prop="injuredAddress" label="受伤地点" width="100" />
<el-table-column show-overflow-tooltip prop="injuredPart" label="受伤部位" width="100" />
<el-table-column show-overflow-tooltip prop="injuredDescribe" label="受伤经过描述" width="140" />
<el-table-column show-overflow-tooltip prop="injuredDiacrisis" label="工伤诊断" width="80" />
<el-table-column show-overflow-tooltip prop="hospitalName" label="就诊医院" width="120" />
<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="hospitalizatioFlag"
+ label="是否住院"
+ width="80"
+ :formatter="hospitalizatioFlagFormat"
+ />
<el-table-column show-overflow-tooltip prop="bedNumb" label="床号" width="80" />
<el-table-column show-overflow-tooltip prop="reportTime" label="报案时间" width="100" />
<el-table-column show-overflow-tooltip prop="submitTime" label="递交资料时间" width="120" />
<el-table-column show-overflow-tooltip prop="sbumitBy" label="递交人" width="80" />
<el-table-column show-overflow-tooltip prop="expensesFee" label="医疗总费用" width="100" />
<el-table-column show-overflow-tooltip prop="compensated" label="已赔付医药费用" width="120" />
- <el-table-column show-overflow-tooltip prop="settleStatus" label="是否结案" width="120" :formatter="settleStatusFormat" />
+ <el-table-column
+ show-overflow-tooltip
+ prop="settleStatus"
+ label="是否结案"
+ width="120"
+ :formatter="settleStatusFormat"
+ />
</el-table>
<pagination
v-show="occupationalDatatotal>0"
@@ -997,7 +1131,7 @@
</div>
<div ref="lzaj" class="lzaj">
<div class="jbxxTitle">
- 劳资案件
+ 仲裁案件
</div>
<div class="jbxxCon">
@@ -1018,12 +1152,23 @@
</el-table-column>
<el-table-column v-if="fsnumShow" show-overflow-tooltip prop="arbitrationId" label="" />
<el-table-column show-overflow-tooltip prop="arbitrationDate" label="仲裁日期" width="100" />
- <el-table-column show-overflow-tooltip prop="arbitrationType" label="仲裁类型" :formatter="arbitrationTypeFormat" />
+ <el-table-column
+ show-overflow-tooltip
+ prop="arbitrationType"
+ label="仲裁类型"
+ :formatter="arbitrationTypeFormat"
+ />
<el-table-column show-overflow-tooltip prop="arbitrationReason" label="仲裁事由" />
<el-table-column show-overflow-tooltip prop="reporter" label="报备人" width="100" />
<el-table-column show-overflow-tooltip prop="remark" label="备注" />
<el-table-column show-overflow-tooltip prop="arbitrationPay" label="仲裁赔付(元)" width="180" />
- <el-table-column show-overflow-tooltip prop="arbitrationStatus" label="是否结案" width="100" :formatter="arbitrationStatusFormat" />
+ <el-table-column
+ show-overflow-tooltip
+ prop="arbitrationStatus"
+ label="是否结案"
+ width="100"
+ :formatter="arbitrationStatusFormat"
+ />
<el-table-column show-overflow-tooltip prop="settleDate" label="案结日期" width="100" />
</el-table>
<pagination
@@ -1243,12 +1388,28 @@
:preview-src-list="srcList"
@click="clickImg(node)"
/>
- <el-tooltip v-if="'tif,bmp,jpg,png,gif'.indexOf(node.filesformat) == -1" class="item" effect="dark" :content="node.filesname" placement="bottom">
+ <el-tooltip
+ v-if="'tif,bmp,jpg,png,gif'.indexOf(node.filesformat) == -1"
+ class="item"
+ effect="dark"
+ :content="node.filesname"
+ placement="bottom"
+ >
<div style="padding-top: 14px;text-align: center">
- <el-checkbox v-model="checkedArr[index * 8 + nodeIndex].isChecked" class="myRedCheckBox">{{ node.filesname }}</el-checkbox>
+ <el-checkbox
+ v-model="checkedArr[index * 8 + nodeIndex].isChecked"
+ class="myRedCheckBox"
+ >{{ node.filesname }}
+ </el-checkbox>
</div>
</el-tooltip>
- <el-tooltip v-if="'tif,bmp,jpg,png,gif'.indexOf(node.filesformat) != -1" class="item" effect="dark" :content="node.filesname" placement="bottom">
+ <el-tooltip
+ v-if="'tif,bmp,jpg,png,gif'.indexOf(node.filesformat) != -1"
+ class="item"
+ effect="dark"
+ :content="node.filesname"
+ placement="bottom"
+ >
<div style="padding-top: 14px;">
<el-image
style="width: 100px; height: 80px;margin-top: -10px;"
@@ -1256,7 +1417,10 @@
:preview-src-list="srcList"
@click="clickImg(node)"
/>
- <el-checkbox v-model="checkedArr[index * 8 + nodeIndex].isChecked" class="myRedCheckBox">
+ <el-checkbox
+ v-model="checkedArr[index * 8 + nodeIndex].isChecked"
+ class="myRedCheckBox"
+ >
{{ node.filesid }}
{{ node.filesname }}
</el-checkbox>
@@ -1993,7 +2157,6 @@
<el-form
ref="accidentCasesForm"
:model="accidentCasesForm"
- :rules="accidentCasesRules"
label-position="right"
label-width="120px"
>
@@ -2133,19 +2296,21 @@
/>
</el-select>
</el-form-item>
+ <el-form-item label="备注">
+ <el-input v-model="accidentCasesForm.remark" />
+ </el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
- <el-button type="primary" @click="putAccidentCases('accidentCasesForm')">保 存</el-button>
-
+ <el-button v-if="dialogshowArr[9].read" type="primary" @click="putAccidentCases('accidentCasesForm')">保 存
+ </el-button>
</div>
</el-dialog>
<el-dialog title="工伤案件" append-to-body :visible.sync="dialogshowArr[10].show" width="50%">
<el-form
ref="occupationalForm"
:model="occupationalForm"
- :rules="occupationalRules"
label-position="right"
label-width="140px"
>
@@ -2334,11 +2499,12 @@
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
- <el-button type="primary" @click="putOccupational('occupationalForm')">保 存</el-button>
+ <el-button v-if="dialogshowArr[10].read" type="primary" @click="putOccupational('occupationalForm')">保 存
+ </el-button>
</div>
</el-dialog>
- <el-dialog title="劳资案件" append-to-body :visible.sync="dialogshowArr[11].show" width="50%">
+ <el-dialog title="仲裁案件" append-to-body :visible.sync="dialogshowArr[11].show" width="50%">
<el-form
ref="laborTroubleForm"
:model="laborTroubleForm"
@@ -2580,6 +2746,78 @@
</div>
</el-dialog>
</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>
@@ -2589,10 +2827,12 @@
import Pagination from '@/components/Pagination'
import { getToken } from '@/utils/auth'
import { pages } from '@/settings'
+import dictMixin from '../../utils/dictMixin'
export default {
name: 'ArchivesEdit',
components: { Treeselect, Pagination },
+ mixins: [dictMixin],
props: {
dialogVisible: {
type: Boolean,
@@ -2670,10 +2910,12 @@
show: false
},
{
- show: false
+ show: false,
+ read: false
},
{
- show: false
+ show: false,
+ read: false
},
{
show: false
@@ -2686,6 +2928,12 @@
}
],
empBaseInfoImageUrl: '',
+ // 上传方式选择弹窗
+ uploadChoiceDialogVisible: false,
+ // 摄像头相关
+ cameraDialogVisible: false,
+ capturedImage: '',
+ stream: null,
rules: {
archivesNumb: [{ required: true, message: '请输入档案号', trigger: 'blur' }, {
max: 20,
@@ -3164,7 +3412,6 @@
creator: '',
modifyTime: '',
modifier: '',
-
empStatus: 0,
version: ''
},
@@ -3419,7 +3666,8 @@
modifyTime: '',
modifier: '',
empStatus: 0,
- version: ''
+ version: '',
+ annualLeave: ''
},
fsnumShow: false,
badRecordForm: {
@@ -3462,34 +3710,83 @@
{ type: 'dic_credentials' },
{ type: 'password' },
{ type: 'implicit' }
- ],
- statusOptions: [],
- empTypeOptions: [],
- nationOptions: [],
- marriageOptions: [],
- educationOptions: [],
- nativePlaceOptions: [],
- archivesStatusOptions: [],
- insuranceTypeOptions: [],
- empCardStatusOptions: [],
- handbookStatusOptions: [],
- ecgOptions: [],
- certificateListOptions: [],
- physicalExamTypeOptions: [],
- contractStatusOptions: [],
- leaveTypeOptions: [],
- insuranceGaersOptions: [],
- applayStatusOptions: [],
- reportStatusOptions: [],
- hospitalizatioFlagOptions: [],
- settleStatusOptions: [],
- arbitrationTypeOptions: [],
- changeTypeOptions: [],
- dimissionTypeOptions: [],
- sexOptions: []
+ ]
}
},
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')
+ },
+ certificateListOptions() {
+ return this.getDictOptions('certificateList')
+ },
+ physicalExamTypeOptions() {
+ return this.getDictOptions('PHYSICALEXAMTYPE')
+ },
+ ecgOptions() {
+ return this.getDictOptions('ECG')
+ },
+ contractStatusOptions() {
+ return this.getDictOptions('CONTRACTSTATUS')
+ },
+ leaveTypeOptions() {
+ return this.getDictOptions('LEAVETYPE')
+ },
+ insuranceGaersOptions() {
+ return this.getDictOptions('INSURANCETYPE')
+ },
+ applayStatusOptions() {
+ return this.getDictOptions('applayStatus')
+ },
+ reportStatusOptions() {
+ return this.getDictOptions('reportStatus')
+ },
+ hospitalizatioFlagOptions() {
+ return this.getDictOptions('hospitalizatioFlag')
+ },
+ settleStatusOptions() {
+ return this.getDictOptions('settleStatus')
+ },
+ arbitrationTypeOptions() {
+ return this.getDictOptions('ZCTYPE')
+ },
+ changeTypeOptions() {
+ return this.getDictOptions('changeType')
+ },
+ dimissionTypeOptions() {
+ return this.getDictOptions('LZTYPE')
+ },
+ sexOptions() {
+ return this.getDictOptions('sex')
+ },
isVisible: {
get() {
return this.dialogVisible
@@ -3502,79 +3799,8 @@
},
mounted() {
this.initDept()
- /* 政治面貌*/
- 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'])
},
methods: {
typeFormat(row, column) {
@@ -3987,6 +4213,24 @@
certificateList = val.certificateList.split(',')
val.certificateList = certificateList
}
+
+ // 清空所有模块数据,确保切换员工后点击标签会重新加载
+ this.workExperienceData = []
+ this.physicalExamData = []
+ this.contractInfoData = []
+ this.jobChangeData = []
+ this.leaveInfoData = []
+ this.resignData = []
+ this.dimissionAttendData = []
+ this.dimissionLogData = []
+ this.unemploymentData = []
+ this.insuranceData = []
+ this.accidentCasesData = []
+ this.occupationalData = []
+ this.laborTroubleData = []
+ this.badRecordData = []
+ this.remarkInfoData = []
+
this.empBaseInfoForm = { ...val }
this.empBaseInfoImageUrl = pages.getEmpBaseInfoImage + this.empBaseInfoForm.empId
this.fileDate.empId = this.empBaseInfoForm.empId
@@ -4004,22 +4248,8 @@
this.physicalExamForm = { ...val }
this.workExperienceForm = { ...val }
this.badRecordForm = { ...val }
+ // 只加载附件数据(基本信息已在val中),其他模块懒加载
this.initlabel()
- this.initphysicalExamData()
- this.initList() // 工作经历
- this.initjobChangeData() // 调岗记录
- this.initdimissionLogData() // 入离职记录
- this.initcontractInfoData() // 合同信息
- this.initleaveInfoData() // 请假记录
- this.initresignData() // 辞职申请
- this.initunemploymentData() // 失业金领取
- this.initinsuranceData() // 社保申请
- this.initremarkInfoData() // 备注
- this.initlaborTroubleData() // 劳资案件
- this.initoccupationalData() // 工伤案件
- this.initbadRecordData() // 不良记录
- this.initaccidentCasesData() // 意外险案件
- this.initdimissionAttendData() // 考勤情况
},
initphysicalExamData(params = {}) {
params.pageSize = this.pagination.size
@@ -4686,6 +4916,149 @@
getIndex($index) {
return (this.pagination.num - 1) * this.pagination.size + $index + 1
},
+ // 打开上传方式选择弹窗
+ openUploadChoice() {
+ this.uploadChoiceDialogVisible = true
+ },
+ // 选择拍照上传
+ choiceCamera() {
+ this.uploadChoiceDialogVisible = false
+ this.cameraDialogVisible = true
+ this.$nextTick(() => {
+ this.initCamera()
+ })
+ },
+ // 选择文件上传
+ choiceFile() {
+ this.uploadChoiceDialogVisible = false
+ // 创建隐藏的文件输入框
+ const input = document.createElement('input')
+ input.type = 'file'
+ input.accept = 'image/*'
+ input.onchange = (e) => {
+ const file = e.target.files[0]
+ if (file) {
+ this.handleFileUpload(file)
+ }
+ }
+ input.click()
+ },
+ // 处理文件上传
+ handleFileUpload(file) {
+ // 验证文件类型
+ const isImage = file.type.startsWith('image/')
+ if (!isImage) {
+ this.$message.error('请上传图片文件')
+ return
+ }
+ // 验证文件大小(限制10MB)
+ const isLt10M = file.size / 1024 / 1024 < 10
+ if (!isLt10M) {
+ this.$message.error('图片大小不能超过10MB')
+ return
+ }
+ // 生成预览URL
+ const imageUrl = URL.createObjectURL(file)
+ this.empBaseInfoImageUrl = imageUrl
+ // 读取文件为Base64
+ const reader = new FileReader()
+ reader.onload = (e) => {
+ this.empBaseInfoForm.imagePath = e.target.result
+ this.$message.success('照片上传成功')
+ }
+ reader.readAsDataURL(file)
+ },
+ // 打开摄像头
+ openCamera() {
+ this.cameraDialogVisible = true
+ this.$nextTick(() => {
+ this.initCamera()
+ })
+ },
+ // 初始化摄像头
+ async initCamera() {
+ try {
+ // 请求摄像头权限
+ this.stream = await navigator.mediaDevices.getUserMedia({
+ video: {
+ width: { ideal: 640 },
+ height: { ideal: 480 },
+ facingMode: 'user' // 前置摄像头
+ },
+ audio: false
+ })
+
+ // 将视频流绑定到 video 元素
+ const video = this.$refs.video
+ if (video) {
+ video.srcObject = this.stream
+ }
+ } catch (error) {
+ this.$message.error('无法访问摄像头,请检查摄像头权限设置')
+ console.error('摄像头初始化失败:', error)
+ }
+ },
+ // 拍照
+ takePhoto() {
+ const video = this.$refs.video
+ const canvas = this.$refs.canvas
+
+ if (!video || !canvas) return
+
+ // 设置画布尺寸
+ canvas.width = video.videoWidth || 640
+ canvas.height = video.videoHeight || 480
+
+ // 绘制视频帧到画布
+ const ctx = canvas.getContext('2d')
+ ctx.drawImage(video, 0, 0, canvas.width, canvas.height)
+
+ // 转换为图片数据
+ this.capturedImage = canvas.toDataURL('image/jpeg', 0.9)
+
+ // 停止摄像头
+ this.stopCamera()
+ },
+ // 重拍
+ retakePhoto() {
+ this.capturedImage = ''
+ this.initCamera()
+ },
+ // 确认使用照片
+ confirmPhoto() {
+ if (this.capturedImage) {
+ // 设置图片预览
+ this.empBaseInfoImageUrl = this.capturedImage
+
+ // 设置表单数据(Base64格式)
+ this.empBaseInfoForm.imagePath = this.capturedImage
+
+ // 关闭弹窗
+ this.closeCamera()
+
+ this.$message.success('照片已保存')
+ }
+ },
+ // 关闭摄像头
+ closeCamera() {
+ this.stopCamera()
+ this.cameraDialogVisible = false
+ this.capturedImage = ''
+ },
+ // 停止摄像头流
+ stopCamera() {
+ if (this.stream) {
+ this.stream.getTracks().forEach(track => {
+ track.stop()
+ })
+ this.stream = null
+ }
+
+ const video = this.$refs.video
+ if (video) {
+ video.srcObject = null
+ }
+ },
cleanOccupational() {
this.occupationalForm.occupationalId = ''
this.occupationalForm.injuredTime = ''
@@ -5201,6 +5574,7 @@
this.accidentCasesForm.version = row.version
this.thisShowIndex = 9
this.dialogshowArr[9].show = true
+ this.dialogshowArr[9].read = false
},
editOccupational(row) {
this.isAdd = false
@@ -5251,6 +5625,7 @@
this.occupationalForm.remark = row.remark
this.thisShowIndex = 10
this.dialogshowArr[10].show = true
+ this.dialogshowArr[10].read = false
},
editLaborTrouble(row) {
this.isAdd = false
@@ -5488,57 +5863,120 @@
goAnchor: function(type) {
let item = 1
this.item = type
+ // 根据点击的菜单懒加载对应数据
switch (type) {
case 'jbxx':
item = 0
+ // 基本信息 - 已加载
break
case 'gzjl':
item = 1
+ // 工作经历 - 懒加载
+ if (!this.workExperienceData || this.workExperienceData.length === 0) {
+ this.initList()
+ }
break
case 'tjxx':
item = 2
+ // 体检信息 - 懒加载
+ if (!this.physicalExamData || this.physicalExamData.length === 0) {
+ this.initphysicalExamData()
+ }
break
case 'htxx':
item = 3
+ // 合同信息 - 懒加载
+ if (!this.contractInfoData || this.contractInfoData.length === 0) {
+ this.initcontractInfoData()
+ }
break
case 'tgjl':
item = 4
+ // 调岗记录 - 懒加载
+ if (!this.jobChangeData || this.jobChangeData.length === 0) {
+ this.initjobChangeData()
+ }
break
case 'qjjl':
item = 5
+ // 请假记录 - 懒加载
+ if (!this.leaveInfoData || this.leaveInfoData.length === 0) {
+ this.initleaveInfoData()
+ }
break
case 'czsq':
item = 6
+ // 辞职申请 - 懒加载
+ if (!this.resignData || this.resignData.length === 0) {
+ this.initresignData()
+ }
break
case 'lzdykq':
item = 7
+ // 离职当月考勤 - 懒加载
+ if (!this.dimissionAttendData || this.dimissionAttendData.length === 0) {
+ this.initdimissionAttendData()
+ }
break
case 'rlzjl':
item = 8
+ // 入离职记录 - 懒加载
+ if (!this.dimissionLogData || this.dimissionLogData.length === 0) {
+ this.initdimissionLogData()
+ }
break
case 'syjlq':
item = 9
+ // 失业金领取 - 懒加载
+ if (!this.unemploymentData || this.unemploymentData.length === 0) {
+ this.initunemploymentData()
+ }
break
case 'sbsq':
item = 10
+ // 社保申请 - 懒加载
+ if (!this.insuranceData || this.insuranceData.length === 0) {
+ this.initinsuranceData()
+ }
break
case 'ywxaj':
item = 11
+ // 意外险案件 - 懒加载
+ if (!this.accidentCasesData || this.accidentCasesData.length === 0) {
+ this.initaccidentCasesData()
+ }
break
case 'gsaj':
item = 12
+ // 工伤案件 - 懒加载
+ if (!this.occupationalData || this.occupationalData.length === 0) {
+ this.initoccupationalData()
+ }
break
case 'lzaj':
item = 13
+ // 仲裁案件 - 懒加载
+ if (!this.laborTroubleData || this.laborTroubleData.length === 0) {
+ this.initlaborTroubleData()
+ }
break
case 'bljl':
item = 14
+ // 不良记录 - 懒加载
+ if (!this.badRecordData || this.badRecordData.length === 0) {
+ this.initbadRecordData()
+ }
break
case 'bz':
item = 15
+ // 备注 - 懒加载
+ if (!this.remarkInfoData || this.remarkInfoData.length === 0) {
+ this.initremarkInfoData()
+ }
break
case 'jljt':
item = 16
+ // 记录截图及相关附件 - 已在initlabel中加载
break
}
this.$nextTick(() => {
@@ -5643,402 +6081,520 @@
}
</script>
<style lang="scss" scoped>
- .conDetails {
- display: flex;
- justify-content: space-between;
+.conDetails {
+ display: flex;
+ justify-content: space-between;
- .dadetails {
- width: 220px;
- padding: 10px;
- box-sizing: border-box;
+ .dadetails {
+ width: 220px;
+ padding: 10px;
+ box-sizing: border-box;
- .jbxxImg {
- width: 100px;
- height: 80px;
- }
-
- .title-da {
- padding-top: 8px;
- font-weight: 700;
- color: #333;
- height: 30px;
- line-height: 30px;
- }
-
+ .jbxxImg {
+ width: 100px;
+ height: 80px;
}
- .boxDetails {
- flex: 1;
- padding: 10px;
+ .title-da {
+ padding-top: 8px;
+ font-weight: 700;
+ color: #333;
+ height: 30px;
+ line-height: 30px;
+ }
+
+ }
+
+ .boxDetails {
+ flex: 1;
+ padding: 10px;
+ font-size: 16px;
+ height: 90vh;
+ overflow-y: scroll;
+
+ .jbxxTitle, .jbxxTitle2 {
+ height: 30px;
+ line-height: 30px;
+ padding-left: 15px;
+ //border-left: 4px solid #a00515;
+ margin: 30px 0 20px;
+ color: #000;
+ position: relative;
+ }
+
+ .jbxx .jbxxTitle {
+ margin: 20px 0;
+ }
+
+ .jbxxTitle::before,
+ .jbxxTitle2::before {
+ content: '';
+ position: absolute;
+ left: -10px;
+ top: 50%;
+ transform: translateY(-50%);
+ background-color: #a00515;
+ border-radius: 50%;
+ display: inline-block;
+ height: 15px;
+ width: 15px;
+ }
+
+ .jbxxTitle::after {
+
+ content: '';
+ position: absolute;
+ left: 100px;
+ top: 50%;
+ display: inline-block;
+ width: 80%;
+ height: 1px;
+ border: 1px dashed #ccc;
+ }
+
+ .el-table__header {
+ width: 100%;
+ }
+
+ //.jbxx{
+ // /deep/.el-form-item{
+ // display: flex;
+ // }
+ // /deep/.el-form-item__label{
+ // white-space: nowrap;
+ // width: 100px!important;
+ // }
+ // /deep/.el-form-item__content{
+ // margin-left: 10px!important;
+ // width: 80%!important;
+ // }
+ // .formjbxx{
+ // display: flex;
+ // flex-wrap: wrap;
+ // }
+ //}
+
+ }
+}
+
+.el-select {
+ width: 100%;
+}
+
+.el-autocomplete {
+ width: 100%;
+}
+
+.el-date-editor.el-input,
+.el-date-editor.el-input__inner {
+ width: 100%;
+}
+
+.el-main {
+ margin-top: 2%;
+}
+
+.app-main {
+ background-color: #ffffff;
+}
+
+.el-button,
+.el-button--primary {
+ background: #a32c30;
+ border-color: #a32c30;
+ color: #fff;
+ outline: none;
+}
+
+.zs-main .text-header {
+ line-height: 40px;
+}
+
+.el-card {
+ border: none;
+}
+
+.el-input-number {
+ width: 100%;
+}
+
+.clearfix:before,
+.clearfix:after {
+ display: table;
+ content: '';
+}
+
+.clearfix:after {
+ clear: both;
+}
+
+.add-folder {
+ text-align: initial;
+}
+
+.zs-main {
+ .search-title {
+ height: 50px;
+
+ .search {
+ position: relative;
+ top: 50%;
+ transform: translateY(-50%);
+ }
+
+ .title {
+ position: relative;
+ top: 40%;
+ transform: translateY(-50%);
+ }
+
+ .zs-title {
+ border-left: 4px solid #a32c30;
+ padding-left: 10px;
font-size: 16px;
- height: 90vh;
- overflow-y: scroll;
-
- .jbxxTitle,.jbxxTitle2 {
- height: 30px;
- line-height: 30px;
- padding-left: 15px;
- //border-left: 4px solid #a00515;
- margin: 30px 0 20px;
- color: #000;
- position: relative;
- }
-
- .jbxx .jbxxTitle {
- margin: 20px 0;
- }
-
- .jbxxTitle::before,
- .jbxxTitle2::before{
- content: '';
- position: absolute;
- left: -10px;
- top: 50%;
- transform: translateY(-50%);
- background-color: #a00515;
- border-radius: 50%;
- display: inline-block;
- height: 15px;
- width: 15px;
- }
-
- .jbxxTitle::after {
-
- content: '';
- position: absolute;
- left: 100px;
- top: 50%;
- display: inline-block;
- width: 80%;
- height: 1px;
- border: 1px dashed #ccc;
- }
-
- .el-table__header {
- width: 100%;
- }
-
- //.jbxx{
- // /deep/.el-form-item{
- // display: flex;
- // }
- // /deep/.el-form-item__label{
- // white-space: nowrap;
- // width: 100px!important;
- // }
- // /deep/.el-form-item__content{
- // margin-left: 10px!important;
- // width: 80%!important;
- // }
- // .formjbxx{
- // display: flex;
- // flex-wrap: wrap;
- // }
- //}
-
}
}
- .el-select {
- width: 100%;
+ .add-folder-but {
+ background: #fff !important;
+ color: #a32c30 !important;
+ margin-bottom: 20px;
}
- .el-autocomplete {
- width: 100%;
+ padding: 0 15px 0 15px;
+
+ .text-header {
+ line-height: 60px;
}
- .el-date-editor.el-input,
- .el-date-editor.el-input__inner {
- width: 100%;
+ .uploading-image {
+ width: 70%;
+ height: 70%;
+ display: block;
+ margin: 0 auto;
}
+}
- .el-main {
- margin-top: 2%;
- }
+.el-timeline-item__timestamp {
+ font-size: 15px;
+ color: #000;
+}
- .app-main {
- background-color: #ffffff;
- }
+/* 设置带边框的checkbox,选中后边框的颜色 */
+.myRedCheckBox.is-bordered.is-checked {
+ border-color: #a32c30;
+}
- .el-button,
- .el-button--primary {
- background: #a32c30;
- border-color: #a32c30;
- color: #fff;
- outline: none;
- }
+/* 设置选中后的文字颜色 */
+.myRedCheckBox .el-checkbox__input.is-checked + .el-checkbox__label {
+ color: #a32c30;
+}
- .zs-main .text-header {
- line-height: 40px;
- }
+/* 设置选中后对勾框的边框和背景颜色 */
+.myRedCheckBox .el-checkbox__input.is-checked .el-checkbox__inner,
+.myRedCheckBox .el-checkbox__input.is-indeterminate .el-checkbox__inner {
+ border-color: #a32c30;
+ background-color: #a32c30;
+}
- .el-card {
- border: none;
- }
+/* 设置checkbox获得焦点后,对勾框的边框颜色 */
+.myRedCheckBox .el-checkbox__input.is-focus .el-checkbox__inner {
+ border-color: #a32c30;
+}
- .el-input-number {
- width: 100%;
- }
+/* 设置鼠标经过对勾框,对勾框边框的颜色 */
+.myRedCheckBox .el-checkbox__inner:hover {
+ border-color: #a32c30;
+}
- .clearfix:before,
- .clearfix:after {
- display: table;
- content: '';
- }
+.myRedCheckBox .el-checkbox__label {
+ width: 90%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
- .clearfix:after {
- clear: both;
- }
+.avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ overflow: hidden;
+}
- .add-folder {
- text-align: initial;
- }
+.avatar-uploader .el-upload:hover {
+ border-color: #409eff;
+}
- .zs-main {
- .search-title {
- height: 50px;
+.avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 150px;
+ height: 150px;
+ line-height: 150px;
+ text-align: center;
+}
- .search {
- position: relative;
- top: 50%;
- transform: translateY(-50%);
- }
+.avatar {
+ width: 150px;
+ height: 150px;
+ display: block;
+}
- .title {
- position: relative;
- top: 40%;
- transform: translateY(-50%);
- }
+.avatar-uploader .el-upload-dragger .el-icon-upload {
+ margin: 20px 0 16px;
+}
- .zs-title {
- border-left: 4px solid #a32c30;
- padding-left: 10px;
- font-size: 16px;
- }
- }
+.avatar-uploader .el-upload-dragger {
+ border: none;
+ width: 100px;
+ height: 100px;
+}
- .add-folder-but {
- background: #fff !important;
- color: #a32c30 !important;
- margin-bottom: 20px;
- }
-
- padding: 0 15px 0 15px;
-
- .text-header {
- line-height: 60px;
- }
-
- .uploading-image {
- width: 70%;
- height: 70%;
- display: block;
- margin: 0 auto;
- }
- }
-
- .el-timeline-item__timestamp {
- font-size: 15px;
- color: #000;
- }
-
- /* 设置带边框的checkbox,选中后边框的颜色 */
- .myRedCheckBox.is-bordered.is-checked {
- border-color: #a32c30;
- }
-
- /* 设置选中后的文字颜色 */
- .myRedCheckBox .el-checkbox__input.is-checked + .el-checkbox__label {
- color: #a32c30;
- }
-
- /* 设置选中后对勾框的边框和背景颜色 */
- .myRedCheckBox .el-checkbox__input.is-checked .el-checkbox__inner,
- .myRedCheckBox .el-checkbox__input.is-indeterminate .el-checkbox__inner {
- border-color: #a32c30;
- background-color: #a32c30;
- }
-
- /* 设置checkbox获得焦点后,对勾框的边框颜色 */
- .myRedCheckBox .el-checkbox__input.is-focus .el-checkbox__inner {
- border-color: #a32c30;
- }
-
- /* 设置鼠标经过对勾框,对勾框边框的颜色 */
- .myRedCheckBox .el-checkbox__inner:hover {
- border-color: #a32c30;
- }
-
- .myRedCheckBox .el-checkbox__label {
- width: 90%;
- overflow: hidden;
- text-overflow:ellipsis;
- white-space: nowrap;
- }
-
- .avatar-uploader .el-upload {
- border: 1px dashed #d9d9d9;
- border-radius: 6px;
- cursor: pointer;
- position: relative;
- overflow: hidden;
- }
-
- .avatar-uploader .el-upload:hover {
- border-color: #409eff;
- }
-
- .avatar-uploader-icon {
- font-size: 28px;
- color: #8c939d;
- width: 150px;
- height: 150px;
- line-height: 150px;
- text-align: center;
- }
+// 头像包装器
+.avatar-wrapper {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-bottom: 10px;
.avatar {
width: 150px;
height: 150px;
- display: block;
- }
-
- .avatar-uploader .el-upload-dragger .el-icon-upload {
- margin: 20px 0 16px;
- }
-
- .avatar-uploader .el-upload-dragger {
- border: none;
- width: 100px;
- height: 100px;
- }
-
- .table-button {
- color: #a00515;
- display: inline-block;
- width: 45%;
+ border-radius: 4px;
cursor: pointer;
+ object-fit: cover;
+ border: 1px dashed #d9d9d9;
+
+ &:hover {
+ border-color: #409eff;
+ }
}
- .filter-item {
- margin-bottom: 10px;
- position: absolute;
- right: 20px;
- }
+ .avatar-uploader-placeholder {
+ width: 150px;
+ height: 150px;
+ border: 1px dashed #d9d9d9;
+ border-radius: 4px;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ cursor: pointer;
+ background-color: #fafafa;
- .jbxx-ul {
- margin-top: 10px;
- font-size: 14px;
- list-style: none;
- padding-left: 10px !important;
-
- >li:last-of-type {
- > div:first-of-type {
- position: absolute;
- left: 4px;
- height: 100%;
- border-left: 0;
- }
+ &:hover {
+ border-color: #409eff;
+ background-color: #f0f9ff;
}
- li {
- padding-bottom: 5px;
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ line-height: 1;
+ 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 {
+ text-align: center;
+
+ .camera-video {
+ width: 100%;
+ max-width: 600px;
+ height: auto;
+ border-radius: 4px;
+ background: #000;
+ }
+
+ .captured-image {
+ width: 100%;
+ max-width: 600px;
+ height: auto;
+ border-radius: 4px;
+ }
+}
+
+.table-button {
+ color: #a00515;
+ display: inline-block;
+ width: 45%;
+ cursor: pointer;
+}
+
+.filter-item {
+ margin-bottom: 10px;
+ position: absolute;
+ right: 20px;
+}
+
+.jbxx-ul {
+ margin-top: 10px;
+ font-size: 14px;
+ list-style: none;
+ padding-left: 10px !important;
+
+ > li:last-of-type {
+ > div:first-of-type {
+ position: absolute;
+ left: 4px;
+ height: 100%;
+ border-left: 0;
+ }
+ }
+
+ li {
+ padding-bottom: 5px;
+ position: relative;
+ height: 35px;
+ box-sizing: border-box;
+
+ > div:first-of-type {
+ position: absolute;
+ left: 4px;
+ height: 100%;
+ border-left: 2px solid #dfe4ed;
+ }
+
+ > div:last-of-type {
+ color: #333;
+ cursor: pointer;
position: relative;
height: 35px;
box-sizing: border-box;
+ padding-left: 28px !important;
- > div:first-of-type {
- position: absolute;
- left: 4px;
- height: 100%;
- border-left: 2px solid #dfe4ed;
- }
-
- > div:last-of-type {
- color: #333;
+ &:hover {
+ color: #a00515;
cursor: pointer;
- position: relative;
- height: 35px;
- box-sizing: border-box;
- padding-left: 28px !important;
- &:hover {
- color: #a00515;
- cursor: pointer;
- }
- .light {
- color: #a00515;
- }
}
- .item-node {
- left: -1px;
- width: 12px;
- height: 12px;
- position: absolute;
- background-color: #dfe4ed;
- border-radius: 50%;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
+ .light {
+ color: #a00515;
}
}
+
+ .item-node {
+ left: -1px;
+ width: 12px;
+ height: 12px;
+ position: absolute;
+ background-color: #dfe4ed;
+ border-radius: 50%;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ }
}
+}
</style>
<style lang="scss">
- .da-dialog {
- button.el-dialog__headerbtn {
- height: 30px;
- width: 30px;
- background-color: #a00515;
- opacity: 0.8;
- line-height: 30px;
- border-radius: 50%;
- i {
- color: #fff !important;
- }
- &:hover {
- opacity: 0.5;
- }
+.da-dialog {
+ button.el-dialog__headerbtn {
+ height: 30px;
+ width: 30px;
+ background-color: #a00515;
+ opacity: 0.8;
+ line-height: 30px;
+ border-radius: 50%;
+
+ i {
+ color: #fff !important;
}
- .el-pagination {
- width: 98%;
- text-align: right;
- }
- .el-aside {
- height: 750px;
- overflow: hidden;
- }
- li.el-timeline-item {
- padding-bottom: 1px;
- height: 35px;
- }
- .el-dialog__title {
- font-weight: 700;
- }
- .el-dialog__body {
- padding: 10px 20px;
+
+ &:hover {
+ opacity: 0.5;
}
}
- .el-dialog.is-fullscreen {
+
+ .el-pagination {
+ width: 98%;
+ text-align: right;
+ }
+
+ .el-aside {
+ height: 750px;
overflow: hidden;
}
- .formjbxx {
- .el-input.is-disabled .el-input__inner {
- background-color: #fff !important;
- color: #333 !important;
- }
+ li.el-timeline-item {
+ padding-bottom: 1px;
+ height: 35px;
}
- .pri-del-btn {
- background-color: rgb(64, 158, 255);
- border-color: rgb(64, 158, 255);
+
+ .el-dialog__title {
+ font-weight: 700;
}
+
+ .el-dialog__body {
+ padding: 10px 20px;
+ }
+}
+
+.el-dialog.is-fullscreen {
+ overflow: hidden;
+}
+
+.formjbxx {
+ .el-input.is-disabled .el-input__inner {
+ background-color: #fff !important;
+ color: #333 !important;
+ }
+}
+
+.pri-del-btn {
+ background-color: rgb(64, 158, 255);
+ border-color: rgb(64, 158, 255);
+}
</style>
--
Gitblit v1.8.0