Merge remote-tracking branch 'origin/master'
| | |
| | | // tx-manager控制台 |
| | | txUrl: 'http://localhost:8501/admin/index.html#/login', |
| | | // 文件上传地址 |
| | | filesUploadUrl: 'http://120.24.23.155:8301/hr/filesUpload' |
| | | filesUploadUrl: 'http://120.24.23.155:8301/hr/filesUpload', |
| | | // 个人文件上传地址 |
| | | uploadSinglePath: 'http://120.24.23.155:8301/hr/empAccessory' |
| | | } |
| | | } |
| | |
| | | } |
| | | return { birth: birth, sex: sex, age: age } |
| | | } |
| | | /** |
| | | * 计算工龄 |
| | | * @param {*} entryDate 入职日期 |
| | | */ |
| | | export function calculateSeniority(val) { |
| | | // eslint-disable-next-line eqeqeq |
| | | if (val.length === 0) { |
| | | return 0 |
| | | } |
| | | var myDate = new Date() |
| | | var month = myDate.getMonth() + 1 |
| | | var day = myDate.getDate() |
| | | var entryDate = new Date(val) |
| | | var age = myDate.getFullYear() - entryDate.getFullYear() |
| | | if (entryDate.getMonth < month || entryDate.getMonth === month && entryDate.getDay <= day) { |
| | | age++ |
| | | } |
| | | if (age <= 0) { |
| | | age = 0 |
| | | } |
| | | return age |
| | | } |
| | |
| | | import 'nprogress/nprogress.css' |
| | | |
| | | // 请求超时时间,10s |
| | | const requestTimeOut = 10 * 1000 |
| | | const requestTimeOut = 20 * 1000 |
| | | const success = 200 |
| | | // 更换令牌的时间区间 |
| | | const checkRegion = 5 * 60 * 1000 |
| | |
| | | <p>超龄员工人数</p> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="4"> |
| | | <el-card shadow="always" class="card-info" @click.native="showXzyg('离职员工总数','6')"> |
| | | <p class="card-number">{{ this.total.lzyg }}</p> |
| | | <p>离职员工总数</p> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="4"> |
| | | <el-card shadow="always" class="card-info" @click.native="showXzyg('辞职申请人数','7')"> |
| | | <p class="card-number">{{ this.total.czyg }}</p> |
| | |
| | | <p>公司辞退人数</p> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="4"> |
| | | <el-card shadow="always" class="card-info" @click.native="showht('有效合同','11')"> |
| | | <p class="card-number">{{ this.total.yxht }}</p> |
| | |
| | | <p>到期合同</p> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | |
| | | <el-col :span="4"> |
| | | <el-card shadow="always" class="card-info" @click.native="showht('新签合同','13')"> |
| | | <p class="card-number">{{ this.total.xinqht }}</p> |
| | |
| | | <p>解除合同</p> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="4"> |
| | | <el-card shadow="always" class="card-info" @click.native="showcq('出勤人数','1')"> |
| | | <p class="card-number">{{ this.total.cqrs }}</p> |
| | |
| | | <p>员工体验</p> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | |
| | | <el-col :span="4"> |
| | | <el-card shadow="always" class="card-info" @click.native="showcq('员工加班','2')"> |
| | | <p class="card-number">{{ this.total.ygjb }}</p> |
| | |
| | | <p>员工旷工</p> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="4"> |
| | | <el-card shadow="always" class="card-info" @click.native="showlz('劳资案件','1')"> |
| | | <p class="card-number">{{ this.total.lzaj }}</p> |
| | |
| | | <p>社保申请</p> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | |
| | | <el-col :span="4"> |
| | | <el-card shadow="always" class="card-info" @click.native="showsyj('失业金案件','3')"> |
| | | <p class="card-number">{{ this.total.syj }}</p> |
| | | <p>失业金案件</p> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="4"> |
| | | <el-card shadow="always" class="card-info" @click.native="showXzyg('身份证到期','11')"> |
| | | <p class="card-number">{{ this.total.sfz }}</p> |
| | |
| | | <p>不良记录</p> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | <on-the-job-user |
| | | ref="jobUser" |
| | |
| | | <el-form ref="empBaseInfoForm" :model="empBaseInfoForm" :rules="rules" label-position="right" label-width="120px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="档案号"> |
| | | <el-form-item label="档案号" prop="archivesNumb"> |
| | | <el-input v-model="empBaseInfoForm.archivesNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="员工编号" prop="empNumb"> |
| | | <el-input v-model="empBaseInfoForm.empNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="身份证号码"> |
| | | <el-form-item label="身份证号码" prop="certificateNumb"> |
| | | <el-input |
| | | v-model="empBaseInfoForm.certificateNumb" |
| | | @input="generateUserInfo(0,empBaseInfoForm.certificateNumb)" |
| | |
| | | <el-option label="临时工" value="2" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="民族"> |
| | | <el-form-item label="民族" prop="nation"> |
| | | <el-select v-model="empBaseInfoForm.nation" placeholder="请选择民族"> |
| | | <el-option label="汉族" value="01" /> |
| | | <el-option label="蒙古族" value="02" /> |
| | |
| | | <el-option label="外国民族" value="98" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="婚姻状态"> |
| | | <el-form-item label="婚姻状态" prop="marriage"> |
| | | <el-select v-model="empBaseInfoForm.marriage" placeholder="请选择婚姻状态"> |
| | | <el-option label="未婚" value="1" /> |
| | | <el-option label="已婚" value="2" /> |
| | |
| | | <el-option label="其它" value="9" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="身高(cm)"> |
| | | <el-form-item label="身高(cm)" prop="stature"> |
| | | <el-input v-model="empBaseInfoForm.stature" /> |
| | | </el-form-item> |
| | | <el-form-item label="政治面貌"> |
| | | <el-form-item label="政治面貌" prop="politics"> |
| | | <el-select v-model="empBaseInfoForm.politics" placeholder="请选择政治面貌"> |
| | | <el-option label="中共党员" value="01" /> |
| | | <el-option label="预备党员" value="02" /> |
| | |
| | | <el-option label="群众" value="13" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="最高学历"> |
| | | <el-form-item label="最高学历" prop="education"> |
| | | <el-select v-model="empBaseInfoForm.education" placeholder="请选择最高学历"> |
| | | <el-option label="博士" value="10" /> |
| | | <el-option label="硕士" value="11" /> |
| | |
| | | <el-option label="无学历" value="91" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="籍贯"> |
| | | <el-form-item label="籍贯" prop="nativePlaceName"> |
| | | <el-autocomplete |
| | | v-model="empBaseInfoForm.nativePlaceName" |
| | | class="inline-input" |
| | |
| | | @select="placeNameSelect" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="现住址"> |
| | | <el-form-item label="现住址" prop="currentAddress"> |
| | | <el-input v-model="empBaseInfoForm.currentAddress" /> |
| | | </el-form-item> |
| | | <el-form-item label="电话号码"> |
| | | <el-form-item label="电话号码" prop="telePhone"> |
| | | <el-input v-model="empBaseInfoForm.telePhone" /> |
| | | </el-form-item> |
| | | <el-form-item label="招聘介绍人"> |
| | | <el-form-item label="招聘介绍人" prop="introducer"> |
| | | <el-input v-model="empBaseInfoForm.introducer" /> |
| | | </el-form-item> |
| | | <el-form-item label="银行名称"> |
| | | <el-form-item label="银行名称" prop="bankName"> |
| | | <el-input v-model="empBaseInfoForm.bankName" /> |
| | | </el-form-item> |
| | | <el-form-item label="保险类型"> |
| | | <el-form-item label="保险类型" prop="insuranceType"> |
| | | <el-select v-model="empBaseInfoForm.insuranceType" placeholder="请选择保险类型"> |
| | | <el-option label="(深户)五险一档" value="1" /> |
| | | <el-option label="(非深户)五险一档" value="2" /> |
| | |
| | | <el-option label="(非深户)四险一档" value="5" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="家庭成员及关系"> |
| | | <el-form-item label="家庭成员及关系" prop="family"> |
| | | <el-input v-model="empBaseInfoForm.family" /> |
| | | </el-form-item> |
| | | <el-form-item label="紧急联系电话"> |
| | | <el-form-item label="紧急联系电话" prop="urgencyPhone"> |
| | | <el-input v-model="empBaseInfoForm.urgencyPhone" /> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-option label="女" value="2" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="身份证有效期"> |
| | | <el-input v-model="empBaseInfoForm.certificateValidity" /> |
| | | <el-form-item label="身份证有效期" prop="certificateValidity"> |
| | | <el-date-picker |
| | | v-model="empBaseInfoForm.certificateValidity" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择日期" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="年龄"> |
| | | <el-form-item label="年龄" prop="age"> |
| | | <el-input v-model="empBaseInfoForm.age" /> |
| | | </el-form-item> |
| | | <el-form-item label="出生日期"> |
| | | <el-form-item label="出生日期" prop="birthdate"> |
| | | <el-date-picker |
| | | v-model="empBaseInfoForm.birthdate" |
| | | type="date" |
| | |
| | | placeholder="选择日期" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="入职日期"> |
| | | <el-form-item label="入职日期" prop="entryDate"> |
| | | <el-date-picker |
| | | v-model="empBaseInfoForm.entryDate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择日期" |
| | | @input="calculateSeniority" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="入司工龄"> |
| | | <el-form-item label="入司工龄" prop="seniority"> |
| | | <el-input v-model="empBaseInfoForm.seniority" /> |
| | | </el-form-item> |
| | | <el-form-item label="户籍地址"> |
| | | <el-form-item label="户籍地址" prop="censusAddress"> |
| | | <el-input v-model="empBaseInfoForm.censusAddress" /> |
| | | </el-form-item> |
| | | <el-form-item label="保安员证号"> |
| | | <el-form-item label="保安员证号" prop="guardNumb"> |
| | | <el-input v-model="empBaseInfoForm.guardNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="保安员回执"> |
| | | <el-form-item label="保安员回执" prop="returnReceipt"> |
| | | <el-input v-model="empBaseInfoForm.returnReceipt" /> |
| | | </el-form-item> |
| | | <el-form-item label="档案情况"> |
| | | <el-form-item label="档案情况" prop="archivesStatus"> |
| | | <el-select v-model="empBaseInfoForm.archivesStatus" placeholder="请选择档案情况"> |
| | | <el-option label="未移交" value="0" /> |
| | | <el-option label="已移交" value="1" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="银行账号"> |
| | | <el-form-item label="银行账号" prop="bankNumb"> |
| | | <el-input v-model="empBaseInfoForm.bankNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="社保电脑号"> |
| | | <el-form-item label="社保电脑号" prop="socialNumb"> |
| | | <el-input v-model="empBaseInfoForm.socialNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="员工手册"> |
| | | <el-form-item label="员工手册" prop="handbookStatus"> |
| | | <el-select v-model="empBaseInfoForm.handbookStatus" placeholder="请选择员工手册"> |
| | | <el-option label="未发" value="0" /> |
| | | <el-option label="已发" value="1" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="工作证"> |
| | | <el-form-item label="工作证" prop="empCardStatus"> |
| | | <el-select v-model="empBaseInfoForm.empCardStatus" placeholder="请选择工作证"> |
| | | <el-option label="未发" value="0" /> |
| | | <el-option label="已发" value="1" /> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="相关证件"> |
| | | <el-form-item label="相关证件" prop="certificateList"> |
| | | <el-select v-model="empBaseInfoForm.certificateList" placeholder="请选择相关证件"> |
| | | <el-option label="高中毕业证" value="1" /> |
| | | <el-option label="专科毕业证" value="2" /> |
| | |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { toCardGetUserInfo } from '@/utils/myUtil' |
| | | import { calculateSeniority, toCardGetUserInfo } from '@/utils/myUtil' |
| | | import Treeselect from '@riophae/vue-treeselect' |
| | | import '@riophae/vue-treeselect/dist/vue-treeselect.css' |
| | | import Pagination from '@/components/Pagination' |
| | |
| | | certificateNumb: [{ required: true, message: '请输入身份证号', trigger: 'blur' }], |
| | | jobName: [{ required: true, message: '请选择岗位', trigger: 'change' }], |
| | | nativePlaceName: [{ required: true, message: '请选择籍贯', trigger: 'change' }], |
| | | bankName: [{ required: true, message: '请输入银行名称', trigger: 'blur' }], |
| | | bankName: [{ required: true, message: '请输入银行名称', trigger: 'blur' }, { max: 36, message: '长度不超过36个字符', trigger: 'blur' }], |
| | | insuranceType: [{ required: true, message: '请选择保险类型', trigger: 'change' }], |
| | | entryDate: [{ required: true, message: '请选择入职日期', trigger: 'change' }], |
| | | seniority: [{ required: true, message: '请输入入司工龄', trigger: 'blur' }], |
| | | archivesStatus: [{ required: true, message: '请选择档案情况', trigger: 'change' }], |
| | | bankNumb: [{ required: true, message: '请输入银行账号', trigger: 'blur' }], |
| | | empType: [{ required: true, message: '请选择员工类型', trigger: 'change' }] |
| | | bankNumb: [{ required: true, message: '请输入银行账号', trigger: 'blur' }, { max: 32, message: '长度不超过32个字符', trigger: 'blur' }], |
| | | empType: [{ required: true, message: '请选择员工类型', trigger: 'change' }], |
| | | censusAddress: [{ max: 128, message: '长度不超过128个字符', trigger: 'blur' }], |
| | | currentAddress: [{ max: 128, message: '长度不超过128个字符', trigger: 'blur' }], |
| | | guardNumb: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }], |
| | | telePhone: [{ max: 30, message: '长度不超过30个字符', trigger: 'blur' }], |
| | | returnReceipt: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }], |
| | | introducer: [{ max: 32, message: '长度不超过32个字符', trigger: 'blur' }], |
| | | socialNumb: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }], |
| | | family: [{ max: 128, message: '长度不超过128个字符', trigger: 'blur' }], |
| | | certificateValidity: [{ required: true, message: '请选择身份证有效期', trigger: 'change' }], |
| | | urgencyPhone: [{ max: 30, message: '长度不超过30个字符', trigger: 'blur' }] |
| | | }, |
| | | workExperienceRules: { |
| | | empName: [{ required: true, message: '请选择员工', trigger: 'blur' }], |
| | |
| | | modifyTime: '', |
| | | modifier: '', |
| | | delFlag: '', |
| | | empStatus: 0, |
| | | version: '' |
| | | }, |
| | | laborTroubleForm: { |
| | |
| | | modifier: '', |
| | | delFlag: '', |
| | | version: '', |
| | | empStatus: 0, |
| | | remark: '' |
| | | }, |
| | | occupationalForm: { |
| | |
| | | modifier: '', |
| | | delFlag: '', |
| | | version: '', |
| | | empStatus: 0, |
| | | remark: '' |
| | | }, |
| | | accidentCasesForm: { |
| | |
| | | modifyTime: '', |
| | | modifier: '', |
| | | delFlag: '', |
| | | empStatus: 0, |
| | | version: '' |
| | | }, |
| | | insuranceForm: { |
| | |
| | | modifier: '', |
| | | delFlag: '', |
| | | version: '', |
| | | empStatus: 0, |
| | | remark: '' |
| | | }, |
| | | unemploymentForm: { |
| | |
| | | modifyTime: '', |
| | | modifier: '', |
| | | delFlag: '', |
| | | empStatus: 0, |
| | | version: '' |
| | | }, |
| | | resignForm: { |
| | |
| | | modifier: '', |
| | | delFlag: '', |
| | | version: '', |
| | | empStatus: 0, |
| | | remark: '' |
| | | }, |
| | | leaveInfoForm: { |
| | |
| | | modifier: '', |
| | | delFlag: '', |
| | | version: '', |
| | | empStatus: 0, |
| | | remark: '' |
| | | }, |
| | | contractInfoForm: { |
| | |
| | | modifyTime: '', |
| | | modifier: '', |
| | | delFlag: '', |
| | | empStatus: 0, |
| | | version: '' |
| | | }, |
| | | dimissionAttendForm: { |
| | |
| | | modifier: '', |
| | | delFlag: '', |
| | | version: '', |
| | | empStatus: 0, |
| | | remark: '' |
| | | }, |
| | | physicalExamForm: { |
| | |
| | | modifyTime: '', |
| | | modifier: '', |
| | | delFlag: '', |
| | | empStatus: 0, |
| | | version: '' |
| | | }, |
| | | workExperienceForm: { |
| | |
| | | modifyTime: '', |
| | | modifier: '', |
| | | delFlag: '', |
| | | empStatus: 0, |
| | | version: '' |
| | | }, |
| | | empBaseInfoForm: { |
| | |
| | | modifyTime: '', |
| | | modifier: '', |
| | | delFlag: '', |
| | | empStatus: 0, |
| | | version: '' |
| | | }, |
| | | badRecordForm: { |
| | |
| | | modifier: '', |
| | | delFlag: '', |
| | | version: '', |
| | | empStatus: 0, |
| | | remark: '' |
| | | } |
| | | } |
| | |
| | | this.empBaseInfoForm.sex = userinfo.sex |
| | | break |
| | | } |
| | | }, |
| | | calculateSeniority(val) { |
| | | this.empBaseInfoForm.seniority = calculateSeniority(val) |
| | | } |
| | | } |
| | | } |
| | |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="3">员工编号: |
| | | <el-input v-model="queryParams.empNumb" placeholder="请输入内容" style="width:80px" /> |
| | | <el-input v-model="queryParams.empNumb" size="small" maxlength="20" style="width:85px" /> |
| | | </el-col> |
| | | <el-col :span="3">姓名: |
| | | <el-input v-model="queryParams.empName" placeholder="请输入内容" style="width:80px" /> |
| | | <el-input v-model="queryParams.empName" size="small" maxlength="10" style="width:110px" /> |
| | | </el-col> |
| | | <el-col :span="3">身份证号: |
| | | <el-input v-model="queryParams.certificateNumb" placeholder="请输入内容" style="width:80px" /> |
| | | <el-col :span="4">身份证号: |
| | | <el-input v-model="queryParams.certificateNumb" size="small" maxlength="18" style="width:140px" /> |
| | | </el-col> |
| | | <el-col :span="3">护卫点: |
| | | <el-input v-model="queryParams.deptName" placeholder="请输入内容" style="width:80px" /> |
| | | <el-input v-model="queryParams.deptName" size="small" maxlength="20" style="width:100px" /> |
| | | </el-col> |
| | | <el-col :span="3">入职日期:从 |
| | | <el-input v-model="queryParams.entryDateBegin" placeholder="请输入内容" style="width:80px" /> |
| | | <el-col :span="8">入职日期: |
| | | <el-date-picker |
| | | v-model="queryParams.entryDateStr" |
| | | size="small" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 400px;" |
| | | /> |
| | | </el-col> |
| | | <el-col :span="3">到 |
| | | <el-input v-model="queryParams.entryDateEnd" placeholder="请输入内容" style="width:80px" /> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-button type="primary" @click="search">查询</el-button> |
| | | <el-button type="danger">重置</el-button> |
| | | <el-col :span="3"> |
| | | <el-button size="mini" class="hr-but-all" type="primary" @click="search">查询</el-button> |
| | | <el-button size="mini" class="hr-but" type="danger" @click="resetSearch">重置</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | |
| | | <tr> |
| | | <td>性别:</td> |
| | | <td> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">全部</el-radio> |
| | | <el-radio :label="6">男性</el-radio> |
| | | <el-radio :label="9">女性</el-radio> |
| | | <el-radio-group v-model="queryParams.sex"> |
| | | <el-radio label="">全部</el-radio> |
| | | <el-radio label="1">男性</el-radio> |
| | | <el-radio label="2">女性</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>最高学历:</td> |
| | | <td> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">全部</el-radio> |
| | | <el-radio :label="6">初中</el-radio> |
| | | <el-radio :label="9">高中</el-radio> |
| | | <el-radio :label="9">大专</el-radio> |
| | | <el-radio :label="9">本科</el-radio> |
| | | <el-radio :label="9">硕士</el-radio> |
| | | <el-radio :label="9">博士</el-radio> |
| | | <el-radio-group v-model="queryParams.education"> |
| | | <el-radio label="">全部</el-radio> |
| | | <el-radio label="91">无学历</el-radio> |
| | | <el-radio label="81">小学</el-radio> |
| | | <el-radio label="71">初中</el-radio> |
| | | <el-radio label="61">高中</el-radio> |
| | | <el-radio label="42">中技</el-radio> |
| | | <el-radio label="41">中专</el-radio> |
| | | <el-radio label="31">大学专科</el-radio> |
| | | <el-radio label="21">大学本科</el-radio> |
| | | <el-radio label="11">硕士</el-radio> |
| | | <el-radio label="10">博士</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>政治面貌:</td> |
| | | <td> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">全部</el-radio> |
| | | <el-radio :label="6">党员</el-radio> |
| | | <el-radio :label="9">团员</el-radio> |
| | | <el-radio :label="9">群众</el-radio> |
| | | <el-radio-group v-model="queryParams.politics"> |
| | | <el-radio label="">全部</el-radio> |
| | | <el-radio label="01">中共党员</el-radio> |
| | | <el-radio label="02">预备党员</el-radio> |
| | | <el-radio label="03">共青团员</el-radio> |
| | | <el-radio label="04">民革会员</el-radio> |
| | | <el-radio label="05">民盟盟员</el-radio> |
| | | <el-radio label="06">民建会员</el-radio> |
| | | <el-radio label="07">民进会员</el-radio> |
| | | <el-radio label="08">农工党员</el-radio> |
| | | <el-radio label="09">致公党员</el-radio> |
| | | <el-radio label="10">九三社员</el-radio> |
| | | <el-radio label="11">台盟盟员</el-radio> |
| | | <el-radio label="12">民主人士</el-radio> |
| | | <el-radio label="13">群众</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>年龄:</td> |
| | | <td> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">全部</el-radio> |
| | | <el-radio :label="6">18-29</el-radio> |
| | | <el-radio :label="9">30-39</el-radio> |
| | | <el-radio :label="9">40-49</el-radio> |
| | | <el-radio :label="9">50-59</el-radio> |
| | | <el-radio :label="9">60-69</el-radio> |
| | | <el-radio :label="9">69及以上</el-radio> |
| | | <el-radio-group v-model="queryParams.ageStr"> |
| | | <el-radio label="">全部</el-radio> |
| | | <el-radio label="18-29">18-29</el-radio> |
| | | <el-radio label="30-39">30-39</el-radio> |
| | | <el-radio label="40-49">40-49</el-radio> |
| | | <el-radio label="50-59">50-59</el-radio> |
| | | <el-radio label="60-69">60-69</el-radio> |
| | | <el-radio label="69-999">69及以上</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>档案情况:</td> |
| | | <td> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">全部</el-radio> |
| | | <el-radio :label="6">已移交</el-radio> |
| | | <el-radio :label="9">未移交</el-radio> |
| | | <el-radio-group v-model="queryParams.archivesStatus"> |
| | | <el-radio label="">全部</el-radio> |
| | | <el-radio label="0">已移交</el-radio> |
| | | <el-radio label="1">未移交</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>保险类型:</td> |
| | | <td> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">全部</el-radio> |
| | | <el-radio :label="6">深户(五险一档)</el-radio> |
| | | <el-radio :label="6">非深户(五险一档)</el-radio> |
| | | <el-radio :label="6">非深户(五险二档)</el-radio> |
| | | <el-radio :label="6">非深户(五险三档)</el-radio> |
| | | <el-radio :label="6">非深户(四险三档)</el-radio> |
| | | <el-radio-group v-model="queryParams.insuranceType"> |
| | | <el-radio label="">全部</el-radio> |
| | | <el-radio :label="1">深户(五险一档)</el-radio> |
| | | <el-radio :label="2">非深户(五险一档)</el-radio> |
| | | <el-radio :label="3">非深户(五险二档)</el-radio> |
| | | <el-radio :label="4">非深户(五险三档)</el-radio> |
| | | <el-radio :label="5">非深户(四险三档)</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>员工状态:</td> |
| | | <td> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">全部</el-radio> |
| | | <el-radio :label="6">在职</el-radio> |
| | | <el-radio-group v-model="queryParams.empStatus"> |
| | | <el-radio label="">全部</el-radio> |
| | | <el-radio :label="1">在职</el-radio> |
| | | <el-radio :label="2">正常离职</el-radio> |
| | | <el-radio :label="3">自动离职</el-radio> |
| | | <el-radio :label="4">公司辞退</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>员工手册:</td> |
| | | <td> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">全部</el-radio> |
| | | <el-radio :label="6">未发</el-radio> |
| | | <el-radio-group v-model="queryParams.handbookStatus"> |
| | | <el-radio label="3">全部</el-radio> |
| | | <el-radio :label="0">未发</el-radio> |
| | | <el-radio :label="9">已发</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | |
| | | <tr> |
| | | <td>工作证:</td> |
| | | <td> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">全部</el-radio> |
| | | <el-radio :label="6">未发</el-radio> |
| | | <el-radio :label="9">已发</el-radio> |
| | | <el-radio-group v-model="queryParams.empCardStatus"> |
| | | <el-radio label="">全部</el-radio> |
| | | <el-radio :label="0">未发</el-radio> |
| | | <el-radio :label="1">已发</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | |
| | | <el-main> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-button type="danger" @click="showXzyg">新增员工</el-button> |
| | | <el-button type="danger" @click="showXzyg(0)">新增员工</el-button> |
| | | <el-button type="primary" @click="delEmp">删除员工</el-button> |
| | | <el-button type="danger" @click="showYgdg(0)">员工调岗</el-button> |
| | | <el-button type="danger" @click="showDryg(0)">导入员工</el-button> |
| | |
| | | <el-table-column prop="sexName" label="性别" width="50" /> |
| | | <el-table-column prop="age" label="年龄" /> |
| | | <el-table-column prop="educationName" label="最高学历" width="100" /> |
| | | <el-table-column prop="censusAddress" label="籍贯" /> |
| | | <el-table-column prop="nativePlaceName" label="籍贯" /> |
| | | <el-table-column prop="telePhone" label="联系电话" /> |
| | | <el-table-column prop="entryDate" label="入职日期" width="100" /> |
| | | <el-table-column prop="delFlag" label="员工状态"> |
| | |
| | | </el-container> |
| | | </el-container> |
| | | <el-dialog title="新增员工" :visible.sync="dialogShowXzyg" width="50%"> |
| | | <el-form ref="empBaseInfoForm" :model="empBaseInfoForm" :rules="rules" label-position="right" label-width="120px"> |
| | | <el-form |
| | | ref="empBaseInfoForm" |
| | | :model="empBaseInfoForm" |
| | | :rules="empBaseInfoRules" |
| | | label-position="right" |
| | | label-width="120px" |
| | | > |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="档案号"> |
| | | <el-form-item label="档案号" prop="archivesNumb"> |
| | | <el-input v-model="empBaseInfoForm.archivesNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="员工编号" prop="empNumb"> |
| | | <el-input v-model="empBaseInfoForm.empNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="身份证号码"> |
| | | <el-form-item label="身份证号码" prop="certificateNumb"> |
| | | <el-input |
| | | v-model="empBaseInfoForm.certificateNumb" |
| | | @input="generateUserInfo(0,empBaseInfoForm.certificateNumb)" |
| | |
| | | <el-option label="临时工" value="2" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="民族"> |
| | | <el-form-item label="民族" prop="nation"> |
| | | <el-select v-model="empBaseInfoForm.nation" placeholder="请选择民族"> |
| | | <el-option label="汉族" value="01" /> |
| | | <el-option label="蒙古族" value="02" /> |
| | |
| | | <el-option label="外国民族" value="98" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="婚姻状态"> |
| | | <el-form-item label="婚姻状态" prop="marriage"> |
| | | <el-select v-model="empBaseInfoForm.marriage" placeholder="请选择婚姻状态"> |
| | | <el-option label="未婚" value="1" /> |
| | | <el-option label="已婚" value="2" /> |
| | |
| | | <el-option label="其它" value="9" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="身高(cm)"> |
| | | <el-form-item label="身高(cm)" prop="stature"> |
| | | <el-input v-model="empBaseInfoForm.stature" /> |
| | | </el-form-item> |
| | | <el-form-item label="政治面貌"> |
| | | <el-form-item label="政治面貌" prop="politics"> |
| | | <el-select v-model="empBaseInfoForm.politics" placeholder="请选择政治面貌"> |
| | | <el-option label="中共党员" value="01" /> |
| | | <el-option label="预备党员" value="02" /> |
| | |
| | | <el-option label="群众" value="13" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="最高学历"> |
| | | <el-form-item label="最高学历" prop="education"> |
| | | <el-select v-model="empBaseInfoForm.education" placeholder="请选择最高学历"> |
| | | <el-option label="博士" value="10" /> |
| | | <el-option label="硕士" value="11" /> |
| | |
| | | <el-option label="无学历" value="91" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="籍贯"> |
| | | <el-form-item label="籍贯" prop="nativePlaceName"> |
| | | <el-autocomplete |
| | | v-model="empBaseInfoForm.nativePlaceName" |
| | | class="inline-input" |
| | | :fetch-suggestions="querySearch" |
| | | placeholder="请输入籍贯" |
| | | placeholder="请选择籍贯" |
| | | @select="placeNameSelect" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="现住址"> |
| | | <el-form-item label="现住址" prop="currentAddress"> |
| | | <el-input v-model="empBaseInfoForm.currentAddress" /> |
| | | </el-form-item> |
| | | <el-form-item label="电话号码"> |
| | | <el-form-item label="电话号码" prop="telePhone"> |
| | | <el-input v-model="empBaseInfoForm.telePhone" /> |
| | | </el-form-item> |
| | | <el-form-item label="招聘介绍人"> |
| | | <el-form-item label="招聘介绍人" prop="introducer"> |
| | | <el-input v-model="empBaseInfoForm.introducer" /> |
| | | </el-form-item> |
| | | <el-form-item label="银行名称"> |
| | | <el-form-item label="银行名称" prop="bankName"> |
| | | <el-input v-model="empBaseInfoForm.bankName" /> |
| | | </el-form-item> |
| | | <el-form-item label="保险类型"> |
| | | <el-form-item label="保险类型" prop="insuranceType"> |
| | | <el-select v-model="empBaseInfoForm.insuranceType" placeholder="请选择保险类型"> |
| | | <el-option label="(深户)五险一档" value="1" /> |
| | | <el-option label="(非深户)五险一档" value="2" /> |
| | |
| | | <el-option label="(非深户)四险一档" value="5" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="家庭成员及关系"> |
| | | <el-form-item label="家庭成员及关系" prop="family"> |
| | | <el-input v-model="empBaseInfoForm.family" /> |
| | | </el-form-item> |
| | | <el-form-item label="紧急联系电话"> |
| | | <el-form-item label="紧急联系电话" prop="urgencyPhone"> |
| | | <el-input v-model="empBaseInfoForm.urgencyPhone" /> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-option label="女" value="2" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="身份证有效期"> |
| | | <el-input v-model="empBaseInfoForm.certificateValidity" /> |
| | | <el-form-item label="身份证有效期" prop="certificateValidity"> |
| | | <el-date-picker |
| | | v-model="empBaseInfoForm.certificateValidity" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择日期" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="年龄"> |
| | | <el-form-item label="年龄" prop="age"> |
| | | <el-input v-model="empBaseInfoForm.age" /> |
| | | </el-form-item> |
| | | <el-form-item label="出生日期"> |
| | | <el-form-item label="出生日期" prop="birthdate"> |
| | | <el-date-picker |
| | | v-model="empBaseInfoForm.birthdate" |
| | | type="date" |
| | |
| | | placeholder="选择日期" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="入职日期"> |
| | | <el-form-item label="入职日期" prop="entryDate"> |
| | | <el-date-picker |
| | | v-model="empBaseInfoForm.entryDate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择日期" |
| | | @input="calculateSeniority" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="入司工龄"> |
| | | <el-form-item label="入司工龄" prop="seniority"> |
| | | <el-input v-model="empBaseInfoForm.seniority" /> |
| | | </el-form-item> |
| | | <el-form-item label="户籍地址"> |
| | | <el-form-item label="户籍地址" prop="censusAddress"> |
| | | <el-input v-model="empBaseInfoForm.censusAddress" /> |
| | | </el-form-item> |
| | | <el-form-item label="保安员证号"> |
| | | <el-form-item label="保安员证号" prop="guardNumb"> |
| | | <el-input v-model="empBaseInfoForm.guardNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="保安员回执"> |
| | | <el-form-item label="保安员回执" prop="returnReceipt"> |
| | | <el-input v-model="empBaseInfoForm.returnReceipt" /> |
| | | </el-form-item> |
| | | <el-form-item label="档案情况"> |
| | | <el-form-item label="档案情况" prop="archivesStatus"> |
| | | <el-select v-model="empBaseInfoForm.archivesStatus" placeholder="请选择档案情况"> |
| | | <el-option label="未移交" value="0" /> |
| | | <el-option label="已移交" value="1" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="银行账号"> |
| | | <el-form-item label="银行账号" prop="bankNumb"> |
| | | <el-input v-model="empBaseInfoForm.bankNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="社保电脑号"> |
| | | <el-form-item label="社保电脑号" prop="socialNumb"> |
| | | <el-input v-model="empBaseInfoForm.socialNumb" /> |
| | | </el-form-item> |
| | | <el-form-item label="员工手册"> |
| | |
| | | <el-option label="已发" value="1" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="工作证"> |
| | | <el-form-item label="工作证" prop="empCardStatus"> |
| | | <el-select v-model="empBaseInfoForm.empCardStatus" placeholder="请选择工作证"> |
| | | <el-option label="未发" value="0" /> |
| | | <el-option label="已发" value="1" /> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="相关证件"> |
| | | <el-form-item label="相关证件" prop="certificateList"> |
| | | <el-select v-model="empBaseInfoForm.certificateList" placeholder="请选择相关证件"> |
| | | <el-option label="高中毕业证" value="1" /> |
| | | <el-option label="专科毕业证" value="2" /> |
| | |
| | | </el-container> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <el-dialog title="员工调岗" :visible.sync="dialogShowYgdg" width="50%"> |
| | | <el-form :model="ygdgForm" label-position="right" label-width="120px"> |
| | | <el-form ref="ygdgForm" :model="ygdgForm" :rules="ygdgRules" label-position="right" label-width="120px"> |
| | | <el-row> |
| | | <el-col span="24"> |
| | | <el-form-item label="调岗人员"> |
| | | <input v-model="ygdgForm.dgryIds" type="hidden"> |
| | | <el-input v-model="ygdgForm.dgryNames" type="textarea" /> |
| | | <input v-model="ygdgForm.empIds" type="hidden"> |
| | | <el-input v-model="ygdgForm.empNames" type="textarea" /> |
| | | </el-form-item> |
| | | <el-form-item label="现部门(护卫点)" required message="请选择护卫点" prop="deptId"> |
| | | <treeselect |
| | |
| | | :clear-value-text="$t('common.clear')" |
| | | placeholder="请选择部门(护卫点)" |
| | | style="width:100%" |
| | | @select="deptNameSelect" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="现岗位" prop="jobName"> |
| | | <el-form-item label="现岗位" prop="jobId"> |
| | | <el-autocomplete |
| | | v-model="ygdgForm.jobName" |
| | | v-model="ygdgForm.newJobName" |
| | | class="inline-input" |
| | | :fetch-suggestions="querySearchJob" |
| | | placeholder="请输入岗位" |
| | | @select="jobNameSelect" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="调岗类型" prop="region"> |
| | | <el-select v-model="ygdgForm.dglx" placeholder="请选择"> |
| | | <el-form-item label="调岗类型" prop="changeType"> |
| | | <el-select v-model="ygdgForm.changeType" placeholder="请选择"> |
| | | <el-option label="升职" value="2" /> |
| | | <el-option label="调动" value="3" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="调岗日期"> |
| | | <el-form-item label="调岗日期" prop="changeDate"> |
| | | <el-date-picker |
| | | v-model="ygdgForm.dgrq" |
| | | v-model="ygdgForm.changeDate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择日期" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="理由描述"> |
| | | <el-input v-model="ygdgForm.lyms" type="textarea" /> |
| | | <el-form-item label="理由描述" prop="changeReason"> |
| | | <el-input v-model="ygdgForm.changeReason" type="textarea" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="showYgdg(1)">取 消</el-button> |
| | | <el-button type="primary" @click="showYgdg(2)">确 定</el-button> |
| | | <el-button @click="showYgdg(1,'')">取 消</el-button> |
| | | <el-button type="primary" @click="showYgdg(2,'ygdgForm')">确 定</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog title="导入员工信息" :visible.sync="dialogShowDryg" width="50%"> |
| | |
| | | <el-row> |
| | | <el-col span="24"> |
| | | <el-form-item label="员工模板下载" prop="region"> |
| | | <a href="#" style="color: #3A8EE6;">员工信息.xlxs</a> |
| | | <a href="/员工信息.xls" target="_blank" style="color: #3A8EE6;">员工信息.xlxs</a> |
| | | <span style="margin-left: 100px;">点击下载</span> |
| | | </el-form-item> |
| | | <el-form-item label="导入员工"> |
| | | <el-upload |
| | | ref="upload" |
| | | class="upload-demo" |
| | | action="https://jsonplaceholder.typicode.com/posts/" |
| | | action="hr/empBaseInfo/importEmp" |
| | | accept=".xls, .xlsx, .excel" |
| | | :headers="headers()" |
| | | :file-list="fileList" |
| | | :auto-upload="false" |
| | | > |
| | |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog title="关闭档案" :visible.sync="dialogShowGbda" width="50%"> |
| | | <el-form :model="gbdaForm" label-position="right" label-width="120px"> |
| | | <el-form ref="gbdaForm" :model="gbdaForm" :rules="gbdaRules" label-position="right" label-width="120px"> |
| | | <el-row> |
| | | <el-col span="24"> |
| | | <el-form-item label="离职类型" prop="region"> |
| | | <el-radio-group v-model="gbdaForm.lzlx"> |
| | | <el-form-item label="离职类型" prop="dimissionType"> |
| | | <el-radio-group v-model="gbdaForm.dimissionType"> |
| | | <el-radio :label="1">正常离职</el-radio> |
| | | <el-radio :label="2">自动离职</el-radio> |
| | | <el-radio :label="3">公司劝退</el-radio> |
| | |
| | | <el-radio :label="5">试用期内</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="关闭日期"> |
| | | </el-col> |
| | | <el-col span="12"> |
| | | <el-form-item label="自离天数" prop="selfLeaveDay"> |
| | | <el-input v-model="gbdaForm.selfLeaveDay" onkeyup="value=value.replace(/[^0-9.]/g,'')" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col span="12"> |
| | | <el-form-item label="报告人" prop="reporter"> |
| | | <el-input v-model="gbdaForm.reporter" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col span="24"> |
| | | <el-form-item label="关闭日期" prop="dimissionDate"> |
| | | <el-date-picker |
| | | v-model="gbdaForm.gbrq" |
| | | v-model="gbdaForm.dimissionDate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择日期" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="备注说明"> |
| | | <el-input v-model="gbdaForm.bzsm" type="textarea" :rows="4" /> |
| | | <el-form-item label="备注说明" prop="remark"> |
| | | <el-input v-model="gbdaForm.remark" type="textarea" :rows="4" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="showGbda(1)">取 消</el-button> |
| | | <el-button type="primary" @click="showGbda(2)">确 定</el-button> |
| | | <el-button @click="showGbda(1,'')">取 消</el-button> |
| | | <el-button type="primary" @click="showGbda(2,'gbdaForm')">确 定</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <el-dialog title="导出员工 请勾选需要导出的字段" :visible.sync="dialogShowDcyg" width="40%"> |
| | | <table id="dcygTable" width="100%"> |
| | | <tr> |
| | | <td colspan="6" style="text-align: left;"><el-checkbox /> 全部字段</td> |
| | | <td colspan="6" style="text-align: left;"> |
| | | <el-checkbox v-model="checkAll" :indeterminate="isIndeterminate" @change="handleCheckAllChange" /> |
| | | 全部字段 |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>档案号</td> |
| | | <td><el-checkbox /></td> |
| | | <td>姓名</td> |
| | | <td><el-checkbox /></td> |
| | | <td>性别</td> |
| | | <td><el-checkbox /></td> |
| | | </tr> |
| | | <tr> |
| | | <td>部门(护卫点)</td> |
| | | <td><el-checkbox /></td> |
| | | <td>所属岗位</td> |
| | | <td><el-checkbox /></td> |
| | | <td>员工类别</td> |
| | | <td><el-checkbox /></td> |
| | | </tr> |
| | | <tr> |
| | | <td>民族</td> |
| | | <td><el-checkbox /></td> |
| | | <td>身份证号码</td> |
| | | <td><el-checkbox /></td> |
| | | <td>年龄</td> |
| | | <td><el-checkbox /></td> |
| | | </tr> |
| | | <tr> |
| | | <td>婚姻状况</td> |
| | | <td><el-checkbox /></td> |
| | | <td>身份证有效期</td> |
| | | <td><el-checkbox /></td> |
| | | <td>身高</td> |
| | | <td><el-checkbox /></td> |
| | | </tr> |
| | | <tr> |
| | | <td>政治面貌</td> |
| | | <td><el-checkbox /></td> |
| | | <td>出生日期</td> |
| | | <td><el-checkbox /></td> |
| | | <td>最高学历</td> |
| | | <td><el-checkbox /></td> |
| | | </tr> |
| | | <tr> |
| | | <td>籍贯</td> |
| | | <td><el-checkbox /></td> |
| | | <td>户籍地址</td> |
| | | <td><el-checkbox /></td> |
| | | <td>户籍地址</td> |
| | | <td><el-checkbox /></td> |
| | | </tr> |
| | | <tr> |
| | | <td>保安员证号</td> |
| | | <td><el-checkbox /></td> |
| | | <td>保安员回执</td> |
| | | <td><el-checkbox /></td> |
| | | <td>档案情况</td> |
| | | <td><el-checkbox /></td> |
| | | </tr> |
| | | <tr> |
| | | <td>银行名称</td> |
| | | <td><el-checkbox /></td> |
| | | <td>银行账号</td> |
| | | <td><el-checkbox /></td> |
| | | <td>电话号码</td> |
| | | <td><el-checkbox /></td> |
| | | </tr> |
| | | <tr> |
| | | <td>入职日期</td> |
| | | <td><el-checkbox /></td> |
| | | <td>保险类型</td> |
| | | <td><el-checkbox /></td> |
| | | <td>社保电脑号</td> |
| | | <td><el-checkbox /></td> |
| | | </tr> |
| | | <tr> |
| | | <td>招聘介绍人</td> |
| | | <td><el-checkbox /></td> |
| | | <td>入司工龄</td> |
| | | <td><el-checkbox /></td> |
| | | <td>工作证</td> |
| | | <td><el-checkbox /></td> |
| | | </tr> |
| | | <tr> |
| | | <td>相关证件</td> |
| | | <td><el-checkbox /></td> |
| | | <td>紧急联系电话</td> |
| | | <td><el-checkbox /></td> |
| | | <td>员工手册</td> |
| | | <td><el-checkbox /></td> |
| | | </tr> |
| | | <tr> |
| | | <td>家庭成员及关系</td> |
| | | <td><el-checkbox /></td> |
| | | <td /> |
| | | <td /> |
| | | <td /> |
| | | <td /> |
| | | </tr> |
| | | <el-checkbox-group v-model="checkedCities" @change="handleCheckedCitiesChange"> |
| | | <tr> |
| | | <td>档案号</td> |
| | | <td> |
| | | <el-checkbox label="archivesNumb"><span /></el-checkbox> |
| | | </td> |
| | | <td>姓名</td> |
| | | <td> |
| | | <el-checkbox label="empName"><span /></el-checkbox> |
| | | </td> |
| | | <td>性别</td> |
| | | <td> |
| | | <el-checkbox label="sex"><span /></el-checkbox> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>部门(护卫点)</td> |
| | | <td> |
| | | <el-checkbox label="deptName"><span /></el-checkbox> |
| | | </td> |
| | | <td>所属岗位</td> |
| | | <td> |
| | | <el-checkbox label="jobName"><span /></el-checkbox> |
| | | </td> |
| | | <td>员工类别</td> |
| | | <td> |
| | | <el-checkbox label="empType"><span /></el-checkbox> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>民族</td> |
| | | <td> |
| | | <el-checkbox label="nation"><span /></el-checkbox> |
| | | </td> |
| | | <td>身份证号码</td> |
| | | <td> |
| | | <el-checkbox label="certificateNumb"><span /></el-checkbox> |
| | | </td> |
| | | <td>年龄</td> |
| | | <td> |
| | | <el-checkbox label="age"><span /></el-checkbox> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>婚姻状况</td> |
| | | <td> |
| | | <el-checkbox label="marriage"><span /></el-checkbox> |
| | | </td> |
| | | <td>身份证有效期</td> |
| | | <td> |
| | | <el-checkbox label="certificateValidity"><span /></el-checkbox> |
| | | </td> |
| | | <td>身高</td> |
| | | <td> |
| | | <el-checkbox label="stature"><span /></el-checkbox> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>政治面貌</td> |
| | | <td> |
| | | <el-checkbox label="politics"><span /></el-checkbox> |
| | | </td> |
| | | <td>出生日期</td> |
| | | <td> |
| | | <el-checkbox label="birthdate"><span /></el-checkbox> |
| | | </td> |
| | | <td>最高学历</td> |
| | | <td> |
| | | <el-checkbox label="education"><span /></el-checkbox> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>籍贯</td> |
| | | <td> |
| | | <el-checkbox label="nativePlace"><span /></el-checkbox> |
| | | </td> |
| | | <td>户籍地址</td> |
| | | <td> |
| | | <el-checkbox label="censusAddress"><span /></el-checkbox> |
| | | </td> |
| | | <td>现住址</td> |
| | | <td> |
| | | <el-checkbox label="currentAddress"><span /></el-checkbox> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>保安员证号</td> |
| | | <td> |
| | | <el-checkbox label="guardNumb"><span /></el-checkbox> |
| | | </td> |
| | | <td>保安员回执</td> |
| | | <td> |
| | | <el-checkbox label="returnReceipt"><span /></el-checkbox> |
| | | </td> |
| | | <td>档案情况</td> |
| | | <td> |
| | | <el-checkbox label="archivesStatus"><span /></el-checkbox> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>银行名称</td> |
| | | <td> |
| | | <el-checkbox label="bankName"><span /></el-checkbox> |
| | | </td> |
| | | <td>银行账号</td> |
| | | <td> |
| | | <el-checkbox label="bankNumb"><span /></el-checkbox> |
| | | </td> |
| | | <td>电话号码</td> |
| | | <td> |
| | | <el-checkbox label="telePhone"><span /></el-checkbox> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>入职日期</td> |
| | | <td> |
| | | <el-checkbox label="entryDate"><span /></el-checkbox> |
| | | </td> |
| | | <td>保险类型</td> |
| | | <td> |
| | | <el-checkbox label="insuranceType"><span /></el-checkbox> |
| | | </td> |
| | | <td>社保电脑号</td> |
| | | <td> |
| | | <el-checkbox label="socialNumb"><span /></el-checkbox> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>招聘介绍人</td> |
| | | <td> |
| | | <el-checkbox label="introducer"><span /></el-checkbox> |
| | | </td> |
| | | <td>入司工龄</td> |
| | | <td> |
| | | <el-checkbox label="seniority"><span /></el-checkbox> |
| | | </td> |
| | | <td>工作证</td> |
| | | <td> |
| | | <el-checkbox label="empCardStatus"><span /></el-checkbox> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>相关证件</td> |
| | | <td> |
| | | <el-checkbox label="certificateList"><span /></el-checkbox> |
| | | </td> |
| | | <td>紧急联系电话</td> |
| | | <td> |
| | | <el-checkbox label="urgencyPhone"><span /></el-checkbox> |
| | | </td> |
| | | <td>员工手册</td> |
| | | <td> |
| | | <el-checkbox label="handbookStatus"><span /></el-checkbox> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>家庭成员及关系</td> |
| | | <td> |
| | | <el-checkbox label="family"><span /></el-checkbox> |
| | | </td> |
| | | <td /> |
| | | <td /> |
| | | <td /> |
| | | <td /> |
| | | </tr> |
| | | </el-checkbox-group> |
| | | </table> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="showDcyg(1)">取 消</el-button> |
| | |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { getToken } from '@/utils/auth' |
| | | import Pagination from '@/components/Pagination' |
| | | import Treeselect from '@riophae/vue-treeselect' |
| | | import '@riophae/vue-treeselect/dist/vue-treeselect.css' |
| | | import { calculateSeniority, toCardGetUserInfo } from '@/utils/myUtil' |
| | | |
| | | export default { |
| | | components: { |
| | | Pagination, Treeselect |
| | |
| | | data() { |
| | | return { |
| | | total: 0, // 总数量 |
| | | queryParams: {}, // 查询参数 |
| | | queryParams: { |
| | | empNumb: '' |
| | | }, // 查询参数 |
| | | sort: {}, // 排序 |
| | | pagination: { // 分页参数 |
| | | size: 5, |
| | | size: 20, |
| | | num: 1 |
| | | }, |
| | | empBaseInfoForm: {}, |
| | | empBaseInfoForm: { |
| | | empId: '', |
| | | customerId: '', |
| | | archivesNumb: '', |
| | | deptId: '', |
| | | deptName: '', |
| | | empNumb: '', |
| | | empName: '', |
| | | sex: '1', |
| | | JobId: '', |
| | | jobName: '', |
| | | empType: '1', |
| | | certificateType: '', |
| | | certificateNumb: '', |
| | | nation: '01', |
| | | certificateValidity: '', |
| | | marriage: '1', |
| | | age: '', |
| | | stature: '', |
| | | birthdate: '', |
| | | politics: '13', |
| | | entryDate: '', |
| | | education: '61', |
| | | seniority: '', |
| | | nativePlace: '', |
| | | nativePlaceName: '', |
| | | censusAddress: '', |
| | | currentAddress: '', |
| | | guardNumb: '', |
| | | telePhone: '', |
| | | returnReceipt: '', |
| | | introducer: '', |
| | | archivesStatus: '0', |
| | | bankName: '', |
| | | bankNumb: '', |
| | | InsuranceType: '', |
| | | socialNumb: '', |
| | | family: '', |
| | | handbookStatus: '0', |
| | | urgencyPhone: '', |
| | | empCardStatus: '0', |
| | | certificateList: '', |
| | | createTime: '', |
| | | creator: '', |
| | | modifyTime: '', |
| | | modifier: '', |
| | | delFlag: '0', |
| | | empStatus: 0, |
| | | version: '' |
| | | }, |
| | | ygdgForm: {}, |
| | | gbdaForm: {}, |
| | | gbdaForm: { |
| | | dgryIds: '', |
| | | dimissionType: '1', |
| | | dimissionDate: new Date(), |
| | | remark: '' |
| | | }, |
| | | depts: [], |
| | | fileList: [], |
| | | rules: { |
| | | archivesNumb: [{ required: true, message: '请输入档案号', trigger: 'blur' }], |
| | | empBaseInfoRules: { |
| | | archivesNumb: [{ required: true, message: '请输入档案号', trigger: 'blur' }, { |
| | | max: 20, |
| | | message: this.$t('rules.noMoreThan20'), |
| | | trigger: 'blur' |
| | | }], |
| | | empName: [{ required: true, message: '请输入员工姓名', trigger: 'blur' }, |
| | | { min: 2, max: 50, message: '长度在 2 到 50 个字符', trigger: 'blur' }], |
| | | { min: 2, max: 32, message: '长度不超过32个字符', trigger: 'blur' }], |
| | | empNumb: [{ required: true, message: '请输入员工编号', trigger: 'blur' }, |
| | | { min: 2, max: 50, message: '长度在 2 到 50 个字符', trigger: 'blur' }], |
| | | { min: 2, max: 20, message: this.$t('rules.noMoreThan20'), trigger: 'blur' }], |
| | | deptName: [ |
| | | { required: true, message: '请选择护卫点', trigger: 'input' } |
| | | ], |
| | | certificateNumb: [{ required: true, message: '请输入身份证号', trigger: 'blur' }], |
| | | certificateNumb: [{ required: true, message: '请输入身份证号', trigger: 'blur' }, { |
| | | min: 15, |
| | | max: 18, |
| | | message: '身份证长度为15-18位', |
| | | trigger: 'blur' |
| | | }], |
| | | jobName: [{ required: true, message: '请选择岗位', trigger: 'change' }], |
| | | nativePlaceName: [{ required: true, message: '请选择籍贯', trigger: 'change' }], |
| | | bankName: [{ required: true, message: '请输入银行名称', trigger: 'blur' }], |
| | | bankName: [{ required: true, message: '请输入银行名称', trigger: 'blur' }, { |
| | | max: 36, |
| | | message: '长度不超过36个字符', |
| | | trigger: 'blur' |
| | | }], |
| | | insuranceType: [{ required: true, message: '请选择保险类型', trigger: 'change' }], |
| | | entryDate: [{ required: true, message: '请选择入职日期', trigger: 'change' }], |
| | | seniority: [{ required: true, message: '请输入入司工龄', trigger: 'blur' }], |
| | | archivesStatus: [{ required: true, message: '请选择档案情况', trigger: 'change' }], |
| | | bankNumb: [{ required: true, message: '请输入银行账号', trigger: 'blur' }], |
| | | bankNumb: [{ required: true, message: '请输入银行账号', trigger: 'blur' }, { |
| | | max: 32, |
| | | message: '长度不超过32个字符', |
| | | trigger: 'blur' |
| | | }], |
| | | empType: [{ required: true, message: '请选择员工类型', trigger: 'change' }], |
| | | workUnit: [{ required: true, message: '请输入工作单位', trigger: 'blur' }], |
| | | beginDate: [{ required: true, message: '请选择开始日期', trigger: 'change' }], |
| | | endDate: [{ required: true, message: '请选择结束日期', trigger: 'change' }], |
| | | hospital: [{ required: true, message: '请输入体检医院', trigger: 'blur' }], |
| | | physicalExamDate: [{ required: true, message: '请选择体检日期', trigger: 'change' }], |
| | | conclusion: [{ required: true, message: '请输入体检结论', trigger: 'blur' }], |
| | | signingDate: [{ required: true, message: '请选择合同签订日期', trigger: 'change' }], |
| | | contractStatus: [{ required: true, message: '请选择合同状态', trigger: 'change' }], |
| | | attendMonth: [{ required: true, message: '请选择出勤月份', trigger: 'change' }], |
| | | deduct: [{ required: true, message: '请输入代扣填款项', trigger: 'blur' }], |
| | | attendDays: [{ required: true, message: '请输入出勤天数', trigger: 'blur' }], |
| | | beginTime: [{ required: true, message: '请选择请假开始时间', trigger: 'change' }], |
| | | leaveType: [{ required: true, message: '请选择请假类型', trigger: 'change' }], |
| | | reporter: [{ required: true, message: '请输入报备人', trigger: 'blur' }], |
| | | endTime: [{ required: true, message: '请选择请假结束时间', trigger: 'change' }], |
| | | applayDate: [{ required: true, message: '请选择申请日期', trigger: 'change' }], |
| | | reason: [{ required: true, message: '请输入辞职事由', trigger: 'blur' }], |
| | | applayReason: [{ required: true, message: '请输入申报事由', trigger: 'blur' }], |
| | | insuranceGaers: [{ required: true, message: '请选择社保档位', trigger: 'change' }], |
| | | applayStatus: [{ required: true, message: '请选择申请状态', trigger: 'change' }], |
| | | proposer: [{ required: true, message: '请输入申请人', trigger: 'blur' }], |
| | | injuredTime: [{ required: true, message: '请选择受伤时间', trigger: 'blur' }], |
| | | injuredPart: [{ required: true, message: '请输入受伤部位', trigger: 'blur' }], |
| | | injuredDescribe: [{ required: true, message: '请输入受伤经过描述', trigger: 'blur' }], |
| | | hospitalName: [{ required: true, message: '请输入就诊医院', trigger: 'blur' }], |
| | | hospitalizatioFlag: [{ required: true, message: '请选择是否住院', trigger: 'blur' }], |
| | | innsureFee: [{ required: true, message: '请输入保险赔付费用', trigger: 'blur' }], |
| | | settleDate: [{ required: true, message: '请选择案结时间', trigger: 'change' }], |
| | | expensesFee: [{ required: true, message: '请输入医疗总费用', trigger: 'blur' }], |
| | | settleStatus: [{ required: true, message: '请选择结案状态', trigger: 'change' }], |
| | | injuredAddress: [{ required: true, message: '请输入受伤地点', trigger: 'blur' }], |
| | | compensated: [{ required: true, message: '请输入已赔付医药费用', trigger: 'blur' }], |
| | | companyCompensation: [{ required: true, message: '请输入公司赔偿总费用', trigger: 'blur' }], |
| | | arbitrationDate: [{ required: true, message: '请选择仲裁日期', trigger: 'change' }], |
| | | arbitrationReason: [{ required: true, message: '请输入仲裁事由', trigger: 'blur' }], |
| | | arbitrationStatus: [{ required: true, message: '请选择结案状态', trigger: 'change' }], |
| | | badDate: [{ required: true, message: '请选择不良记录日期', trigger: 'change' }], |
| | | badContent: [{ required: true, message: '请输入不良记录描述', trigger: 'blur' }], |
| | | remarkDate: [{ required: true, message: '请选择备注日期', trigger: 'change' }], |
| | | remarkContent: [{ required: true, message: '请输入备注内容', trigger: 'blur' }] |
| | | censusAddress: [{ max: 128, message: '长度不超过128个字符', trigger: 'blur' }], |
| | | currentAddress: [{ max: 128, message: '长度不超过128个字符', trigger: 'blur' }], |
| | | guardNumb: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }], |
| | | telePhone: [{ max: 30, message: '长度不超过30个字符', trigger: 'blur' }], |
| | | returnReceipt: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }], |
| | | introducer: [{ max: 32, message: '长度不超过32个字符', trigger: 'blur' }], |
| | | socialNumb: [{ max: 40, message: '长度不超过40个字符', trigger: 'blur' }], |
| | | family: [{ max: 128, message: '长度不超过128个字符', trigger: 'blur' }], |
| | | certificateValidity: [{ required: true, message: '请选择身份证有效期', trigger: 'change' }], |
| | | urgencyPhone: [{ max: 30, message: '长度不超过30个字符', trigger: 'blur' }] |
| | | }, |
| | | gbdaRules: { |
| | | dimissionType: [{ required: true, message: '请选择离职类型', trigger: 'change' }], |
| | | dimissionDate: [{ required: true, message: '请选择关闭日期', trigger: 'change' }], |
| | | selfLeaveDay: [{ required: true, validator: this.validSelfLeaveDay }], |
| | | reporter: [{ required: true, validator: this.validReporter }], |
| | | remark: [{ max: 500, message: '长度不超过500个字符', trigger: 'blur' }] |
| | | }, |
| | | ygdgRules: { |
| | | changeType: [{ required: true, message: '请选择调岗类型', trigger: 'change' }], |
| | | changeDate: [{ required: true, message: '请选择调岗日期', trigger: 'change' }], |
| | | jobId: [{ required: true, message: '请选择现岗位', trigger: 'change' }], |
| | | deptId: [{ required: true, message: '请选择现部门', trigger: 'change' }], |
| | | changeReason: [{ max: 500, message: '长度不超过500个字符', trigger: 'blur' }] |
| | | }, |
| | | restaurants: [{ value: '北京市', code: '110000' }, |
| | | { value: '天津市', code: '120000' }, |
| | | { value: '河北省', code: '130000' }, |
| | | { value: '山西省', code: '140000' }, |
| | | { value: '内蒙古自治区', code: '150000' }, |
| | | { value: '辽宁省', code: '210000' }, |
| | | { value: '吉林省', code: '220000' }, |
| | | { value: '黑龙江省', code: '230000' }, |
| | | { value: '上海市', code: '310000' }, |
| | | { value: '江苏省', code: '320000' }, |
| | | { value: '浙江省', code: '330000' }, |
| | | { value: '安徽省', code: '340000' }, |
| | | { value: '福建省', code: '350000' }, |
| | | { value: '江西省', code: '360000' }, |
| | | { value: '山东省', code: '370000' }, |
| | | { value: '河南省', code: '410000' }, |
| | | { value: '湖北省', code: '420000' }, |
| | | { value: '湖南省', code: '430000' }, |
| | | { value: '广东省', code: '440000' }, |
| | | { value: '广西壮族自治区', code: '450000' }, |
| | | { value: '海南省', code: '460000' }, |
| | | { value: '重庆市', code: '500000' }, |
| | | { value: '四川省', code: '510000' }, |
| | | { value: '贵州省', code: '520000' }, |
| | | { value: '云南省', code: '530000' }, |
| | | { value: '西藏自治区', code: '540000' }, |
| | | { value: '陕西省', code: '610000' }, |
| | | { value: '甘肃省', code: '620000' }, |
| | | { value: '青海省', code: '630000' }, |
| | | { value: '宁夏回族自治区', code: '640000' }, |
| | | { value: '新疆维吾尔自治区', code: '650000' }, |
| | | { value: '台湾省', code: '710000' }, |
| | | { value: '香港特别行政区', code: '810000' }, |
| | | { value: '澳门特别行政区', code: '820000' }], |
| | | restaurJob: [{ value: '总经理', code: '2942725270000031' }, |
| | | { value: '总秘', code: '2942725270000032' }, |
| | | { value: '总助', code: '2942725270000033' }, |
| | |
| | | dialogShowYgdg: false, |
| | | dialogShowDryg: false, |
| | | dialogShowGbda: false, |
| | | exportUrl: '', |
| | | checkAll: false, |
| | | isIndeterminate: false, |
| | | cityOptions: ['sex', 'empName', 'archivesNumb', 'deptName', 'jobName', 'empType', 'nation', 'certificateNumb', 'age', 'marriage', 'certificateValidity', 'stature', 'politics', 'birthdate', 'education', 'nativePlace', 'censusAddress', 'currentAddress', 'guardNumb', 'returnReceipt', 'archivesStatus', 'bankName', 'bankNumb', 'telePhone', 'entryDate', 'insuranceType', 'socialNumb', 'introducer', 'seniority', 'empCardStatus', 'certificateList', 'urgencyPhone', 'handbookStatus', 'family'], |
| | | checkedCities: [], |
| | | tableData: [] |
| | | } |
| | | }, |
| | |
| | | this.initDept() |
| | | }, |
| | | methods: { |
| | | resetSearch() { |
| | | this.queryParams = { |
| | | empNumb: '' |
| | | } |
| | | this.search() |
| | | }, |
| | | // 翻页方法 |
| | | search() { |
| | | this.fetch({ |
| | |
| | | params.pageSize = this.pagination.size |
| | | params.pageNum = this.pagination.num |
| | | params.delFlag = 0 |
| | | params.empStatus = 0 |
| | | this.$get('hr/empBaseInfo/list', { |
| | | ...params |
| | | }).then((r) => { |
| | |
| | | this.advancedQueryShow = true |
| | | } |
| | | }, |
| | | calculateSeniority(val) { |
| | | this.empBaseInfoForm.seniority = calculateSeniority(val) |
| | | }, |
| | | cleanEmpBase() { |
| | | this.empBaseInfoForm.empId = '' |
| | | this.empBaseInfoForm.customerId = '' |
| | | this.empBaseInfoForm.archivesNumb = '' |
| | | this.empBaseInfoForm.deptId = '' |
| | | this.empBaseInfoForm.deptName = '' |
| | | this.empBaseInfoForm.empNumb = '' |
| | | this.empBaseInfoForm.empName = '' |
| | | this.empBaseInfoForm.sex = '' |
| | | this.empBaseInfoForm.JobId = '' |
| | | this.empBaseInfoForm.jobName = '' |
| | | this.empBaseInfoForm.empType = '' |
| | | this.empBaseInfoForm.certificateType = '' |
| | | this.empBaseInfoForm.certificateNumb = '' |
| | | this.empBaseInfoForm.nation = '' |
| | | this.empBaseInfoForm.certificateValidity = '' |
| | | this.empBaseInfoForm.marriage = '' |
| | | this.empBaseInfoForm.age = '' |
| | | this.empBaseInfoForm.stature = '' |
| | | this.empBaseInfoForm.birthdate = '' |
| | | this.empBaseInfoForm.politics = '' |
| | | this.empBaseInfoForm.entryDate = '' |
| | | this.empBaseInfoForm.education = '' |
| | | this.empBaseInfoForm.seniority = '' |
| | | this.empBaseInfoForm.nativePlace = '' |
| | | this.empBaseInfoForm.nativePlaceName = '' |
| | | this.empBaseInfoForm.censusAddress = '' |
| | | this.empBaseInfoForm.currentAddress = '' |
| | | this.empBaseInfoForm.guardNumb = '' |
| | | this.empBaseInfoForm.telePhone = '' |
| | | this.empBaseInfoForm.returnReceipt = '' |
| | | this.empBaseInfoForm.introducer = '' |
| | | this.empBaseInfoForm.archivesStatus = '' |
| | | this.empBaseInfoForm.bankName = '' |
| | | this.empBaseInfoForm.bankNumb = '' |
| | | this.empBaseInfoForm.InsuranceType = '' |
| | | this.empBaseInfoForm.socialNumb = '' |
| | | this.empBaseInfoForm.family = '' |
| | | this.empBaseInfoForm.handbookStatus = '' |
| | | this.empBaseInfoForm.urgencyPhone = '' |
| | | this.empBaseInfoForm.empCardStatus = '' |
| | | this.empBaseInfoForm.certificateList = '' |
| | | this.empBaseInfoForm.createTime = '' |
| | | this.empBaseInfoForm.creator = '' |
| | | this.empBaseInfoForm.modifyTime = '' |
| | | this.empBaseInfoForm.modifier = '' |
| | | this.empBaseInfoForm.delFlag = '' |
| | | this.empBaseInfoForm.version = '' |
| | | }, |
| | | editEmpBase(row) { |
| | | this.isAdd = false |
| | | this.empBaseInfoForm.empId = row.empId |
| | | this.empBaseInfoForm.customerId = row.customerId |
| | | this.empBaseInfoForm.archivesNumb = row.archivesNumb |
| | | this.empBaseInfoForm.deptId = row.deptId |
| | | this.empBaseInfoForm.deptName = row.deptName |
| | | this.empBaseInfoForm.empNumb = row.empNumb |
| | | this.empBaseInfoForm.empName = row.empName |
| | | this.empBaseInfoForm.sex = row.sex |
| | | this.empBaseInfoForm.JobId = row.JobId |
| | | this.empBaseInfoForm.jobName = row.jobName |
| | | this.empBaseInfoForm.empType = row.empType |
| | | this.empBaseInfoForm.certificateType = row.certificateType |
| | | this.empBaseInfoForm.certificateNumb = row.certificateNumb |
| | | this.empBaseInfoForm.nation = row.nation |
| | | this.empBaseInfoForm.certificateValidity = row.certificateValidity |
| | | this.empBaseInfoForm.marriage = row.marriage |
| | | this.empBaseInfoForm.age = row.age |
| | | this.empBaseInfoForm.stature = row.stature |
| | | this.empBaseInfoForm.birthdate = row.birthdate |
| | | this.empBaseInfoForm.politics = row.politics |
| | | this.empBaseInfoForm.entryDate = row.entryDate |
| | | this.empBaseInfoForm.education = row.education |
| | | this.empBaseInfoForm.seniority = row.seniority |
| | | this.empBaseInfoForm.nativePlace = row.nativePlace |
| | | this.empBaseInfoForm.censusAddress = row.censusAddress |
| | | this.empBaseInfoForm.currentAddress = row.currentAddress |
| | | this.empBaseInfoForm.guardNumb = row.guardNumb |
| | | this.empBaseInfoForm.telePhone = row.telePhone |
| | | this.empBaseInfoForm.returnReceipt = row.returnReceipt |
| | | this.empBaseInfoForm.introducer = row.introducer |
| | | this.empBaseInfoForm.archivesStatus = row.archivesStatus |
| | | this.empBaseInfoForm.bankName = row.bankName |
| | | this.empBaseInfoForm.bankNumb = row.bankNumb |
| | | this.empBaseInfoForm.InsuranceType = row.InsuranceType |
| | | this.empBaseInfoForm.socialNumb = row.socialNumb |
| | | this.empBaseInfoForm.family = row.family |
| | | this.empBaseInfoForm.handbookStatus = row.handbookStatus |
| | | this.empBaseInfoForm.urgencyPhone = row.urgencyPhone |
| | | this.empBaseInfoForm.empCardStatus = row.empCardStatus |
| | | this.empBaseInfoForm.certificateList = row.certificateList |
| | | this.empBaseInfoForm.createTime = row.createTime |
| | | this.empBaseInfoForm.creator = row.creator |
| | | this.empBaseInfoForm.modifyTime = row.modifyTime |
| | | this.empBaseInfoForm.modifier = row.modifier |
| | | this.empBaseInfoForm.delFlag = row.delFlag |
| | | this.empBaseInfoForm.version = row.version |
| | | this.showXzyg(1) |
| | | }, |
| | | putEmpBase(formName) { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | |
| | | type: 'success' |
| | | }) |
| | | this.cleanEmpBase() |
| | | this.selectEmpBase() |
| | | }) |
| | | } else { |
| | | this.$put('hr/empBaseInfo', { ...this.empBaseInfoForm }).then(() => { |
| | |
| | | }) |
| | | this.$emit('success') |
| | | this.cleanEmpBase() |
| | | this.selectEmpBase() |
| | | }) |
| | | } |
| | | this.dialogIsShow() |
| | | this.fetch() |
| | | this.showXzyg() |
| | | } |
| | | }) |
| | | }, |
| | |
| | | type: 'success' |
| | | }) |
| | | this.cleanEmpBase() |
| | | this.selectEmpBase() |
| | | this.fetch() |
| | | }) |
| | | } |
| | | } |
| | |
| | | showEmpInfo() { |
| | | this.dialogTableVisible = true |
| | | }, |
| | | showXzyg() { |
| | | showXzyg(val) { |
| | | if (val === 0) { |
| | | this.isAdd = true |
| | | } |
| | | if (!this.dialogShowXzyg) { |
| | | // this.isAdd = true |
| | | this.dialogShowXzyg = true |
| | | } else { |
| | | // this.isAdd = false |
| | | this.dialogShowXzyg = false |
| | | } |
| | | }, |
| | | handleCheckAllChange(val) { |
| | | this.checkedCities = val ? this.cityOptions : [] |
| | | this.isIndeterminate = false |
| | | }, |
| | | handleCheckedCitiesChange(value) { |
| | | const checkedCount = value.length |
| | | this.checkAll = checkedCount === this.cityOptions.length |
| | | this.isIndeterminate = checkedCount > 0 && checkedCount < this.cityOptions.length |
| | | }, |
| | | showDcyg(operate) { |
| | | switch (operate) { |
| | |
| | | case 1: |
| | | this.dialogShowDcyg = false |
| | | break |
| | | case 2: |
| | | var params = { exportField: this.checkedCities.join(',') } |
| | | this.$download('hr/empBaseInfo/export', { ...params }, '在职员工列表.xls').then(() => { |
| | | this.$message({ |
| | | message: '下载成功!', |
| | | type: 'success' |
| | | }) |
| | | }) |
| | | break |
| | | } |
| | | }, |
| | | showYgdg(operate) { |
| | | showYgdg(operate, formName) { |
| | | switch (operate) { |
| | | case 0: |
| | | var selection = this.$refs.multipleTable.store.states.selection |
| | |
| | | type: 'error' |
| | | }) |
| | | } else { |
| | | var empIds = [] |
| | | var ids = [] |
| | | var names = [] |
| | | var deptNames = [] |
| | | var jobNames = [] |
| | | for (var i = 0; i < selection.length; i++) { |
| | | var data = selection[i] |
| | | empIds.push(data.empId) |
| | | ids.push(data.empId) |
| | | names.push(data.empName) |
| | | deptNames.push(data.deptName) |
| | | jobNames.push(data.jobName) |
| | | } |
| | | this.ygdgForm = { |
| | | dgryIds: empIds.join(','), |
| | | dgryNames: names.join(',') |
| | | empIds: ids.join(','), |
| | | empNames: names.join(','), |
| | | oldDeptNames: deptNames.join(','), |
| | | oldJobNames: jobNames.join(',') |
| | | } |
| | | this.dialogShowYgdg = true |
| | | } |
| | |
| | | this.dialogShowYgdg = false |
| | | break |
| | | case 2: |
| | | this.$post('hr/empBaseInfo', { ...this.ygdgForm }).then(() => { |
| | | this.dialogShowYgdg = false |
| | | this.$message({ |
| | | message: this.$t('tips.createSuccess'), |
| | | type: 'success' |
| | | }) |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | this.$post('hr/empBaseInfo/jobChange', { ...this.ygdgForm }).then(() => { |
| | | this.dialogShowYgdg = false |
| | | this.$message({ |
| | | message: this.$t('员工调岗成功'), |
| | | type: 'success' |
| | | }) |
| | | this.fetch({ |
| | | ...this.queryParams, |
| | | ...this.sort |
| | | }) |
| | | }) |
| | | } |
| | | }) |
| | | break |
| | | } |
| | | }, |
| | | querySearch(queryString, cb) { |
| | | var restaurants = this.restaurants |
| | | var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants |
| | | // 调用 callback 返回建议列表的数据 |
| | | cb(results) |
| | | }, |
| | | createFilter(queryString) { |
| | | return (restaurant) => { |
| | | return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0) |
| | | } |
| | | }, |
| | | placeNameSelect(item) { |
| | | this.empBaseInfoForm.nativePlaceName = item.value |
| | | this.empBaseInfoForm.nativePlace = item.code |
| | | }, |
| | | deptNameSelect(node) { |
| | | this.ygdgForm.newDeptName = node.label |
| | | }, |
| | | querySearchJob(queryString, cb) { |
| | | const restaurants = this.restaurJob |
| | |
| | | cb(results) |
| | | }, |
| | | jobNameSelect(item) { |
| | | this.ygdgForm.jobName = item.value |
| | | this.ygdgForm.JobId = item.code |
| | | this.empBaseInfoForm.jobName = item.value |
| | | this.empBaseInfoForm.JobId = item.code |
| | | |
| | | this.ygdgForm.newJobName = item.value |
| | | this.ygdgForm.jobId = item.code |
| | | }, |
| | | generateUserInfo(index, val) { |
| | | var userinfo = toCardGetUserInfo(val) |
| | | if (userinfo === null) { |
| | | return |
| | | } |
| | | this.empBaseInfoForm.age = userinfo.age |
| | | this.empBaseInfoForm.birthdate = userinfo.birth |
| | | this.empBaseInfoForm.sex = userinfo.sex |
| | | }, |
| | | showDryg(operate) { |
| | | switch (operate) { |
| | |
| | | break |
| | | } |
| | | }, |
| | | showGbda(operate) { |
| | | validSelfLeaveDay(rule, value, callback) { |
| | | const type = this.gbdaForm.dimissionType |
| | | if (type === 2) { |
| | | if (!value) { |
| | | callback(new Error('自动离职时自离天数不能为空!')) |
| | | } else { |
| | | callback() |
| | | } |
| | | } else { |
| | | callback() |
| | | } |
| | | }, |
| | | validReporter(rule, value, callback) { |
| | | const type = this.gbdaForm.dimissionType |
| | | if (type === 2) { |
| | | if (!value) { |
| | | callback(new Error('自动离职时报告人不能为空!')) |
| | | } else { |
| | | if (value.length > 32) { |
| | | callback(new Error('自动离职时报告人最多32个字符!')) |
| | | } else { |
| | | callback() |
| | | } |
| | | } |
| | | } else { |
| | | callback() |
| | | } |
| | | }, |
| | | showGbda(operate, formName) { |
| | | switch (operate) { |
| | | case 0: |
| | | var selection = this.$refs.multipleTable.store.states.selection |
| | |
| | | type: 'error' |
| | | }) |
| | | } else { |
| | | var empIds = [] |
| | | var ids = [] |
| | | var names = [] |
| | | var dates = [] |
| | | for (var i = 0; i < selection.length; i++) { |
| | | var data = selection[i] |
| | | empIds.push(data.empId) |
| | | ids.push(data.empId) |
| | | names.push(data.empName) |
| | | dates.push(data.entryDate) |
| | | } |
| | | const nowDate = new Date() |
| | | const year = nowDate.getFullYear() |
| | | const month = nowDate.getMonth() + 1 |
| | | const day = nowDate.getDate() |
| | | this.gbdaForm = { |
| | | dgryIds: empIds.join(','), |
| | | dgryNames: names.join(',') |
| | | empIds: ids.join(','), |
| | | dgryNames: names.join(','), |
| | | entryDates: dates.join(','), |
| | | dimissionType: '1', |
| | | dimissionDate: year + '-' + month + '-' + day, |
| | | remark: '' |
| | | } |
| | | this.dialogShowGbda = true |
| | | } |
| | |
| | | this.dialogShowGbda = false |
| | | break |
| | | case 2: |
| | | this.$post('hr/empBaseInfo', { ...this.gbdaForm }).then(() => { |
| | | this.dialogShowGbda = false |
| | | this.$message({ |
| | | message: this.$t('tips.createSuccess'), |
| | | type: 'success' |
| | | }) |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | this.$post('hr/empBaseInfo/dimission', { ...this.gbdaForm }).then(() => { |
| | | this.dialogShowGbda = false |
| | | this.$message({ |
| | | message: this.$t('员工档案关闭成功'), |
| | | type: 'success' |
| | | }) |
| | | this.fetch({ |
| | | ...this.queryParams, |
| | | ...this.sort |
| | | }) |
| | | }) |
| | | } |
| | | }) |
| | | break |
| | | } |
| | |
| | | message: '已取消' |
| | | }) |
| | | }) |
| | | }, |
| | | downloadExcel() { |
| | | debugger |
| | | this.$download('../../assets/excel/员工信息.xls', { }, '在职员工列表.xls').then(() => { |
| | | this.$message({ |
| | | message: '下载成功!', |
| | | type: 'success' |
| | | }) |
| | | }) |
| | | }, |
| | | headers() { |
| | | const token = getToken() |
| | | if (token) { |
| | | return { |
| | | Authorization: 'bearer ' + token |
| | | } |
| | | } else { |
| | | return null |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .el-main { |
| | | height: 600px; |
| | | } |
| | | .el-autocomplete { |
| | | width: 100%; |
| | | } |
| | | .el-select { |
| | | width: 100%; |
| | | } |
| | | .el-aside { |
| | | padding: 20px; |
| | | background: #f3f5f8; |
| | | height: 600px; |
| | | .el-main { |
| | | height: 600px; |
| | | } |
| | | |
| | | .el-tree { |
| | | height: 100%; |
| | | } |
| | | } |
| | | .el-autocomplete { |
| | | width: 100%; |
| | | } |
| | | |
| | | #searchTable { |
| | | margin-top: 10px; |
| | | border-collapse: collapse; |
| | | width: 100%; |
| | | } |
| | | .el-select { |
| | | width: 100%; |
| | | } |
| | | |
| | | #searchTable td, |
| | | #searchTable th { |
| | | border: 1px solid #cad9ea; |
| | | color: #666; |
| | | height: 30px; |
| | | } |
| | | .el-aside { |
| | | padding: 20px; |
| | | background: #f3f5f8; |
| | | height: 600px; |
| | | |
| | | #ygxq table { |
| | | border-collapse: collapse; |
| | | margin: 0 auto; |
| | | text-align: center; |
| | | width: 100%; |
| | | margin-top: 20px; |
| | | .el-tree { |
| | | height: 100%; |
| | | } |
| | | } |
| | | |
| | | #ygxq table td, |
| | | #ygxq table th { |
| | | border: 1px solid #DDDCDC; |
| | | color: #666; |
| | | height: 30px; |
| | | } |
| | | #searchTable { |
| | | margin-top: 10px; |
| | | border-collapse: collapse; |
| | | width: 100%; |
| | | } |
| | | |
| | | #ygxq table thead th { |
| | | background-color: #CCE8EB; |
| | | width: 100px; |
| | | } |
| | | #searchTable td, |
| | | #searchTable th { |
| | | border: 1px solid #cad9ea; |
| | | color: #666; |
| | | height: 30px; |
| | | } |
| | | |
| | | #ygxq table tr:nth-child(odd) { |
| | | background: #fff; |
| | | } |
| | | #ygxq table { |
| | | border-collapse: collapse; |
| | | margin: 0 auto; |
| | | text-align: center; |
| | | width: 100%; |
| | | margin-top: 20px; |
| | | } |
| | | |
| | | #ygxq table tr:nth-child(even) { |
| | | background: #F5FAFA; |
| | | } |
| | | #ygxq table td, |
| | | #ygxq table th { |
| | | border: 1px solid #DDDCDC; |
| | | color: #666; |
| | | height: 30px; |
| | | } |
| | | |
| | | .tdTitle { |
| | | font-size: 14px; |
| | | font-weight: 700; |
| | | text-align: left; |
| | | } |
| | | #ygxq table thead th { |
| | | background-color: #CCE8EB; |
| | | width: 100px; |
| | | } |
| | | |
| | | .link_button { |
| | | color: #169BD5; |
| | | } |
| | | #ygxq table tr:nth-child(odd) { |
| | | background: #fff; |
| | | } |
| | | |
| | | .del_button { |
| | | color: #D9001B; |
| | | } |
| | | #ygxq table tr:nth-child(even) { |
| | | background: #F5FAFA; |
| | | } |
| | | |
| | | #dcygTable{ |
| | | border-collapse: collapse; |
| | | } |
| | | #dcygTable td{ |
| | | width: 130px; |
| | | text-align: center; |
| | | border: 1px solid darkgray; |
| | | height: 30px; |
| | | } |
| | | .tdTitle { |
| | | font-size: 14px; |
| | | font-weight: 700; |
| | | text-align: left; |
| | | } |
| | | |
| | | .link_button { |
| | | color: #169BD5; |
| | | } |
| | | |
| | | .del_button { |
| | | color: #D9001B; |
| | | } |
| | | |
| | | #dcygTable { |
| | | border-collapse: collapse; |
| | | } |
| | | |
| | | #dcygTable td { |
| | | width: 130px; |
| | | text-align: center; |
| | | border: 1px solid darkgray; |
| | | height: 30px; |
| | | font-size:15px; |
| | | } |
| | | </style> |
| | |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="3">员工编号: |
| | | <el-input v-model="queryParams.empNumb" placeholder="请输入内容" style="width:80px" /> |
| | | <el-input v-model="queryParams.empNumb" size="small" maxlength="20" style="width:85px" /> |
| | | </el-col> |
| | | <el-col :span="3">姓名: |
| | | <el-input v-model="queryParams.empName" placeholder="请输入内容" style="width:80px" /> |
| | | <el-input v-model="queryParams.empName" size="small" maxlength="10" style="width:110px" /> |
| | | </el-col> |
| | | <el-col :span="3">身份证号: |
| | | <el-input v-model="queryParams.certificateNumb" placeholder="请输入内容" style="width:80px" /> |
| | | <el-col :span="4">身份证号: |
| | | <el-input v-model="queryParams.certificateNumb" size="small" maxlength="18" style="width:140px" /> |
| | | </el-col> |
| | | <el-col :span="3">护卫点: |
| | | <el-input v-model="queryParams.deptName" placeholder="请输入内容" style="width:80px" /> |
| | | <el-input v-model="queryParams.deptName" size="small" maxlength="20" style="width:100px" /> |
| | | </el-col> |
| | | <el-col :span="2.5">入职日期:从 |
| | | <el-input v-model="queryParams.entryDateBegin" placeholder="请输入内容" style="width:80px" /> |
| | | <el-col :span="8">入职日期: |
| | | <el-date-picker |
| | | v-model="queryParams.entryDateStr" |
| | | size="small" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 400px;" |
| | | /> |
| | | </el-col> |
| | | <el-col :span="1.5">到 |
| | | <el-input v-model="queryParams.entryDateEnd" placeholder="请输入内容" style="width:80px" /> |
| | | </el-col> |
| | | <el-col :span="2.5">离职日期:从 |
| | | <el-input v-model="queryParams.attendMonthStart" placeholder="请输入内容" style="width:80px" /> |
| | | </el-col> |
| | | <el-col :span="1.5">到 |
| | | <el-input v-model="queryParams.attendMonthEnd" placeholder="请输入内容" style="width:80px" /> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="8">离职日期: |
| | | <el-date-picker |
| | | v-model="queryParams.dimissionDateStr" |
| | | size="small" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 400px;" |
| | | /> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <el-button type="primary">查询</el-button> |
| | | <el-button type="danger">重置</el-button> |
| | | <el-button size="mini" class="hr-but-all" type="primary" @click="search">查询</el-button> |
| | | <el-button size="mini" class="hr-but" type="danger" @click="resetSearch">重置</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <div v-show="advancedQueryShow"> |
| | |
| | | <tr> |
| | | <td>性别:</td> |
| | | <td> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">全部</el-radio> |
| | | <el-radio :label="6">男性</el-radio> |
| | | <el-radio :label="9">女性</el-radio> |
| | | <el-radio-group v-model="queryParams.sex"> |
| | | <el-radio label="">全部</el-radio> |
| | | <el-radio label="1">男性</el-radio> |
| | | <el-radio label="2">女性</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>最高学历:</td> |
| | | <td> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">全部</el-radio> |
| | | <el-radio :label="6">初中</el-radio> |
| | | <el-radio :label="9">高中</el-radio> |
| | | <el-radio :label="9">大专</el-radio> |
| | | <el-radio :label="9">本科</el-radio> |
| | | <el-radio :label="9">硕士</el-radio> |
| | | <el-radio :label="9">博士</el-radio> |
| | | <el-radio-group v-model="queryParams.education"> |
| | | <el-radio label="">全部</el-radio> |
| | | <el-radio label="91">无学历</el-radio> |
| | | <el-radio label="81">小学</el-radio> |
| | | <el-radio label="71">初中</el-radio> |
| | | <el-radio label="61">高中</el-radio> |
| | | <el-radio label="42">中技</el-radio> |
| | | <el-radio label="41">中专</el-radio> |
| | | <el-radio label="31">大学专科</el-radio> |
| | | <el-radio label="21">大学本科</el-radio> |
| | | <el-radio label="11">硕士</el-radio> |
| | | <el-radio label="10">博士</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>政治面貌:</td> |
| | | <td> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">全部</el-radio> |
| | | <el-radio :label="6">党员</el-radio> |
| | | <el-radio :label="9">团员</el-radio> |
| | | <el-radio :label="9">群众</el-radio> |
| | | <el-radio-group v-model="queryParams.politics"> |
| | | <el-radio label="">全部</el-radio> |
| | | <el-radio label="01">中共党员</el-radio> |
| | | <el-radio label="02">预备党员</el-radio> |
| | | <el-radio label="03">共青团员</el-radio> |
| | | <el-radio label="04">民革会员</el-radio> |
| | | <el-radio label="05">民盟盟员</el-radio> |
| | | <el-radio label="06">民建会员</el-radio> |
| | | <el-radio label="07">民进会员</el-radio> |
| | | <el-radio label="08">农工党员</el-radio> |
| | | <el-radio label="09">致公党员</el-radio> |
| | | <el-radio label="10">九三社员</el-radio> |
| | | <el-radio label="11">台盟盟员</el-radio> |
| | | <el-radio label="12">民主人士</el-radio> |
| | | <el-radio label="13">群众</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>年龄:</td> |
| | | <td> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">全部</el-radio> |
| | | <el-radio :label="6">18-29</el-radio> |
| | | <el-radio :label="9">30-39</el-radio> |
| | | <el-radio :label="9">40-49</el-radio> |
| | | <el-radio :label="9">50-59</el-radio> |
| | | <el-radio :label="9">60-69</el-radio> |
| | | <el-radio :label="9">69及以上</el-radio> |
| | | <el-radio-group v-model="queryParams.ageStr"> |
| | | <el-radio label="">全部</el-radio> |
| | | <el-radio label="18-29">18-29</el-radio> |
| | | <el-radio label="30-39">30-39</el-radio> |
| | | <el-radio label="40-49">40-49</el-radio> |
| | | <el-radio label="50-59">50-59</el-radio> |
| | | <el-radio label="60-69">60-69</el-radio> |
| | | <el-radio label="69-999">69及以上</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>档案情况:</td> |
| | | <td> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">全部</el-radio> |
| | | <el-radio :label="6">已移交</el-radio> |
| | | <el-radio :label="9">未移交</el-radio> |
| | | <el-radio-group v-model="queryParams.archivesStatus"> |
| | | <el-radio label="">全部</el-radio> |
| | | <el-radio label="0">已移交</el-radio> |
| | | <el-radio label="1">未移交</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>保险类型:</td> |
| | | <td> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">全部</el-radio> |
| | | <el-radio :label="6">深户(五险一档)</el-radio> |
| | | <el-radio :label="6">非深户(五险一档)</el-radio> |
| | | <el-radio :label="6">非深户(五险二档)</el-radio> |
| | | <el-radio :label="6">非深户(五险三档)</el-radio> |
| | | <el-radio :label="6">非深户(四险三档)</el-radio> |
| | | <el-radio-group v-model="queryParams.insuranceType"> |
| | | <el-radio label="">全部</el-radio> |
| | | <el-radio :label="1">深户(五险一档)</el-radio> |
| | | <el-radio :label="2">非深户(五险一档)</el-radio> |
| | | <el-radio :label="3">非深户(五险二档)</el-radio> |
| | | <el-radio :label="4">非深户(五险三档)</el-radio> |
| | | <el-radio :label="5">非深户(四险三档)</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td>员工状态:</td> |
| | | <td> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio :label="3">全部</el-radio> |
| | | <el-radio :label="6">正常离职</el-radio> |
| | | <el-radio :label="6">自离</el-radio> |
| | | <el-radio :label="6">公司辞退</el-radio> |
| | | <el-radio-group v-model="queryParams.empStatus"> |
| | | <el-radio label="">全部</el-radio> |
| | | <el-radio :label="1">在职</el-radio> |
| | | <el-radio :label="2">正常离职</el-radio> |
| | | <el-radio :label="3">自动离职</el-radio> |
| | | <el-radio :label="4">公司辞退</el-radio> |
| | | </el-radio-group> |
| | | </td> |
| | | </tr> |
| | |
| | | data() { |
| | | return { |
| | | total: 0, // 总数量 |
| | | queryParams: {}, // 查询参数 |
| | | queryParams: { |
| | | empNumb: '' |
| | | }, // 查询参数 |
| | | sort: {}, // 排序 |
| | | pagination: { // 分页参数 |
| | | size: 5, |
| | | num: 1 |
| | | }, |
| | | headerHeight: '70px', |
| | | headerHeight: '100px', |
| | | advancedQueryShow: false, |
| | | dialogTableVisible: false, |
| | | dialogShowDkda: false, |
| | |
| | | this.fetch() |
| | | }, |
| | | methods: { |
| | | resetSearch() { |
| | | this.queryParams = { |
| | | empNumb: '' |
| | | } |
| | | this.search() |
| | | }, |
| | | // 翻页方法 |
| | | search() { |
| | | this.queryParams.empName = this.queryParams.empNumb |
| | |
| | | var that = this |
| | | params.pageSize = this.pagination.size |
| | | params.pageNum = this.pagination.num |
| | | params.delFlag = 1 |
| | | params.delFlag = 0 |
| | | params.empStatus = 1 |
| | | this.$get('hr/empBaseInfo/list', { |
| | | ...params |
| | | }).then((r) => { |
| | |
| | | }, |
| | | advancedQueryShowMethods() { |
| | | if (this.advancedQueryShow) { |
| | | this.headerHeight = '70px' |
| | | this.headerHeight = '100px' |
| | | this.advancedQueryShow = false |
| | | } else { |
| | | this.headerHeight = '300px' |
| | | this.headerHeight = '330px' |
| | | this.advancedQueryShow = true |
| | | } |
| | | }, |
| | |
| | | background: #f3f5f8; |
| | | height: 600px; |
| | | |
| | | .el-tree { |
| | | height: 100%; |
| | | } |
| | | } |
| | | |
| | | #searchTable { |
| | |
| | | <el-col :span="3">护卫点: |
| | | <el-input v-model="queryParams.deptName" size="small" maxlength="20" style="width:100px" /> |
| | | </el-col> |
| | | <el-col :span="8">入职日期: |
| | | <el-col :span="9">入职日期: |
| | | <el-date-picker |
| | | v-model="queryParams.entryDateStr" |
| | | size="small" |
| | |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="8">离职日期: |
| | | <el-col :span="9">离职日期: |
| | | <el-date-picker |
| | | v-model="queryParams.dimissionDateStr" |
| | | size="small" |
| | |
| | |
|
| | | <div v-show="showArr[6].show">
|
| | | <el-row>
|
| | | <el-col :span="4">员工编号:
|
| | | <el-input v-model="queryParams.empNumb" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="3">姓名:
|
| | | <el-input v-model="queryParams.empName" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">身份证号:
|
| | | <el-input v-model="queryParams.certificateNumb" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">部门(护卫点):
|
| | | <el-input v-model="queryParams.deptName" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="2.5">辞职申请日期:从
|
| | | <el-input v-model="queryParams.applayDateDateStart" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="1.5">到
|
| | | <el-input v-model="queryParams.applayDateDateEnd" placeholder="请输入内容" style="width:80px" />
|
| | | <el-col :span="3">员工编号: |
| | | <el-input v-model="queryParams.empNumb" size="small" maxlength="20" style="width:85px" /> |
| | | </el-col> |
| | | <el-col :span="3">姓名: |
| | | <el-input v-model="queryParams.empName" size="small" maxlength="10" style="width:110px" /> |
| | | </el-col> |
| | | <el-col :span="4">身份证号: |
| | | <el-input v-model="queryParams.certificateNumb" size="small" maxlength="18" style="width:140px" /> |
| | | </el-col> |
| | | <el-col :span="3">护卫点: |
| | | <el-input v-model="queryParams.deptName" size="small" maxlength="20" style="width:100px" /> |
| | | </el-col> |
| | | <el-col :span="9">辞职申请日期: |
| | | <el-date-picker |
| | | v-model="queryParams.applayDateStr" |
| | | size="small" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 400px;" |
| | | /> |
| | | </el-col>
|
| | | <el-col :span="4">
|
| | | <el-button type="primary">查询</el-button>
|
| | | <el-button type="danger">重置</el-button>
|
| | | <el-button size="mini" class="hr-but-all" type="primary" @click="search">查询</el-button> |
| | | <el-button size="mini" class="hr-but" type="danger" @click="resetSearch">重置</el-button>
|
| | | </el-col>
|
| | | </el-row>
|
| | | <el-table ref="resignTable" :data="resignData" style="width: 100%;height: 70%;">
|
| | |
| | |
|
| | | <div v-show="showArr[7].show">
|
| | | <el-row>
|
| | | <el-col :span="4">员工编号:
|
| | | <el-input v-model="queryParams.empNumb" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="3">姓名:
|
| | | <el-input v-model="queryParams.empName" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">身份证号:
|
| | | <el-input v-model="queryParams.certificateNumb" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="3.5">部门(护卫点):
|
| | | <el-input v-model="queryParams.deptName" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="2.5">失业金领取日期:从
|
| | | <el-input v-model="queryParams.applayDateDateStart" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="1.5">到
|
| | | <el-input v-model="queryParams.applayDateDateEnd" placeholder="请输入内容" style="width:80px" />
|
| | | <el-col :span="3">员工编号: |
| | | <el-input v-model="queryParams.empNumb" size="small" maxlength="20" style="width:85px" /> |
| | | </el-col> |
| | | <el-col :span="3">姓名: |
| | | <el-input v-model="queryParams.empName" size="small" maxlength="10" style="width:110px" /> |
| | | </el-col> |
| | | <el-col :span="4">身份证号: |
| | | <el-input v-model="queryParams.certificateNumb" size="small" maxlength="18" style="width:140px" /> |
| | | </el-col> |
| | | <el-col :span="3">护卫点: |
| | | <el-input v-model="queryParams.deptName" size="small" maxlength="20" style="width:100px" /> |
| | | </el-col> |
| | | <el-col :span="9">失业金领取日期: |
| | | <el-date-picker |
| | | v-model="queryParams.applayDateStr" |
| | | size="small" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 400px;" |
| | | /> |
| | | </el-col>
|
| | | <el-col :span="4">
|
| | | <el-button type="primary">查询</el-button>
|
| | | <el-button type="danger">重置</el-button>
|
| | | <el-button size="mini" class="hr-but-all" type="primary" @click="search">查询</el-button> |
| | | <el-button size="mini" class="hr-but" type="danger" @click="resetSearch">重置</el-button>
|
| | | </el-col>
|
| | | </el-row>
|
| | | <el-table ref="unemploymentTable" :data="unemploymentData" style="width: 100%;height: 70%;">
|
| | |
| | |
|
| | | <div v-show="showArr[8].show">
|
| | | <el-row>
|
| | | <el-col :span="4">员工编号:
|
| | | <el-input v-model="queryParams.empNumb" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="3">姓名:
|
| | | <el-input v-model="queryParams.empName" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">身份证号:
|
| | | <el-input v-model="queryParams.certificateNumb" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">部门(护卫点):
|
| | | <el-input v-model="queryParams.deptName" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="2.5">入职日期:从
|
| | | <el-input v-model="queryParams.applayDateDateStart" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="1.5">到
|
| | | <el-input v-model="queryParams.applayDateDateEnd" placeholder="请输入内容" style="width:80px" />
|
| | | <el-col :span="3">员工编号: |
| | | <el-input v-model="queryParams.empNumb" size="small" maxlength="20" style="width:85px" /> |
| | | </el-col> |
| | | <el-col :span="3">姓名: |
| | | <el-input v-model="queryParams.empName" size="small" maxlength="10" style="width:110px" /> |
| | | </el-col> |
| | | <el-col :span="4">身份证号: |
| | | <el-input v-model="queryParams.certificateNumb" size="small" maxlength="18" style="width:140px" /> |
| | | </el-col> |
| | | <el-col :span="3">护卫点: |
| | | <el-input v-model="queryParams.deptName" size="small" maxlength="20" style="width:100px" /> |
| | | </el-col> |
| | | <el-col :span="9">入职日期: |
| | | <el-date-picker |
| | | v-model="queryParams.applayDateStr" |
| | | size="small" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 400px;" |
| | | /> |
| | | </el-col>
|
| | | <el-col :span="4">
|
| | | <el-button type="primary">查询</el-button>
|
| | | <el-button type="danger">重置</el-button>
|
| | | <el-button size="mini" class="hr-but-all" type="primary" @click="search">查询</el-button> |
| | | <el-button size="mini" class="hr-but" type="danger" @click="resetSearch">重置</el-button>
|
| | | </el-col>
|
| | | </el-row>
|
| | | <table class="searchTable">
|
| | | <tr>
|
| | | <td>社保档位:</td>
|
| | | <td>
|
| | | <el-radio-group v-model="radio">
|
| | | <el-radio-group v-model="queryParams.insuranceGaers">
|
| | | <el-radio label="">全部</el-radio>
|
| | | <el-radio :label="6">深户(五险一档)</el-radio>
|
| | | <el-radio :label="6">非深户(五险一档)</el-radio>
|
| | | <el-radio :label="6">非深户(五险二档)</el-radio>
|
| | | <el-radio :label="6">非深户(五险三档)</el-radio>
|
| | | <el-radio :label="6">非深户(四险三档)</el-radio>
|
| | | <el-radio :label="1">深户(五险一档)</el-radio>
|
| | | <el-radio :label="2">非深户(五险一档)</el-radio>
|
| | | <el-radio :label="3">非深户(五险二档)</el-radio>
|
| | | <el-radio :label="4">非深户(五险三档)</el-radio>
|
| | | <el-radio :label="5">非深户(四险三档)</el-radio>
|
| | | </el-radio-group>
|
| | | </td>
|
| | | </tr>
|
| | | <tr>
|
| | | <td>是否已报告:</td>
|
| | | <td>
|
| | | <el-radio-group v-model="radio">
|
| | | <el-radio-group v-model="queryParams.reportStatus">
|
| | | <el-radio label="">全部</el-radio>
|
| | | <el-radio :label="6">已报告</el-radio>
|
| | | <el-radio :label="6">未报告</el-radio>
|
| | | <el-radio :label="0">已报告</el-radio>
|
| | | <el-radio :label="1">未报告</el-radio>
|
| | | </el-radio-group>
|
| | | </td>
|
| | | </tr>
|
| | |
| | |
|
| | | <div v-show="showArr[9].show">
|
| | | <el-row>
|
| | | <el-col :span="4">员工编号:
|
| | | <el-input v-model="queryParams.empNumb" placeholder="请输入内容" style="width:80px" />
|
| | | <el-col :span="3">员工编号: |
| | | <el-input v-model="queryParams.empNumb" size="small" maxlength="20" style="width:85px" /> |
| | | </el-col> |
| | | <el-col :span="3">姓名: |
| | | <el-input v-model="queryParams.empName" size="small" maxlength="10" style="width:110px" /> |
| | | </el-col> |
| | | <el-col :span="4">身份证号: |
| | | <el-input v-model="queryParams.certificateNumb" size="small" maxlength="18" style="width:140px" /> |
| | | </el-col> |
| | | <el-col :span="3">护卫点: |
| | | <el-input v-model="queryParams.deptName" size="small" maxlength="20" style="width:100px" /> |
| | | </el-col> |
| | | <el-col :span="9">受伤日期: |
| | | <el-date-picker |
| | | v-model="queryParams.injuredTimeStr" |
| | | size="small" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 400px;" |
| | | /> |
| | | </el-col>
|
| | | <el-col :span="3">姓名:
|
| | | <el-input v-model="queryParams.empName" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">身份证号:
|
| | | <el-input v-model="queryParams.certificateNumb" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">部门(护卫点):
|
| | | <el-input v-model="queryParams.deptName" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">受伤日期:从
|
| | | <el-input v-model="queryParams.applayDateDateStart" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="2">到
|
| | | <el-input v-model="queryParams.applayDateDateEnd" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="2.5">人事处理时间:从
|
| | | <el-input v-model="queryParams.applayDateDateStart" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="1.5">到
|
| | | <el-input v-model="queryParams.applayDateDateEnd" placeholder="请输入内容" style="width:80px" />
|
| | | <el-col :span="9">人事处理时间: |
| | | <el-date-picker |
| | | v-model="queryParams.hrDoDateStr" |
| | | size="small" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 400px;" |
| | | /> |
| | | </el-col>
|
| | | <el-col :span="4">
|
| | | <el-button type="primary">查询</el-button>
|
| | | <el-button type="danger">重置</el-button>
|
| | | <el-button size="mini" class="hr-but-all" type="primary" @click="search">查询</el-button> |
| | | <el-button size="mini" class="hr-but" type="danger" @click="resetSearch">重置</el-button>
|
| | | </el-col>
|
| | | </el-row>
|
| | | <table class="searchTable">
|
| | | <tr>
|
| | | <td>是否住院:</td>
|
| | | <td>
|
| | | <el-radio-group v-model="radio">
|
| | | <el-radio-group v-model="queryParams.hospitalizatioFlag">
|
| | | <el-radio label="">全部</el-radio>
|
| | | <el-radio :label="6">是</el-radio>
|
| | | <el-radio :label="6">否</el-radio>
|
| | | <el-radio :label="1">是</el-radio>
|
| | | <el-radio :label="0">否</el-radio>
|
| | | </el-radio-group>
|
| | | </td>
|
| | | </tr>
|
| | | <tr>
|
| | | <td>案结状态:</td>
|
| | | <td>
|
| | | <el-radio-group v-model="radio">
|
| | | <el-radio-group v-model="queryParams.settleStatus">
|
| | | <el-radio label="">全部</el-radio>
|
| | | <el-radio :label="6">已结案</el-radio>
|
| | | <el-radio :label="6">未结案</el-radio>
|
| | | <el-radio :label="1">已结案</el-radio>
|
| | | <el-radio :label="0">未结案</el-radio>
|
| | | </el-radio-group>
|
| | | </td>
|
| | | </tr>
|
| | |
| | |
|
| | | <div v-show="showArr[10].show">
|
| | | <el-row>
|
| | | <el-col :span="4">员工编号:
|
| | | <el-input v-model="queryParams.empNumb" placeholder="请输入内容" style="width:80px" />
|
| | | <el-col :span="3">员工编号: |
| | | <el-input v-model="queryParams.empNumb" size="small" maxlength="20" style="width:85px" /> |
| | | </el-col> |
| | | <el-col :span="3">姓名: |
| | | <el-input v-model="queryParams.empName" size="small" maxlength="10" style="width:110px" /> |
| | | </el-col> |
| | | <el-col :span="4">身份证号: |
| | | <el-input v-model="queryParams.certificateNumb" size="small" maxlength="18" style="width:140px" /> |
| | | </el-col> |
| | | <el-col :span="3">护卫点: |
| | | <el-input v-model="queryParams.deptName" size="small" maxlength="20" style="width:100px" /> |
| | | </el-col>
|
| | | <el-col :span="3">姓名:
|
| | | <el-input v-model="queryParams.empName" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">身份证号:
|
| | | <el-input v-model="queryParams.certificateNumb" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">部门(护卫点):
|
| | | <el-input v-model="queryParams.deptName" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">受伤日期:从
|
| | | <el-input v-model="queryParams.applayDateDateStart" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="2">到
|
| | | <el-input v-model="queryParams.applayDateDateEnd" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="2.5">人事处理时间:从
|
| | | <el-input v-model="queryParams.applayDateDateStart" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="1.5">到
|
| | | <el-input v-model="queryParams.applayDateDateEnd" placeholder="请输入内容" style="width:80px" />
|
| | | <el-col :span="9">受伤日期: |
| | | <el-date-picker |
| | | v-model="queryParams.injuredTimeStr" |
| | | size="small" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 400px;" |
| | | /> |
| | | </el-col> |
| | | <el-col :span="9">人事处理时间: |
| | | <el-date-picker |
| | | v-model="queryParams.hrDoDateStr" |
| | | size="small" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 400px;" |
| | | /> |
| | | </el-col>
|
| | | <el-col :span="4">
|
| | | <el-button type="primary">查询</el-button>
|
| | | <el-button type="danger">重置</el-button>
|
| | | <el-button size="mini" class="hr-but-all" type="primary" @click="search">查询</el-button> |
| | | <el-button size="mini" class="hr-but" type="danger" @click="resetSearch">重置</el-button>
|
| | | </el-col>
|
| | | </el-row>
|
| | | <table class="searchTable">
|
| | | <tr>
|
| | | <td>是否住院:</td>
|
| | | <td>
|
| | | <el-radio-group v-model="radio">
|
| | | <el-radio-group v-model="queryParams.hospitalizatioFlag">
|
| | | <el-radio label="">全部</el-radio>
|
| | | <el-radio :label="6">是</el-radio>
|
| | | <el-radio :label="6">否</el-radio>
|
| | | <el-radio :label="1">是</el-radio>
|
| | | <el-radio :label="0">否</el-radio>
|
| | | </el-radio-group>
|
| | | </td>
|
| | | </tr>
|
| | | <tr>
|
| | | <td>案结状态:</td>
|
| | | <td>
|
| | | <el-radio-group v-model="radio">
|
| | | <el-radio-group v-model="queryParams.settleStatus">
|
| | | <el-radio label="">全部</el-radio>
|
| | | <el-radio :label="6">已结案</el-radio>
|
| | | <el-radio :label="6">未结案</el-radio>
|
| | | <el-radio :label="1">已结案</el-radio>
|
| | | <el-radio :label="0">未结案</el-radio>
|
| | | </el-radio-group>
|
| | | </td>
|
| | | </tr>
|
| | |
| | |
|
| | | <div v-show="showArr[11].show">
|
| | | <el-row>
|
| | | <el-col :span="4">员工编号:
|
| | | <el-input v-model="queryParams.empNumb" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="3">姓名:
|
| | | <el-input v-model="queryParams.empName" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">身份证号:
|
| | | <el-input v-model="queryParams.certificateNumb" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">部门(护卫点):
|
| | | <el-input v-model="queryParams.deptName" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">仲裁日期:从
|
| | | <el-input v-model="queryParams.applayDateDateStart" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="2">到
|
| | | <el-input v-model="queryParams.applayDateDateEnd" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="2.5">案结日期:从
|
| | | <el-input v-model="queryParams.applayDateDateStart" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="1.5">到
|
| | | <el-input v-model="queryParams.applayDateDateEnd" placeholder="请输入内容" style="width:80px" />
|
| | | <el-col :span="3">员工编号: |
| | | <el-input v-model="queryParams.empNumb" size="small" maxlength="20" style="width:85px" /> |
| | | </el-col> |
| | | <el-col :span="3">姓名: |
| | | <el-input v-model="queryParams.empName" size="small" maxlength="10" style="width:110px" /> |
| | | </el-col> |
| | | <el-col :span="4">身份证号: |
| | | <el-input v-model="queryParams.certificateNumb" size="small" maxlength="18" style="width:140px" /> |
| | | </el-col> |
| | | <el-col :span="3">护卫点: |
| | | <el-input v-model="queryParams.deptName" size="small" maxlength="20" style="width:100px" /> |
| | | </el-col> |
| | | <el-col :span="9">仲裁日期: |
| | | <el-date-picker |
| | | v-model="queryParams.arbitrationDateStr" |
| | | size="small" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 400px;" |
| | | /> |
| | | </el-col> |
| | | <el-col :span="9">案结日期: |
| | | <el-date-picker |
| | | v-model="queryParams.settleDateStr" |
| | | size="small" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 400px;" |
| | | /> |
| | | </el-col>
|
| | | <el-col :span="4">
|
| | | <el-button type="primary">查询</el-button>
|
| | | <el-button type="danger">重置</el-button>
|
| | | <el-button size="mini" class="hr-but-all" type="primary" @click="search">查询</el-button> |
| | | <el-button size="mini" class="hr-but" type="danger" @click="resetSearch">重置</el-button>
|
| | | </el-col>
|
| | | </el-row>
|
| | | <table class="searchTable">
|
| | | <tr>
|
| | | <td>仲裁类型:</td>
|
| | | <td>
|
| | | <el-radio-group v-model="radio">
|
| | | <el-radio-group v-model="queryParams.arbitrationType">
|
| | | <el-radio label="">全部</el-radio>
|
| | | <el-radio :label="6">劳资纠纷</el-radio>
|
| | | <el-radio :label="6">劳资纠纷</el-radio>
|
| | | <el-radio :label="0">劳资纠纷</el-radio>
|
| | | <el-radio :label="1">劳资纠纷</el-radio>
|
| | | </el-radio-group>
|
| | | </td>
|
| | | </tr>
|
| | | <tr>
|
| | | <td>案结状态:</td>
|
| | | <td>仲裁状态:</td>
|
| | | <td>
|
| | | <el-radio-group v-model="radio">
|
| | | <el-radio-group v-model="queryParams.arbitrationStatus">
|
| | | <el-radio label="">全部</el-radio>
|
| | | <el-radio :label="6">已结案</el-radio>
|
| | | <el-radio :label="6">未结案</el-radio>
|
| | | <el-radio :label="1">已结案</el-radio>
|
| | | <el-radio :label="0">未结案</el-radio>
|
| | | </el-radio-group>
|
| | | </td>
|
| | | </tr>
|
| | |
| | |
|
| | | <div v-show="showArr[12].show">
|
| | | <el-row>
|
| | | <el-col :span="4">员工编号:
|
| | | <el-input v-model="queryParams.empNumb" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="3">姓名:
|
| | | <el-input v-model="queryParams.empName" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">身份证号:
|
| | | <el-input v-model="queryParams.certificateNumb" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">部门(护卫点):
|
| | | <el-input v-model="queryParams.deptName" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="3.5">失业金领取日期:从
|
| | | <el-input v-model="queryParams.applayDateDateStart" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="1.5">到
|
| | | <el-input v-model="queryParams.applayDateDateEnd" placeholder="请输入内容" style="width:80px" />
|
| | | <el-col :span="3">员工编号: |
| | | <el-input v-model="queryParams.empNumb" size="small" maxlength="20" style="width:85px" /> |
| | | </el-col> |
| | | <el-col :span="3">姓名: |
| | | <el-input v-model="queryParams.empName" size="small" maxlength="10" style="width:110px" /> |
| | | </el-col> |
| | | <el-col :span="4">身份证号: |
| | | <el-input v-model="queryParams.certificateNumb" size="small" maxlength="18" style="width:140px" /> |
| | | </el-col> |
| | | <el-col :span="3">护卫点: |
| | | <el-input v-model="queryParams.deptName" size="small" maxlength="20" style="width:100px" /> |
| | | </el-col> |
| | | <el-col :span="9">不良记录日期: |
| | | <el-date-picker |
| | | v-model="queryParams.badDateStr" |
| | | size="small" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 400px;" |
| | | /> |
| | | </el-col>
|
| | | <el-col :span="3.5">
|
| | | <el-button type="primary">查询</el-button>
|
| | | <el-button type="danger">重置</el-button>
|
| | | <el-button size="mini" class="hr-but-all" type="primary" @click="search">查询</el-button> |
| | | <el-button size="mini" class="hr-but" type="danger" @click="resetSearch">重置</el-button>
|
| | | </el-col>
|
| | | </el-row>
|
| | | <el-table ref="badRecordTable" :data="badRecordData" style="width: 100%;height: 70%;">
|
| | |
| | |
|
| | | <div v-show="showArr[13].show">
|
| | | <el-row>
|
| | | <el-col :span="4">员工编号:
|
| | | <el-input v-model="queryParams.empNumb" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="3">姓名:
|
| | | <el-input v-model="queryParams.empName" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">身份证号:
|
| | | <el-input v-model="queryParams.certificateNumb" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="4">部门(护卫点):
|
| | | <el-input v-model="queryParams.deptName" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="3.5">备注日期:从
|
| | | <el-input v-model="queryParams.applayDateDateStart" placeholder="请输入内容" style="width:80px" />
|
| | | </el-col>
|
| | | <el-col :span="1.5">到
|
| | | <el-input v-model="queryParams.applayDateDateEnd" placeholder="请输入内容" style="width:80px" />
|
| | | <el-col :span="3">员工编号: |
| | | <el-input v-model="queryParams.empNumb" size="small" maxlength="20" style="width:85px" /> |
| | | </el-col> |
| | | <el-col :span="3">姓名: |
| | | <el-input v-model="queryParams.empName" size="small" maxlength="10" style="width:110px" /> |
| | | </el-col> |
| | | <el-col :span="4">身份证号: |
| | | <el-input v-model="queryParams.certificateNumb" size="small" maxlength="18" style="width:140px" /> |
| | | </el-col> |
| | | <el-col :span="3">护卫点: |
| | | <el-input v-model="queryParams.deptName" size="small" maxlength="20" style="width:100px" /> |
| | | </el-col> |
| | | <el-col :span="9">备注日期: |
| | | <el-date-picker |
| | | v-model="queryParams.remarkDateStr" |
| | | size="small" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 400px;" |
| | | /> |
| | | </el-col>
|
| | | <el-col :span="3.5">
|
| | | <el-button type="primary">查询</el-button>
|
| | | <el-button type="danger">重置</el-button>
|
| | | <el-button size="mini" class="hr-but-all" type="primary" @click="search">查询</el-button> |
| | | <el-button size="mini" class="hr-but" type="danger" @click="resetSearch">重置</el-button>
|
| | | </el-col>
|
| | | </el-row>
|
| | | <el-table ref="remarkInfoTable" :data="remarkInfoData" style="width: 100%;height: 70%;">
|
| | |
| | | <template>
|
| | | <div id="mainDiv">
|
| | | <el-header :height="headerHeight">
|
| | | <el-row>
|
| | | <template> |
| | | <div id="mainDiv"> |
| | | <el-header :height="headerHeight"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-input v-model="queryParams.empNumb" placeholder="请输入内容" style="width:200px" /> |
| | | <el-button type="primary" @click="search">查询</el-button> |
| | | </el-col>
|
| | | </el-row>
|
| | | </el-header>
|
| | | <el-main>
|
| | | </el-col> |
| | | </el-row> |
| | | </el-header> |
| | | <el-main> |
| | | <el-table |
| | | ref="multipleTable" |
| | | :data="list" |
| | | row-key="prop1" |
| | | width="50%" |
| | | @selection-change="handleSelectionChange"
|
| | | @selection-change="handleSelectionChange" |
| | | @row-dblclick="rowDblclick" |
| | | >
|
| | | <el-table-column type="selection" :reserve-selection="false" width="55" />
|
| | | <el-table-column v-if="show" prop="empId" label="员工Id" />
|
| | | <el-table-column prop="empNumb" label="员工编号" />
|
| | | <el-table-column prop="empName" label="姓名" />
|
| | | <el-table-column prop="certificateNumb" label="身份证号码" width="180" />
|
| | | <el-table-column v-if="show" prop="deptId" label="部门Id" />
|
| | | <el-table-column prop="deptName" label="护卫点" />
|
| | | <el-table-column v-if="show" prop="jobId" label="岗位Id" />
|
| | | <el-table-column prop="jobName" label="岗位" />
|
| | | <el-table-column prop="empTypeName" label="员工类别" />
|
| | | <el-table-column prop="sexName" label="性别" width="50" />
|
| | | </el-table>
|
| | | <!--
|
| | | page.sync 当前页
|
| | | limit.sync 每页显示数量 只能是5,10,20,30,50
|
| | | pagination 翻页的事件
|
| | | -->
|
| | | > |
| | | <el-table-column type="selection" :reserve-selection="false" width="55" /> |
| | | <el-table-column v-if="show" prop="empId" label="员工Id" /> |
| | | <el-table-column prop="empNumb" label="员工编号" /> |
| | | <el-table-column prop="empName" label="姓名" /> |
| | | <el-table-column prop="certificateNumb" label="身份证号码" width="180" /> |
| | | <el-table-column v-if="show" prop="deptId" label="部门Id" /> |
| | | <el-table-column prop="deptName" label="护卫点" /> |
| | | <el-table-column v-if="show" prop="jobId" label="岗位Id" /> |
| | | <el-table-column prop="jobName" label="岗位" /> |
| | | <el-table-column prop="empTypeName" label="员工类别" /> |
| | | <el-table-column prop="sexName" label="性别" width="50" /> |
| | | </el-table> |
| | | <!-- |
| | | page.sync 当前页 |
| | | limit.sync 每页显示数量 只能是5,10,20,30,50 |
| | | pagination 翻页的事件 |
| | | --> |
| | | <pagination |
| | | v-show="total>0" |
| | | :total="total" |
| | | :page.sync="pagination.num" |
| | | :limit.sync="pagination.size"
|
| | | :limit.sync="pagination.size" |
| | | @pagination="search" |
| | | />
|
| | | <el-button type="primary" @click="sureChoose">确定</el-button>
|
| | | <el-button type="danger" @click="cancleChoose">取消</el-button>
|
| | | </el-main>
|
| | | </div>
|
| | | </template>
|
| | | <script>
|
| | | // 引用翻页组件
|
| | | import Pagination from '@/components/Pagination'
|
| | | export default {
|
| | | components: {
|
| | | Pagination
|
| | | },
|
| | | props: {
|
| | | multipleselect: {
|
| | | type: Boolean,
|
| | | default: false
|
| | | }
|
| | | },
|
| | | data() {
|
| | | return {
|
| | | show: false,
|
| | | headerHeight: '70px',
|
| | | deptTree: [],
|
| | | selection: [],
|
| | | multipleSelection: [],
|
| | | total: 0, // 总数量
|
| | | queryParams: {}, // 查询参数
|
| | | sort: {}, // 排序
|
| | | pagination: { // 分页参数
|
| | | size: 5,
|
| | | num: 1
|
| | | },
|
| | | list: [], // 给table显示的数据
|
| | | defaultProps: {
|
| | | children: 'children',
|
| | | label: 'label'
|
| | | }
|
| | | }
|
| | | },
|
| | | mounted() {
|
| | | this.search()
|
| | | },
|
| | | methods: {
|
| | | // 翻页方法
|
| | | /> |
| | | <el-button type="primary" @click="sureChoose">确定</el-button> |
| | | <el-button type="danger" @click="cancleChoose">取消</el-button> |
| | | </el-main> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | // 引用翻页组件 |
| | | import Pagination from '@/components/Pagination' |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | props: { |
| | | multipleselect: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | show: false, |
| | | headerHeight: '70px', |
| | | deptTree: [], |
| | | selection: [], |
| | | multipleSelection: [], |
| | | total: 0, // 总数量 |
| | | queryParams: { |
| | | empNumb: '' |
| | | }, // 查询参数 |
| | | sort: {}, // 排序 |
| | | pagination: { // 分页参数 |
| | | size: 20, |
| | | num: 1 |
| | | }, |
| | | list: [], // 给table显示的数据 |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'label' |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | // 翻页方法 |
| | | search() { |
| | | this.queryParams.empName = this.queryParams.empNumb |
| | | this.queryParams.deptName = this.queryParams.empNumb
|
| | | this.fetch({
|
| | | ...this.queryParams,
|
| | | ...this.sort
|
| | | })
|
| | | },
|
| | | fetch(params = {}) {
|
| | | var that = this
|
| | | params.pageSize = this.pagination.size
|
| | | params.pageNum = this.pagination.num
|
| | | this.$get('hr/empBaseInfo/list', {
|
| | | ...params
|
| | | }).then((r) => {
|
| | | const data = r.data.data
|
| | | that.total = data.total
|
| | | that.list = data.rows
|
| | | })
|
| | | },
|
| | | this.queryParams.deptName = this.queryParams.empNumb |
| | | this.queryParams.delFlag = 0 |
| | | this.fetch({ |
| | | ...this.queryParams, |
| | | ...this.sort |
| | | }) |
| | | }, |
| | | fetch(params = {}) { |
| | | var that = this |
| | | params.pageSize = this.pagination.size |
| | | params.pageNum = this.pagination.num |
| | | this.$get('hr/empBaseInfo/list', { |
| | | ...params |
| | | }).then((r) => { |
| | | const data = r.data.data |
| | | that.total = data.total |
| | | that.list = data.rows |
| | | }) |
| | | }, |
| | | handleSelectionChange(selection) { |
| | | if (!this.multipleselect) {
|
| | | if (selection.length > 1) {
|
| | | this.$refs.multipleTable.clearSelection()
|
| | | this.$refs.multipleTable.toggleRowSelection(selection.pop())
|
| | | }
|
| | | }
|
| | | this.multipleSelection = selection
|
| | | },
|
| | | sureChoose() {
|
| | | this.$emit('selectedUser', this.multipleSelection)
|
| | | this.$refs.multipleTable.clearSelection()
|
| | | },
|
| | | cancleChoose() {
|
| | | this.$emit('cancleChooseUser')
|
| | | this.$refs.multipleTable.clearSelection()
|
| | | },
|
| | | rowDblclick(row, column, event) {
|
| | | this.$refs.multipleTable.toggleRowSelection(row, true)
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | | <style lang="scss" scoped>
|
| | | .link_button {
|
| | | color: #169BD5;
|
| | | }
|
| | |
|
| | | .del_button {
|
| | | color: #D9001B;
|
| | | }
|
| | | if (!this.multipleselect) { |
| | | if (selection.length > 1) { |
| | | this.$refs.multipleTable.clearSelection() |
| | | this.$refs.multipleTable.toggleRowSelection(selection.pop()) |
| | | } |
| | | } |
| | | this.multipleSelection = selection |
| | | }, |
| | | sureChoose() { |
| | | this.$emit('selectedUser', this.multipleSelection) |
| | | this.$refs.multipleTable.clearSelection() |
| | | }, |
| | | cancleChoose() { |
| | | this.$emit('cancleChooseUser') |
| | | this.$refs.multipleTable.clearSelection() |
| | | }, |
| | | rowDblclick(row, column, event) { |
| | | this.$refs.multipleTable.toggleRowSelection(row, true) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .link_button { |
| | | color: #169BD5; |
| | | } |
| | | |
| | | .del_button { |
| | | color: #D9001B; |
| | | } |
| | | </style> |
| | |
| | | </el-form>
|
| | | <el-row style="margin: 10px;">
|
| | | <el-col :span="24">
|
| | | <el-button class="hr-but-all" type="danger">新建标签</el-button>
|
| | | <el-button type="primary">删除标签</el-button>
|
| | | <el-popconfirm title="是否删除所选择的附件?">
|
| | | <el-button slot="reference" class="hr-but-all" type="danger" @click="delfj()">删除附件</el-button>
|
| | | <el-button class="hr-but-all" type="danger" @click="dialogFormVisible = true">新建标签</el-button>
|
| | | <el-popconfirm title="是否删除标签?" @onConfirm="deldialogFormVisible = true">
|
| | | <el-button slot="reference" class="hr-but" type="danger">删除标签</el-button>
|
| | | </el-popconfirm>
|
| | | <el-button class="hr-but-all" type="danger" @click="downloadfj()">下载附件</el-button>
|
| | | <el-button class="hr-but-all" type="danger" @click="dialogShow()">附件管理</el-button>
|
| | | <el-dialog title="附件管理" :visible.sync="dialogShowUploadfj" :fullscreen="true">
|
| | | <uploadfj @cancleChooseUser="cancleChooseUser()" />
|
| | | <el-button class="hr-but-all" type="danger" @click="downloaddialogFormVisible = true">下载附件</el-button>
|
| | | <el-dialog
|
| | | title="新建标签"
|
| | | :visible.sync="dialogFormVisible"
|
| | | width="25%"
|
| | | class="add-label"
|
| | | >
|
| | | <el-form ref="labelform" :model="labelform" :rules="rules">
|
| | | <el-form-item
|
| | | label="标签名称:"
|
| | | :label-width="formLabelWidth"
|
| | | prop="labelname"
|
| | | >
|
| | | <el-input v-model="labelform.labelname" autocomplete="off" />
|
| | | </el-form-item>
|
| | | <el-form-item
|
| | | label="标签code:"
|
| | | :label-width="formLabelWidth"
|
| | | prop="labelcode"
|
| | | >
|
| | | <el-input v-model="labelform.labelcode" autocomplete="off" />
|
| | | </el-form-item>
|
| | | <el-form-item label="标签排序:" :label-width="formLabelWidth" prop="sort">
|
| | | <el-input-number
|
| | | v-model="labelform.sort"
|
| | | :min="0"
|
| | | :max="100"
|
| | | label="排序"
|
| | | />
|
| | | </el-form-item></el-form>
|
| | | <div slot="footer" class="dialog-footer">
|
| | | <el-button @click="dialogFormVisible = false">取 消</el-button>
|
| | | <el-button
|
| | | type="primary"
|
| | | @click="addlabel('labelform')"
|
| | | >确 定</el-button>
|
| | | </div>
|
| | | </el-dialog>
|
| | | <el-dialog
|
| | | title="删除标签"
|
| | | :visible.sync="deldialogFormVisible"
|
| | | width="25%"
|
| | | class="add-label"
|
| | | >
|
| | | <el-form ref="dellabelform" :model="labelform" :rules="delrules">
|
| | | <el-form-item
|
| | | label="标签名称:"
|
| | | :label-width="formLabelWidth"
|
| | | prop="labelid"
|
| | | >
|
| | | <el-select v-model="labelform.labelid" placeholder="请选择标签名称">
|
| | | <el-option
|
| | | v-for="item in labelData"
|
| | | :key="item.labelid"
|
| | | :value="item.labelid"
|
| | | :label="item.labelname"
|
| | | />
|
| | | </el-select>
|
| | | </el-form-item>
|
| | | </el-form>
|
| | | <div slot="footer" class="dialog-footer">
|
| | | <el-button @click="deldialogFormVisible = false">取 消</el-button>
|
| | | <el-button
|
| | | type="primary"
|
| | | @click="dellabel('dellabelform')"
|
| | | >确 定</el-button>
|
| | | </div>
|
| | | </el-dialog>
|
| | | <el-dialog
|
| | | title="下载附件"
|
| | | :visible.sync="downloaddialogFormVisible"
|
| | | width="25%"
|
| | | class="add-label"
|
| | | >
|
| | | <el-form ref="dellabelform" :model="labelform" :rules="delrules">
|
| | | <el-form-item
|
| | | label="标签名称:"
|
| | | :label-width="formLabelWidth"
|
| | | prop="labelid"
|
| | | >
|
| | | <el-select v-model="labelform.labelid" placeholder="请选择标签名称">
|
| | | <el-option
|
| | | key="-1"
|
| | | value="-1"
|
| | | label="全部"
|
| | | />
|
| | | <el-option
|
| | | v-for="item in labelData"
|
| | | :key="item.labelid"
|
| | | :value="item.labelid"
|
| | | :label="item.labelname"
|
| | | />
|
| | | </el-select>
|
| | | </el-form-item>
|
| | | </el-form>
|
| | | <div slot="footer" class="dialog-footer">
|
| | | <el-button @click="downloaddialogFormVisible = false">取 消</el-button>
|
| | | <el-button
|
| | | type="primary"
|
| | | @click="downloadlabel('dellabelform')"
|
| | | >确 定</el-button>
|
| | | </div>
|
| | | </el-dialog>
|
| | |
|
| | | </el-col>
|
| | | </el-row>
|
| | | </el-header>
|
| | | <el-dialog title="附件管理" :visible.sync="dialogShowUploadfj" :fullscreen="true">
|
| | | <uploadfj v-if="dialogShowUploadfj" :rowitem="rowitem" @cancleChooseUser="cancleChooseUser()" />
|
| | | </el-dialog>
|
| | | <el-container>
|
| | | <el-main>
|
| | | <el-table :data="tableData" class="fj-table" style="width: 100%;height: 480px;color: #000;">
|
| | | <el-table ref="empAccessoryTable" :data="tableData" class="fj-table" style="width: 100%;height: 480px;color: #000;">
|
| | | <el-table-column
|
| | | type="selection"
|
| | | width="55"
|
| | |
| | | <el-button
|
| | | type="text"
|
| | | size="small"
|
| | | @click.native.prevent="deleteRow(scope.$index, tableData)"
|
| | | @click.native.prevent="dialogShow(scope.$index, scope.row)"
|
| | | >
|
| | | 上传
|
| | | </el-button>
|
| | |
| | | <el-table-column prop="certificateNumb" label="身份证号" width="180" />
|
| | | <el-table-column prop="deptName" label="护卫点(部门)" width="180" />
|
| | | <el-table-column prop="jobName" label="岗位" width="100" />
|
| | | <el-table-column prop="jljt" label="记录截图">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary"> {{ scope.row.jljt }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="zp" label="照片">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary"> {{ scope.row.zp }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="ldht" label="劳动合同">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary"> {{ scope.row.ldht }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="sfz" label="身份证">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary"> {{ scope.row.sfz }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <template v-for="(col) in labelData">
|
| | | <el-table-column :key="col.labelid" :prop="col.labelcode" :label="col.labelname">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary"> {{ scope.row[col.labelcode] }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | </template>
|
| | |
|
| | | <el-table-column prop="rzb" label="入职表">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary">
|
| | | {{ scope.row.rzb }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="tjb" label="体检表">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary">
|
| | | {{ scope.row.tjb }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="hz" label="回执">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary">
|
| | | {{ scope.row.hz }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="yhk" label="银行卡">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary">
|
| | | {{ scope.row.yhk }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="xgzj" label="相关证件">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary">
|
| | | {{ scope.row.xgzj }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="xght" label="相关合同">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary">{{ scope.row.xght }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="qj" label="请假">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary">{{ scope.row.qj }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="cf" label="处罚">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary"> {{ scope.row.cf }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="czsq" label="辞职申请">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary"> {{ scope.row.czsq }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="lzsx" label="离职手续">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary"> {{ scope.row.lzsx }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="zl" label="自离">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary"> {{ scope.row.zl }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="sb" label="社保">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary">{{ scope.row.sb }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="syj" label="失业金">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary"> {{ scope.row.syj }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="ywx" label="意外险">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary">{{ scope.row.ywx }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="gs" label="工伤">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary"> {{ scope.row.gs }}</el-link>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="lz" label="劳资">
|
| | | <template slot-scope="scope">
|
| | | <el-link type="primary"> {{ scope.row.lz }}</el-link>
|
| | | </template>
|
| | | </el-table-column></el-table>
|
| | | </el-table>
|
| | | <pagination
|
| | | v-show="total>0"
|
| | | :total="total"
|
| | |
| | | },
|
| | | data() {
|
| | | return {
|
| | | downloaddialogFormVisible: false,
|
| | | deldialogFormVisible: false,
|
| | | formLabelWidth: '100px',
|
| | | dialogFormVisible: false,
|
| | | labelform: {
|
| | | labelname: '',
|
| | | labelid: '',
|
| | | labelcode: '',
|
| | | empIds: '',
|
| | | sort: 0
|
| | | },
|
| | | rules: {
|
| | | labelname: [
|
| | | { required: true, message: '请输入标签名称', trigger: 'blur' },
|
| | | { min: 2, max: 10, message: '长度在 2 到 10 个字符', trigger: 'blur' }
|
| | | ],
|
| | | labelcode: [
|
| | | { required: true, message: '请输入标签code', trigger: 'blur' },
|
| | | { min: 3, max: 10, message: '长度在 3 到 20 个字符', trigger: 'blur' }
|
| | | ],
|
| | | sort: [{ required: true, message: '请输入排序', type: 'number', trigger: 'blur' }]
|
| | | },
|
| | | delrules: {
|
| | | labelid: [{ required: true, message: '请选择标签', trigger: 'change' }]
|
| | | },
|
| | | dialogShowUploadfj: false,
|
| | | empName: '',
|
| | | queryform: {
|
| | |
| | | ]
|
| | | },
|
| | | tableData: [],
|
| | | labelData: [],
|
| | | defaultProps: {
|
| | | children: 'children',
|
| | | label: 'label'
|
| | | }
|
| | | },
|
| | | rowitem: {}
|
| | | }
|
| | | },
|
| | | mounted() {
|
| | | this.initLabel()
|
| | | this.fetch()
|
| | | },
|
| | | methods: {
|
| | | delfj() {
|
| | |
|
| | | downloadlabel(formName) {
|
| | | this.$refs[formName].validate(valid => {
|
| | | if (valid) {
|
| | | var selected = this.$refs.empAccessoryTable.selection
|
| | | if (selected.length < 1) {
|
| | | this.$message({
|
| | | message: '请选择数据!',
|
| | | type: 'warning'
|
| | | })
|
| | | return
|
| | | }
|
| | | const empIds = []
|
| | | selected.forEach((j) => {
|
| | | empIds.push(j.empId)
|
| | | })
|
| | | this.labelform.empIds = empIds
|
| | | this.$download('hr/empAccessory/singledownload', { ...this.labelform }, '附件_' + new Date().getTime() + '.zip').then(() => {
|
| | | this.downloaddialogFormVisible = false
|
| | | this.$message({
|
| | | message: this.$t('下载成功'),
|
| | | type: 'success'
|
| | | })
|
| | | })
|
| | | }
|
| | | })
|
| | | },
|
| | | downloadfj() {
|
| | |
|
| | | dellabel(formName) {
|
| | | this.$refs[formName].validate(valid => {
|
| | | if (valid) {
|
| | | this.$delete('hr/label', { ...this.labelform }).then(() => {
|
| | | this.dialogFormVisible = false
|
| | | this.$message({
|
| | | message: this.$t('tips.deleteSuccess'),
|
| | | type: 'success'
|
| | | })
|
| | | this.deldialogFormVisible = false
|
| | | // 初始加载
|
| | | this.initLabel()
|
| | | this.fetch()
|
| | | })
|
| | | }
|
| | | })
|
| | | },
|
| | | dialogShow() {
|
| | | addlabel(formName) {
|
| | | this.$refs[formName].validate(valid => {
|
| | | if (valid) {
|
| | | this.$post('hr/label', { ...this.labelform }).then(() => {
|
| | | this.dialogFormVisible = false
|
| | | this.$message({
|
| | | message: this.$t('tips.createSuccess'),
|
| | | type: 'success'
|
| | | })
|
| | | this.labelform.labelname = ''
|
| | | this.labelform.sort = 0
|
| | | this.labelform.labelcode = ''
|
| | | // 初始加载
|
| | | this.initLabel()
|
| | | this.fetch()
|
| | | })
|
| | | }
|
| | | })
|
| | | },
|
| | | dialogShow(index, tableData) {
|
| | | this.rowitem = tableData
|
| | | this.dialogShowUploadfj = true
|
| | | },
|
| | | cancleChooseUser() {
|
| | |
| | | this.tableData = data.rows
|
| | | })
|
| | | },
|
| | | initLabel() {
|
| | | this.$get('hr/label').then((r) => {
|
| | | this.labelData = r.data.data
|
| | | })
|
| | | },
|
| | | advancedQueryShowMethods() {
|
| | | if (this.advancedQueryShow) {
|
| | | this.headerHeight = '70px'
|
| | |
| | | },
|
| | | showEmpInfo() {
|
| | | this.dialogTableVisible = true
|
| | | },
|
| | | deleteRow(index, rows) {
|
| | | rows.splice(index, 1)
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | margin-top: 10px;
|
| | | height: 600px;
|
| | | }
|
| | | .el-input-number {
|
| | | width: 100%;
|
| | | }
|
| | | </style>
|
| | | <style lang="scss">
|
| | | .add-lable {
|
| | | text-align: initial;
|
| | | }
|
| | | .input-empName .el-input-group__append{
|
| | | padding: 0 15px 0 0;
|
| | | }
|
| | |
| | | <template> |
| | | <div class="zs-main"> |
| | | <el-row class="search-title"> |
| | | <el-col :span="18" class="title"> |
| | | <div class="zs-title">上传附件</div> |
| | | </el-col> |
| | | <el-col :span="6" class="search"> |
| | | <el-input |
| | | v-model="fileName" |
| | | maxlength="20" |
| | | minlength="1" |
| | | clearable |
| | | placeholder="请输入文件名" |
| | | show-word-limit |
| | | style="width:200px" |
| | | /> |
| | | <el-button type="primary" @click="findFileByFileName()">查询</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-container style="background-color: #fff;"> |
| | | <el-aside width="210px" style="background-color: #fff;text-align: center;"> |
| | | <h4>{{ rowitem.empName }}:{{ rowitem.deptName }}</h4> |
| | | <el-timeline> |
| | | <el-timeline-item |
| | | v-for="(activity, index) in activities" |
| | |
| | | size="mini" |
| | | @click="delFile()" |
| | | >删除</el-button> |
| | | <el-popconfirm title="是否移动附件?" @onConfirm="mvdialogFormVisible = true"> |
| | | <el-button slot="reference" class="hr-but" type="danger">移动</el-button> |
| | | </el-popconfirm> |
| | | </el-col> |
| | | </el-row> |
| | | </el-header> |
| | | <el-dialog |
| | | title="移动文件" |
| | | :visible.sync="mvdialogFormVisible" |
| | | width="25%" |
| | | class="add-label" |
| | | append-to-body |
| | | > |
| | | <el-form ref="mvlabelfrom" :model="labelfrom" :rules="mvrules"> |
| | | <el-form-item |
| | | label="目录名称:" |
| | | :label-width="formLabelWidth" |
| | | prop="labelid" |
| | | > |
| | | <el-select v-model="labelfrom.labelid" placeholder="请选择移动的标签"> |
| | | <el-option |
| | | v-for="item in activities" |
| | | :key="item.id" |
| | | :value="item.id" |
| | | :label="item.timestamp" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="mvdialogFormVisible = false">取 消</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="mvlabel('mvlabelfrom')" |
| | | >确 定</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <el-main style="background-color: #fff;"> |
| | | <el-row v-for="(data, index) in filesUploadData" :key="index"> |
| | | <template v-for="(node, nodeIndex) in data.node"> |
| | |
| | | <el-card shadow="never"> |
| | | <el-upload |
| | | class="avatar-uploader" |
| | | :action="filesUploadUrl" |
| | | :action="uploadSinglePath" |
| | | :show-file-list="false" |
| | | :before-upload="beforeAvatarUpload" |
| | | :headers="headers()" |
| | |
| | | import { pages } from '@/settings' |
| | | |
| | | export default { |
| | | props: { |
| | | rowitem: { |
| | | type: Object, |
| | | required: true |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | filesUploadUrl: pages.filesUploadUrl, |
| | | fileDate: { |
| | | folderid: 0 |
| | | mvrules: { |
| | | labelid: [{ required: true, message: '请选择标签', trigger: 'change' }] |
| | | }, |
| | | folderform: { |
| | | foldername: '', |
| | | sort: 0 |
| | | mvdialogFormVisible: false, |
| | | uploadSinglePath: pages.uploadSinglePath, |
| | | labelfrom: { |
| | | labelid: '', |
| | | empId: this.rowitem.empId |
| | | }, |
| | | fileDate: { |
| | | labelid: 0, |
| | | empId: this.rowitem.empId |
| | | }, |
| | | formLabelWidth: '100px', |
| | | beforeIndex: 0, |
| | | fileName: '', |
| | | checkedArr: [], |
| | | checkAll: false, |
| | | activities: [{ |
| | | timestamp: '记录截图', |
| | | color: '#a32c30' |
| | | }, { |
| | | timestamp: '照片' |
| | | }, { |
| | | timestamp: '劳动合同' |
| | | }, { |
| | | timestamp: '身份证' |
| | | }, { |
| | | timestamp: '入职表' |
| | | }, { |
| | | timestamp: '体检表' |
| | | }, { |
| | | timestamp: '回执' |
| | | }, { |
| | | timestamp: '银行卡' |
| | | }, { |
| | | timestamp: '相关证件' |
| | | }, { |
| | | timestamp: '相关合同' |
| | | }, { |
| | | timestamp: '请假' |
| | | }, { |
| | | timestamp: '处罚' |
| | | }, { |
| | | timestamp: '辞职申请' |
| | | }, { |
| | | timestamp: '离职手续' |
| | | }, { |
| | | timestamp: '自离' |
| | | }, { |
| | | timestamp: '社保' |
| | | }, { |
| | | timestamp: '失业金' |
| | | }, { |
| | | timestamp: '意外险' |
| | | }, { |
| | | timestamp: '工伤' |
| | | }, { |
| | | timestamp: '劳资' |
| | | }], |
| | | activities: [], |
| | | filesUploadData: [], |
| | | updateNum: 0 |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.initlabel() |
| | | }, |
| | | methods: { |
| | | async initlabel() { |
| | | await this.$get('hr/label').then(r => { |
| | | this.activities = [] |
| | | this.beforeIndex = 0 |
| | | r.data.data.forEach((v, i) => { |
| | | if (i === 0) { |
| | | this.activities.push({ |
| | | timestamp: v.labelname, |
| | | id: v.labelid, |
| | | color: '#a32c30' |
| | | }) |
| | | } else { |
| | | this.activities.push({ timestamp: v.labelname, id: v.labelid }) |
| | | } |
| | | }) |
| | | }) |
| | | var params = { labelid: this.activities[this.beforeIndex].id, |
| | | filesname: this.fileName, |
| | | empid: this.rowitem.empId } |
| | | this.initFile(params) |
| | | }, |
| | | initFile(params) { |
| | | var node = { node: [] } |
| | | // 文件列表置为空 |
| | | this.filesUploadData = [] |
| | | this.checkedArr = [] |
| | | this.$get('hr/filesUpload', { ...params }).then(r => { |
| | | this.$get('hr/empAccessory', { ...params }).then(r => { |
| | | r.data.data.forEach((v, i) => { |
| | | this.checkedArr.push({ isChecked: false, filesid: v.filesid }) |
| | | this.checkedArr.push({ isChecked: false, accessoryid: v.accessoryid }) |
| | | // 一行8个 等于8就换行 |
| | | if (i % 8 === 0 && i !== 0) { |
| | | this.filesUploadData.push(node) |
| | |
| | | // 将修改好的数组放回去 |
| | | this.activities = list |
| | | this.checkAll = false |
| | | var params |
| | | if (this.fileName === '') { |
| | | // 生成查询文件的条件 |
| | | params = { folderid: this.activities[index].id } |
| | | } else { |
| | | // 生成查询文件的条件 |
| | | params = { |
| | | folderid: this.activities[this.beforeIndex].id, |
| | | filesname: this.fileName |
| | | } |
| | | // 生成查询文件的条件 |
| | | var params = { |
| | | labelid: this.activities[this.beforeIndex].id, |
| | | filesname: this.fileName, |
| | | empid: this.rowitem.empId |
| | | } |
| | | |
| | | this.initFile(params) |
| | | }, |
| | | clickCard(index) { |
| | |
| | | } |
| | | }, |
| | | beforeAvatarUpload(file) { |
| | | this.fileDate.folderid = this.activities[this.beforeIndex].id |
| | | this.fileDate.labelid = this.activities[this.beforeIndex].id |
| | | const isLt50M = file.size / 1024 / 1024 < 50 |
| | | if (!isLt50M) { |
| | | this.$message.error('上传文件不能超过 50MB!') |
| | |
| | | this.updateNum = 0 |
| | | // 生成查询文件的条件 |
| | | var params = { |
| | | folderid: this.activities[this.beforeIndex].id, |
| | | filesname: this.fileName |
| | | labelid: this.activities[this.beforeIndex].id, |
| | | filesname: this.fileName, |
| | | empid: this.rowitem.empId |
| | | } |
| | | this.initFile(params) |
| | | } |
| | |
| | | var checke = [] |
| | | this.checkedArr.forEach((v, i) => { |
| | | if (v.isChecked) { |
| | | checke.push(v.filesid) |
| | | checke.push(v.accessoryid) |
| | | } |
| | | }) |
| | | if (checke.length <= 0) { |
| | |
| | | }) |
| | | } else { |
| | | // 生成查询文件的条件 |
| | | var params = { fileids: checke.join(',') } |
| | | this.$download('hr/filesUpload/download', { ...params }, new Date().getTime() + '.zip').then(() => { |
| | | var params = { accessoryids: checke.join(',') } |
| | | this.$download('hr/empAccessory/download', { ...params }, this.activities[this.beforeIndex].timestamp + '.zip').then(() => { |
| | | this.$message({ |
| | | message: '下载成功!', |
| | | type: 'success' |
| | |
| | | var checke = [] |
| | | this.checkedArr.forEach((v, i) => { |
| | | if (v.isChecked) { |
| | | checke.push(v.filesid) |
| | | checke.push(v.accessoryid) |
| | | } |
| | | }) |
| | | // 生成查询文件的条件 |
| | | var params = { fileids: checke.join(',') } |
| | | this.$delete('hr/filesUpload', { ...params }).then(() => { |
| | | if (checke.length <= 0) { |
| | | this.$message({ |
| | | message: '删除成功!', |
| | | type: 'success' |
| | | message: '请选择需要删除的文件!', |
| | | type: 'warning' |
| | | }) |
| | | // 生成查询文件的条件 |
| | | var initFileParams = { |
| | | folderid: this.activities[this.beforeIndex].id, |
| | | filesname: this.fileName |
| | | } |
| | | } else { |
| | | // 生成查询文件的条件 |
| | | var params = { accessoryids: checke.join(',') } |
| | | this.$delete('hr/empAccessory', { ...params }).then(() => { |
| | | this.$message({ |
| | | message: '删除成功!', |
| | | type: 'success' |
| | | }) |
| | | // 生成查询文件的条件 |
| | | var initFileParams = { |
| | | labelid: this.activities[this.beforeIndex].id, |
| | | filesname: this.fileName, |
| | | empid: this.rowitem.empId |
| | | } |
| | | |
| | | this.initFile(initFileParams) |
| | | this.initFile(initFileParams) |
| | | }) |
| | | } |
| | | }, |
| | | findFileByFileName() { |
| | | // 生成查询文件的条件 |
| | | var params = { |
| | | filesname: this.fileName, |
| | | empid: this.rowitem.empId |
| | | } |
| | | this.initFile(params) |
| | | }, |
| | | mvlabel(formName) { |
| | | if (this.labelfrom.labelid === this.activities[this.beforeIndex].id) { |
| | | this.$message({ |
| | | message: '文件在同一目录!', |
| | | type: 'warning' |
| | | }) |
| | | return |
| | | } |
| | | var checke = [] |
| | | this.checkedArr.forEach((v, i) => { |
| | | if (v.isChecked) { |
| | | checke.push(v.accessoryid) |
| | | } |
| | | }) |
| | | if (checke.length <= 0) { |
| | | this.$message({ |
| | | message: '请选择需要移动的文件!', |
| | | type: 'warning' |
| | | }) |
| | | } else { |
| | | this.$refs[formName].validate(valid => { |
| | | if (valid) { |
| | | // 生成查询文件的条件 |
| | | var params = { accessoryids: checke.join(','), labelid: this.labelfrom.labelid, empId: this.labelfrom.empId } |
| | | this.$post('hr/empAccessory/mvFiles', { ...params }).then(() => { |
| | | this.$message({ |
| | | message: '移动成功!', |
| | | type: 'success' |
| | | }) |
| | | this.mvdialogFormVisible = false |
| | | // 生成查询文件的条件 |
| | | var initFileParams = { |
| | | labelid: this.activities[this.beforeIndex].id, |
| | | filesname: this.fileName, |
| | | empid: this.rowitem.empId |
| | | } |
| | | this.initFile(initFileParams) |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | <template>
|
| | | <div class="zs-main">
|
| | | <el-row class="search-title">
|
| | | <el-col :span="18" class="title">
|
| | | <div class="zs-title">云盘智搜</div>
|
| | | </el-col>
|
| | | <el-col :span="6" class="search">
|
| | | <el-input
|
| | | v-model="fileName"
|
| | | maxlength="20"
|
| | | minlength="1"
|
| | | clearable
|
| | | placeholder="请输入文件名"
|
| | | show-word-limit
|
| | | style="width:200px"
|
| | | />
|
| | | <el-button type="primary" @click="findFileByFileName()">查询</el-button>
|
| | | </el-col>
|
| | | </el-row>
|
| | | <el-container style="background-color: #fff;">
|
| | | <el-aside width="210px" style="background-color: #fff;text-align: center;">
|
| | | <el-button class="add-folder-but" @click="dialogFormVisible = true">新增</el-button>
|
| | | <el-popconfirm title="是否删除此目录?">
|
| | | <el-button class="add-folder-but" @click="delFolder()">删除</el-button>
|
| | | </el-popconfirm>
|
| | | <el-dialog
|
| | | title="新增文件夹"
|
| | | :visible.sync="dialogFormVisible"
|
| | | width="25%"
|
| | | class="add-folder"
|
| | | >
|
| | | <el-form ref="folderform" :model="folderform" :rules="rules">
|
| | | <el-form-item
|
| | | label="文件夹名称:"
|
| | | :label-width="formLabelWidth"
|
| | | prop="foldername"
|
| | | >
|
| | | <el-input v-model="folderform.foldername" autocomplete="off" />
|
| | | </el-form-item>
|
| | | <el-form-item label="文件夹排序:" :label-width="formLabelWidth" prop="sort">
|
| | | <el-input-number
|
| | | v-model="folderform.sort"
|
| | | :min="0"
|
| | | :max="100"
|
| | | label="排序"
|
| | | />
|
| | | </el-form-item>
|
| | | </el-form>
|
| | | <div slot="footer" class="dialog-footer">
|
| | | <el-button @click="dialogFormVisible = false">取 消</el-button>
|
| | | <el-button
|
| | | type="primary"
|
| | | @click="addFolderForm('folderform')"
|
| | | >确 定</el-button>
|
| | | </div>
|
| | | </el-dialog>
|
| | | <el-timeline>
|
| | | <el-timeline-item
|
| | | v-for="(activity, index) in activities"
|
| | | :key="index"
|
| | | :icon="activity.icon"
|
| | | :type="activity.type"
|
| | | :color="activity.color"
|
| | | :size="activity.size"
|
| | | placement="bottom"
|
| | | >
|
| | | <span
|
| | | style="position: relative; top: -5px;"
|
| | | @click="clickTimeline(index, activity.id)"
|
| | | >
|
| | | {{ activity.timestamp }}</span>
|
| | | </el-timeline-item>
|
| | | </el-timeline>
|
| | | </el-aside>
|
| | | <el-container>
|
| | | <el-header class="text-header">
|
| | | <el-row><el-col :span="24">
|
| | | <i
|
| | | class="el-icon-bell"
|
| | | style=" color: #a32c30; margin-right: 10px;"
|
| | | />提示:文件不要超过10个,单个文件大小不超过50M,单击或者拖动文件到下面区域,支持单个或批量文件的上传。</el-col>
|
| | | </el-row>
|
| | | <el-row style="background-color: rgba(0,0,0,0.2);">
|
| | | <el-col :span="19">
|
| | | <el-checkbox
|
| | | v-model="checkAll"
|
| | | class="myRedCheckBox"
|
| | | style="color: #000; margin-left: 20px;"
|
| | | @change="checkAllMethods()"
|
| | | >全选</el-checkbox></el-col>
|
| | | <el-col :span="5">
|
| | | <el-button
|
| | | type="primary"
|
| | | icon="el-icon-download"
|
| | | size="mini"
|
| | | @click="download()"
|
| | | >下载</el-button>
|
| | | <el-button
|
| | | type="primary"
|
| | | icon="el-icon-search"
|
| | | size="mini"
|
| | | @click="delFile()"
|
| | | >删除</el-button>
|
| | | </el-col>
|
| | | </el-row>
|
| | | </el-header>
|
| | | <el-main style="background-color: #fff;">
|
| | | <el-row v-for="(data, index) in filesUploadData" :key="index">
|
| | | <template v-for="(node, nodeIndex) in data.node">
|
| | | <el-col v-if="node.isUpload === false" :key="node.filesid" :span="3">
|
| | | <el-card
|
| | | shadow="never"
|
| | | @click.native="clickCard(index * 8 + nodeIndex)"
|
| | | >
|
| | | <img
|
| | | :src="showFileImg(node.filesformat)"
|
| | | class="uploading-image"
|
| | | >
|
| | | <div style="padding-top: 14px;">
|
| | | <el-checkbox v-model="checkedArr[index * 8 + nodeIndex].isChecked" class="myRedCheckBox">{{ node.filesname }}</el-checkbox>
|
| | | </div>
|
| | | </el-card>
|
| | | </el-col>
|
| | | <el-col v-if="node.isUpload" :key="node.filesid" :span="3">
|
| | | <el-card shadow="never">
|
| | | <el-upload
|
| | | class="avatar-uploader"
|
| | | :action="filesUploadUrl"
|
| | | :show-file-list="false"
|
| | | :before-upload="beforeAvatarUpload"
|
| | | :headers="headers()"
|
| | | :data="fileDate"
|
| | | :on-success="handleAvatarSuccess"
|
| | | :on-error="handleAvatarError"
|
| | | :multiple="true"
|
| | | :limit="10"
|
| | | drag
|
| | | >
|
| | | <i class="el-icon-upload" />
|
| | | </el-upload>
|
| | | </el-card>
|
| | | </el-col>
|
| | | </template>
|
| | | </el-row>
|
| | | </el-main>
|
| | | </el-container>
|
| | | </el-container>
|
| | | </div>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import { getToken } from '@/utils/auth'
|
| | | import { pages } from '@/settings'
|
| | |
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | filesUploadUrl: pages.filesUploadUrl,
|
| | | fileDate: {
|
| | | folderid: 0
|
| | | },
|
| | | dialogFormVisible: false,
|
| | | folderform: {
|
| | | foldername: '',
|
| | | sort: 0
|
| | | },
|
| | | rules: {
|
| | | foldername: [
|
| | | { required: true, message: '请输入文件夹名称', trigger: 'blur' },
|
| | | { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }
|
| | | ],
|
| | | sort: [{ required: true, message: '请输入排序', type: 'number', trigger: 'blur' }]
|
| | | },
|
| | | formLabelWidth: '100px',
|
| | | beforeIndex: 0,
|
| | | fileName: '',
|
| | | checkedArr: [],
|
| | | checkAll: false,
|
| | | activities: [],
|
| | | filesUploadData: [],
|
| | | updateNum: 0
|
| | | }
|
| | | },
|
| | | mounted() {
|
| | | // 初始加载
|
| | | this.initFolder()
|
| | | },
|
| | | methods: {
|
| | | async initFolder() {
|
| | | await this.$get('hr/folder').then(r => {
|
| | | this.activities = []
|
| | | this.beforeIndex = 0
|
| | | r.data.data.forEach((v, i) => {
|
| | | if (i === 0) {
|
| | | this.activities.push({
|
| | | timestamp: v.foldername,
|
| | | id: v.folderid,
|
| | | color: '#a32c30'
|
| | | })
|
| | | } else {
|
| | | this.activities.push({ timestamp: v.foldername, id: v.folderid })
|
| | | }
|
| | | })
|
| | | })
|
| | | var params = { folderid: this.activities[0].id }
|
| | | this.initFile(params)
|
| | | },
|
| | | initFile(params) {
|
| | | var node = { node: [] }
|
| | | // 文件列表置为空
|
| | | this.filesUploadData = []
|
| | | this.checkedArr = []
|
| | | this.$get('hr/filesUpload', { ...params }).then(r => {
|
| | | r.data.data.forEach((v, i) => {
|
| | | this.checkedArr.push({ isChecked: false, filesid: v.filesid })
|
| | | // 一行8个 等于8就换行
|
| | | if (i % 8 === 0 && i !== 0) {
|
| | | this.filesUploadData.push(node)
|
| | | node = { node: [] }
|
| | | }
|
| | | // 添加一个新的元素判断是否是上传用的
|
| | | this.$set(v, 'isUpload', false)
|
| | | // 添加
|
| | | node.node.push(v)
|
| | | // 如果是最后一个元素,需要手动丢到列表里面去
|
| | | if (i === r.data.data.length - 1) {
|
| | | this.filesUploadData.push(node)
|
| | | }
|
| | | })
|
| | | // 如果列表为空,增加一个上传的
|
| | | if (this.filesUploadData.length === 0) {
|
| | | this.filesUploadData.push({ node: [{ isUpload: true }] })
|
| | | } else {
|
| | | // 如果不为空,但是这一行刚好满8个了,就将数组,新增一个对象
|
| | | if (this.filesUploadData[this.filesUploadData.length - 1].node.length === 8) {
|
| | | this.filesUploadData.push({ node: [{ isUpload: true }] })
|
| | | } else {
|
| | | // 新增一个上传
|
| | | this.filesUploadData[this.filesUploadData.length - 1].node.push({
|
| | | isUpload: true
|
| | | })
|
| | | }
|
| | | }
|
| | | })
|
| | | },
|
| | | clickTimeline(index, id) {
|
| | | // 不这样操作的不会响应式更新
|
| | | // 赋值到新的列表
|
| | | var list = this.activities
|
| | | // 将之前的数组置为空
|
| | | this.activities = []
|
| | | // 删除之前下标的颜色
|
| | | delete list[this.beforeIndex].color
|
| | | // 将新下标存储起来
|
| | | this.beforeIndex = index
|
| | | // 将新下标修改颜色
|
| | | list[index]['color'] = '#a32c30'
|
| | | // 将修改好的数组放回去
|
| | | this.activities = list
|
| | | this.checkAll = false
|
| | | var params
|
| | | if (this.fileName === '') {
|
| | | // 生成查询文件的条件
|
| | | params = { folderid: this.activities[index].id }
|
| | | } else {
|
| | | // 生成查询文件的条件
|
| | | params = {
|
| | | folderid: this.activities[this.beforeIndex].id,
|
| | | filesname: this.fileName
|
| | | }
|
| | | }
|
| | |
|
| | | this.initFile(params)
|
| | | },
|
| | | clickCard(index) {
|
| | | if (this.checkedArr[index].isChecked) {
|
| | | this.$set(this.checkedArr[index], 'isChecked', false)
|
| | | } else {
|
| | | this.$set(this.checkedArr[index], 'isChecked', true)
|
| | | }
|
| | | },
|
| | | checkAllMethods() {
|
| | | if (this.checkAll) {
|
| | | this.checkedArr.forEach((v, i) => {
|
| | | this.$set(v, 'isChecked', true)
|
| | | })
|
| | | } else {
|
| | | this.checkedArr.forEach((v, i) => {
|
| | | this.$set(v, 'isChecked', false)
|
| | | })
|
| | | }
|
| | | },
|
| | | findFileByFileName() {
|
| | | // 生成查询文件的条件
|
| | | var params = {
|
| | | folderid: this.activities[this.beforeIndex].id,
|
| | | filesname: this.fileName
|
| | | }
|
| | | this.initFile(params)
|
| | | },
|
| | | addFolderForm(formName) {
|
| | | this.$refs[formName].validate(valid => {
|
| | | if (valid) {
|
| | | this.$post('hr/folder', { ...this.folderform }).then(() => {
|
| | | this.dialogFormVisible = false
|
| | | this.$message({
|
| | | message: this.$t('tips.createSuccess'),
|
| | | type: 'success'
|
| | | })
|
| | | this.folderform.fileName = ''
|
| | | this.folderform.sort = 0
|
| | | // 初始加载
|
| | | this.initFolder()
|
| | | })
|
| | | }
|
| | | })
|
| | | },
|
| | | delFolder() {
|
| | | // 生成查询文件的条件
|
| | | var params = { folderid: this.activities[this.beforeIndex].id }
|
| | | this.$delete('hr/folder', { ...params }).then(() => {
|
| | | this.dialogFormVisible = false
|
| | | this.$message({
|
| | | message: this.$t('tips.deleteSuccess'),
|
| | | type: 'success'
|
| | | })
|
| | | // 初始加载
|
| | | this.initFolder()
|
| | | })
|
| | | },
|
| | | showFileImg(type) {
|
| | | switch (type) {
|
| | | case 'txt':
|
| | | return require('../../assets/uploading/txt.png')
|
| | | case 'apk':
|
| | | return require('../../assets/uploading/apk.png')
|
| | | case 'csv':
|
| | | return require('../../assets/uploading/csv.png')
|
| | | case 'excel':
|
| | | return require('../../assets/uploading/excel.png')
|
| | | case 'exe':
|
| | | return require('../../assets/uploading/exe.png')
|
| | | case 'folder':
|
| | | return require('../../assets/uploading/folder.png')
|
| | | case 'gif':
|
| | | return require('../../assets/uploading/gif.png')
|
| | | case 'html':
|
| | | return require('../../assets/uploading/html.png')
|
| | | case 'json':
|
| | | return require('../../assets/uploading/json.png')
|
| | | case 'mp3':
|
| | | return require('../../assets/uploading/mp3.png')
|
| | | case 'mp4':
|
| | | return require('../../assets/uploading/mp4.png')
|
| | | case 'pdf':
|
| | | return require('../../assets/uploading/pdf.png')
|
| | | case 'pic':
|
| | | return require('../../assets/uploading/pic.png')
|
| | | case 'ppt':
|
| | | return require('../../assets/uploading/ppt.png')
|
| | | case 'rar':
|
| | | return require('../../assets/uploading/rar.png')
|
| | | case 'svg':
|
| | | return require('../../assets/uploading/svg.png')
|
| | | case 'webpage':
|
| | | return require('../../assets/uploading/webpage.png')
|
| | | case 'word':
|
| | | return require('../../assets/uploading/word.png')
|
| | | case 'zip':
|
| | | return require('../../assets/uploading/zip.png')
|
| | | case 'jpg':
|
| | | return require('../../assets/uploading/jpg.png')
|
| | | case 'png':
|
| | | return require('../../assets/uploading/png.png')
|
| | | default:
|
| | | return require('../../assets/uploading/unknown.png')
|
| | | }
|
| | | },
|
| | | beforeAvatarUpload(file) {
|
| | | this.fileDate.folderid = this.activities[this.beforeIndex].id
|
| | | const isLt50M = file.size / 1024 / 1024 < 50
|
| | | if (!isLt50M) {
|
| | | this.$message.error('上传文件不能超过 50MB!')
|
| | | }
|
| | | return isLt50M
|
| | | },
|
| | | headers() {
|
| | | const token = getToken()
|
| | | if (token) {
|
| | | return {
|
| | | Authorization: 'bearer ' + token
|
| | | }
|
| | | } else {
|
| | | return null
|
| | | }
|
| | | },
|
| | | handleAvatarSuccess(response, file, fileList) {
|
| | | this.$notify({
|
| | | title: '成功',
|
| | | message: '上传成功!',
|
| | | type: 'success'
|
| | | })
|
| | | this.updateNum++
|
| | | if (this.updateNum === fileList.length) {
|
| | | this.updateNum = 0
|
| | | // 生成查询文件的条件
|
| | | var params = {
|
| | | folderid: this.activities[this.beforeIndex].id,
|
| | | filesname: this.fileName
|
| | | }
|
| | | this.initFile(params)
|
| | | }
|
| | | },
|
| | | handleAvatarError() {
|
| | | this.updateNum = 0
|
| | | this.$notify.error({
|
| | | title: '失败',
|
| | | message: '上传失败,请联系管理员!'
|
| | | })
|
| | | },
|
| | | download() {
|
| | | var checke = []
|
| | | this.checkedArr.forEach((v, i) => {
|
| | | if (v.isChecked) {
|
| | | checke.push(v.filesid)
|
| | | }
|
| | | })
|
| | | if (checke.length <= 0) {
|
| | | this.$message({
|
| | | message: '请选择需要下载的文件!',
|
| | | type: 'warning'
|
| | | })
|
| | | } else {
|
| | | // 生成查询文件的条件
|
| | | var params = { fileids: checke.join(',') }
|
| | | this.$download('hr/filesUpload/download', { ...params }, new Date().getTime() + '.zip').then(() => {
|
| | | this.$message({
|
| | | message: '下载成功!',
|
| | | type: 'success'
|
| | | })
|
| | | })
|
| | | }
|
| | | },
|
| | | delFile() {
|
| | | var checke = []
|
| | | this.checkedArr.forEach((v, i) => {
|
| | | if (v.isChecked) {
|
| | | checke.push(v.filesid)
|
| | | }
|
| | | })
|
| | | // 生成查询文件的条件
|
| | | var params = { fileids: checke.join(',') }
|
| | | this.$delete('hr/filesUpload', { ...params }).then(() => {
|
| | | this.$message({
|
| | | message: '删除成功!',
|
| | | type: 'success'
|
| | | })
|
| | | // 生成查询文件的条件
|
| | | var initFileParams = {
|
| | | folderid: this.activities[this.beforeIndex].id,
|
| | | filesname: this.fileName
|
| | | }
|
| | |
|
| | | this.initFile(initFileParams)
|
| | | })
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss">
|
| | | .clearfix:before,
|
| | | .clearfix:after {
|
| | | display: table;
|
| | | content: '';
|
| | | }
|
| | |
|
| | | .clearfix:after {
|
| | | clear: both;
|
| | | }
|
| | | .add-folder {
|
| | | text-align: initial;
|
| | | }
|
| | | .zs-main {
|
| | | .search-title {
|
| | | height: 50px;
|
| | | .search {
|
| | | position: relative;
|
| | | top: 50%;
|
| | | transform: translateY(-50%);
|
| | | }
|
| | | .title {
|
| | | position: relative;
|
| | | top: 40%;
|
| | | transform: translateY(-50%);
|
| | | }
|
| | | .zs-title {
|
| | | border-left: 4px solid #a32c30;
|
| | | padding-left: 10px;
|
| | | font-size: 16px;
|
| | | }
|
| | | }
|
| | | .add-folder-but {
|
| | | background: #fff !important;
|
| | | color: #a32c30 !important;
|
| | | margin-bottom: 20px;
|
| | | }
|
| | | padding: 0 15px 0 15px;
|
| | | .text-header {
|
| | | line-height: 60px;
|
| | | }
|
| | | .uploading-image {
|
| | | width: 100%;
|
| | | height: 100%;
|
| | | display: block;
|
| | | }
|
| | | }
|
| | |
|
| | | .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;
|
| | | }
|
| | |
|
| | | .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: 178px;
|
| | | height: 178px;
|
| | | line-height: 178px;
|
| | | text-align: center;
|
| | | }
|
| | | .avatar {
|
| | | width: 178px;
|
| | | height: 178px;
|
| | | 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;
|
| | | }
|
| | | </style>
|
| | | <style lang="scss" scoped>
|
| | | .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%;
|
| | | }
|
| | | </style>
|
| | | <template> |
| | | <div class="zs-main"> |
| | | <el-row class="search-title"> |
| | | <el-col :span="18" class="title"> |
| | | <div class="zs-title">云盘智搜</div> |
| | | </el-col> |
| | | <el-col :span="6" class="search"> |
| | | <el-input |
| | | v-model="fileName" |
| | | maxlength="20" |
| | | minlength="1" |
| | | clearable |
| | | placeholder="请输入文件名" |
| | | show-word-limit |
| | | style="width:200px" |
| | | /> |
| | | <el-button type="primary" @click="findFileByFileName()">查询</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-container style="background-color: #fff;"> |
| | | <el-aside width="210px" style="background-color: #fff;text-align: center;"> |
| | | <el-button class="add-folder-but" @click="dialogFormVisible = true">新增</el-button> |
| | | <el-popconfirm title="是否删除目录?" @onConfirm="delFolder()"> |
| | | <el-button slot="reference" class="hr-but-all" type="danger">删除</el-button> |
| | | </el-popconfirm> |
| | | <el-dialog |
| | | title="新增文件夹" |
| | | :visible.sync="dialogFormVisible" |
| | | width="25%" |
| | | class="add-folder" |
| | | > |
| | | <el-form ref="folderform" :model="folderform" :rules="rules"> |
| | | <el-form-item |
| | | label="文件夹名称:" |
| | | :label-width="formLabelWidth" |
| | | prop="foldername" |
| | | > |
| | | <el-input v-model="folderform.foldername" autocomplete="off" /> |
| | | </el-form-item> |
| | | <el-form-item label="文件夹排序:" :label-width="formLabelWidth" prop="sort"> |
| | | <el-input-number |
| | | v-model="folderform.sort" |
| | | :min="0" |
| | | :max="100" |
| | | label="排序" |
| | | /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogFormVisible = false">取 消</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="addFolderForm('folderform')" |
| | | >确 定</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <el-timeline> |
| | | <el-timeline-item |
| | | v-for="(activity, index) in activities" |
| | | :key="index" |
| | | :icon="activity.icon" |
| | | :type="activity.type" |
| | | :color="activity.color" |
| | | :size="activity.size" |
| | | placement="bottom" |
| | | > |
| | | <span |
| | | style="position: relative; top: -5px;" |
| | | @click="clickTimeline(index, activity.id)" |
| | | > |
| | | {{ activity.timestamp }}</span> |
| | | </el-timeline-item> |
| | | </el-timeline> |
| | | </el-aside> |
| | | <el-container> |
| | | <el-header class="text-header"> |
| | | <el-row><el-col :span="24"> |
| | | <i |
| | | class="el-icon-bell" |
| | | style=" color: #a32c30; margin-right: 10px;" |
| | | />提示:文件不要超过10个,单个文件大小不超过50M,单击或者拖动文件到下面区域,支持单个或批量文件的上传。</el-col> |
| | | </el-row> |
| | | <el-row style="background-color: rgba(0,0,0,0.2);"> |
| | | <el-col :span="19"> |
| | | <el-checkbox |
| | | v-model="checkAll" |
| | | class="myRedCheckBox" |
| | | style="color: #000; margin-left: 20px;" |
| | | @change="checkAllMethods()" |
| | | >全选</el-checkbox></el-col> |
| | | <el-col :span="5"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="download()" |
| | | >下载</el-button> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="mini" |
| | | @click="delFile()" |
| | | >删除</el-button> |
| | | <el-popconfirm title="是否移动文件?" @onConfirm="mvdialogFormVisible = true"> |
| | | <el-button slot="reference" class="hr-but" type="danger">移动</el-button> |
| | | </el-popconfirm> |
| | | </el-col> |
| | | </el-row> |
| | | </el-header> |
| | | <el-dialog |
| | | title="移动文件" |
| | | :visible.sync="mvdialogFormVisible" |
| | | width="25%" |
| | | class="add-label" |
| | | > |
| | | <el-form ref="mvfolderform" :model="folderform" :rules="mvrules"> |
| | | <el-form-item |
| | | label="目录名称:" |
| | | :label-width="formLabelWidth" |
| | | prop="folderid" |
| | | > |
| | | <el-select v-model="folderform.folderid" placeholder="请选择移动的目录"> |
| | | <el-option |
| | | v-for="item in activities" |
| | | :key="item.id" |
| | | :value="item.id" |
| | | :label="item.timestamp" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="mvdialogFormVisible = false">取 消</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="mvfolder('mvfolderform')" |
| | | >确 定</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <el-main style="background-color: #fff;"> |
| | | <el-row v-for="(data, index) in filesUploadData" :key="index"> |
| | | <template v-for="(node, nodeIndex) in data.node"> |
| | | <el-col v-if="node.isUpload === false" :key="node.filesid" :span="3"> |
| | | <el-card |
| | | shadow="never" |
| | | @click.native="clickCard(index * 8 + nodeIndex)" |
| | | > |
| | | <img |
| | | :src="showFileImg(node.filesformat)" |
| | | class="uploading-image" |
| | | > |
| | | <div style="padding-top: 14px;"> |
| | | <el-checkbox v-model="checkedArr[index * 8 + nodeIndex].isChecked" class="myRedCheckBox">{{ node.filesname }}</el-checkbox> |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col v-if="node.isUpload" :key="node.filesid" :span="3"> |
| | | <el-card shadow="never"> |
| | | <el-upload |
| | | class="avatar-uploader" |
| | | :action="filesUploadUrl" |
| | | :show-file-list="false" |
| | | :before-upload="beforeAvatarUpload" |
| | | :headers="headers()" |
| | | :data="fileDate" |
| | | :on-success="handleAvatarSuccess" |
| | | :on-error="handleAvatarError" |
| | | :multiple="true" |
| | | :limit="10" |
| | | drag |
| | | > |
| | | <i class="el-icon-upload" /> |
| | | </el-upload> |
| | | </el-card> |
| | | </el-col> |
| | | </template> |
| | | </el-row> |
| | | </el-main> |
| | | </el-container> |
| | | </el-container> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getToken } from '@/utils/auth' |
| | | import { pages } from '@/settings' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | mvrules: { |
| | | folderid: [{ required: true, message: '请选择目录', trigger: 'change' }] |
| | | }, |
| | | filesUploadUrl: pages.filesUploadUrl, |
| | | fileDate: { |
| | | folderid: 0 |
| | | }, |
| | | mvdialogFormVisible: false, |
| | | dialogDelVisible: false, |
| | | dialogFormVisible: false, |
| | | folderform: { |
| | | folderid: '', |
| | | foldername: '', |
| | | sort: 0 |
| | | }, |
| | | rules: { |
| | | foldername: [ |
| | | { required: true, message: '请输入文件夹名称', trigger: 'blur' }, |
| | | { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' } |
| | | ], |
| | | sort: [{ required: true, message: '请输入排序', type: 'number', trigger: 'blur' }] |
| | | }, |
| | | formLabelWidth: '100px', |
| | | beforeIndex: 0, |
| | | fileName: '', |
| | | checkedArr: [], |
| | | checkAll: false, |
| | | activities: [], |
| | | filesUploadData: [], |
| | | updateNum: 0 |
| | | } |
| | | }, |
| | | mounted() { |
| | | // 初始加载 |
| | | this.initFolder() |
| | | }, |
| | | methods: { |
| | | async initFolder() { |
| | | await this.$get('hr/folder').then(r => { |
| | | this.activities = [] |
| | | this.beforeIndex = 0 |
| | | r.data.data.forEach((v, i) => { |
| | | if (i === 0) { |
| | | this.activities.push({ |
| | | timestamp: v.foldername, |
| | | id: v.folderid, |
| | | color: '#a32c30' |
| | | }) |
| | | } else { |
| | | this.activities.push({ timestamp: v.foldername, id: v.folderid }) |
| | | } |
| | | }) |
| | | }) |
| | | var params = { folderid: this.activities[0].id } |
| | | this.initFile(params) |
| | | }, |
| | | initFile(params) { |
| | | var node = { node: [] } |
| | | // 文件列表置为空 |
| | | this.filesUploadData = [] |
| | | this.checkedArr = [] |
| | | this.$get('hr/filesUpload', { ...params }).then(r => { |
| | | r.data.data.forEach((v, i) => { |
| | | this.checkedArr.push({ isChecked: false, filesid: v.filesid }) |
| | | // 一行8个 等于8就换行 |
| | | if (i % 8 === 0 && i !== 0) { |
| | | this.filesUploadData.push(node) |
| | | node = { node: [] } |
| | | } |
| | | // 添加一个新的元素判断是否是上传用的 |
| | | this.$set(v, 'isUpload', false) |
| | | // 添加 |
| | | node.node.push(v) |
| | | // 如果是最后一个元素,需要手动丢到列表里面去 |
| | | if (i === r.data.data.length - 1) { |
| | | this.filesUploadData.push(node) |
| | | } |
| | | }) |
| | | // 如果列表为空,增加一个上传的 |
| | | if (this.filesUploadData.length === 0) { |
| | | this.filesUploadData.push({ node: [{ isUpload: true }] }) |
| | | } else { |
| | | // 如果不为空,但是这一行刚好满8个了,就将数组,新增一个对象 |
| | | if (this.filesUploadData[this.filesUploadData.length - 1].node.length === 8) { |
| | | this.filesUploadData.push({ node: [{ isUpload: true }] }) |
| | | } else { |
| | | // 新增一个上传 |
| | | this.filesUploadData[this.filesUploadData.length - 1].node.push({ |
| | | isUpload: true |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | clickTimeline(index, id) { |
| | | // 不这样操作的不会响应式更新 |
| | | // 赋值到新的列表 |
| | | var list = this.activities |
| | | // 将之前的数组置为空 |
| | | this.activities = [] |
| | | // 删除之前下标的颜色 |
| | | delete list[this.beforeIndex].color |
| | | // 将新下标存储起来 |
| | | this.beforeIndex = index |
| | | // 将新下标修改颜色 |
| | | list[index]['color'] = '#a32c30' |
| | | // 将修改好的数组放回去 |
| | | this.activities = list |
| | | this.checkAll = false |
| | | var params |
| | | if (this.fileName === '') { |
| | | // 生成查询文件的条件 |
| | | params = { folderid: this.activities[index].id } |
| | | } else { |
| | | // 生成查询文件的条件 |
| | | params = { |
| | | folderid: this.activities[this.beforeIndex].id, |
| | | filesname: this.fileName |
| | | } |
| | | } |
| | | |
| | | this.initFile(params) |
| | | }, |
| | | clickCard(index) { |
| | | if (this.checkedArr[index].isChecked) { |
| | | this.$set(this.checkedArr[index], 'isChecked', false) |
| | | } else { |
| | | this.$set(this.checkedArr[index], 'isChecked', true) |
| | | } |
| | | }, |
| | | checkAllMethods() { |
| | | if (this.checkAll) { |
| | | this.checkedArr.forEach((v, i) => { |
| | | this.$set(v, 'isChecked', true) |
| | | }) |
| | | } else { |
| | | this.checkedArr.forEach((v, i) => { |
| | | this.$set(v, 'isChecked', false) |
| | | }) |
| | | } |
| | | }, |
| | | findFileByFileName() { |
| | | // 生成查询文件的条件 |
| | | var params = { |
| | | folderid: this.activities[this.beforeIndex].id, |
| | | filesname: this.fileName |
| | | } |
| | | this.initFile(params) |
| | | }, |
| | | addFolderForm(formName) { |
| | | this.$refs[formName].validate(valid => { |
| | | if (valid) { |
| | | this.$post('hr/folder', { ...this.folderform }).then(() => { |
| | | this.dialogFormVisible = false |
| | | this.$message({ |
| | | message: this.$t('tips.createSuccess'), |
| | | type: 'success' |
| | | }) |
| | | this.folderform.filename = '' |
| | | this.folderform.sort = 0 |
| | | // 初始加载 |
| | | this.initFolder() |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | delFolder() { |
| | | // 生成查询文件的条件 |
| | | var params = { folderid: this.activities[this.beforeIndex].id } |
| | | this.$delete('hr/folder', { ...params }).then(() => { |
| | | this.dialogFormVisible = false |
| | | this.$message({ |
| | | message: this.$t('tips.deleteSuccess'), |
| | | type: 'success' |
| | | }) |
| | | this.dialogDelVisible = false |
| | | // 初始加载 |
| | | this.initFolder() |
| | | }) |
| | | }, |
| | | showFileImg(type) { |
| | | switch (type) { |
| | | case 'txt': |
| | | return require('../../assets/uploading/txt.png') |
| | | case 'apk': |
| | | return require('../../assets/uploading/apk.png') |
| | | case 'csv': |
| | | return require('../../assets/uploading/csv.png') |
| | | case 'excel': |
| | | return require('../../assets/uploading/excel.png') |
| | | case 'exe': |
| | | return require('../../assets/uploading/exe.png') |
| | | case 'folder': |
| | | return require('../../assets/uploading/folder.png') |
| | | case 'gif': |
| | | return require('../../assets/uploading/gif.png') |
| | | case 'html': |
| | | return require('../../assets/uploading/html.png') |
| | | case 'json': |
| | | return require('../../assets/uploading/json.png') |
| | | case 'mp3': |
| | | return require('../../assets/uploading/mp3.png') |
| | | case 'mp4': |
| | | return require('../../assets/uploading/mp4.png') |
| | | case 'pdf': |
| | | return require('../../assets/uploading/pdf.png') |
| | | case 'pic': |
| | | return require('../../assets/uploading/pic.png') |
| | | case 'ppt': |
| | | return require('../../assets/uploading/ppt.png') |
| | | case 'rar': |
| | | return require('../../assets/uploading/rar.png') |
| | | case 'svg': |
| | | return require('../../assets/uploading/svg.png') |
| | | case 'webpage': |
| | | return require('../../assets/uploading/webpage.png') |
| | | case 'word': |
| | | return require('../../assets/uploading/word.png') |
| | | case 'zip': |
| | | return require('../../assets/uploading/zip.png') |
| | | case 'jpg': |
| | | return require('../../assets/uploading/jpg.png') |
| | | case 'png': |
| | | return require('../../assets/uploading/png.png') |
| | | default: |
| | | return require('../../assets/uploading/unknown.png') |
| | | } |
| | | }, |
| | | beforeAvatarUpload(file) { |
| | | this.fileDate.folderid = this.activities[this.beforeIndex].id |
| | | const isLt50M = file.size / 1024 / 1024 < 50 |
| | | if (!isLt50M) { |
| | | this.$message.error('上传文件不能超过 50MB!') |
| | | } |
| | | return isLt50M |
| | | }, |
| | | headers() { |
| | | const token = getToken() |
| | | if (token) { |
| | | return { |
| | | Authorization: 'bearer ' + token |
| | | } |
| | | } else { |
| | | return null |
| | | } |
| | | }, |
| | | handleAvatarSuccess(response, file, fileList) { |
| | | this.$notify({ |
| | | title: '成功', |
| | | message: '上传成功!', |
| | | type: 'success' |
| | | }) |
| | | this.updateNum++ |
| | | if (this.updateNum === fileList.length) { |
| | | this.updateNum = 0 |
| | | // 生成查询文件的条件 |
| | | var params = { |
| | | folderid: this.activities[this.beforeIndex].id, |
| | | filesname: this.fileName |
| | | } |
| | | this.initFile(params) |
| | | } |
| | | }, |
| | | handleAvatarError() { |
| | | this.updateNum = 0 |
| | | this.$notify.error({ |
| | | title: '失败', |
| | | message: '上传失败,请联系管理员!' |
| | | }) |
| | | }, |
| | | download() { |
| | | var checke = [] |
| | | this.checkedArr.forEach((v, i) => { |
| | | if (v.isChecked) { |
| | | checke.push(v.filesid) |
| | | } |
| | | }) |
| | | if (checke.length <= 0) { |
| | | this.$message({ |
| | | message: '请选择需要下载的文件!', |
| | | type: 'warning' |
| | | }) |
| | | } else { |
| | | // 生成查询文件的条件 |
| | | var params = { fileids: checke.join(',') } |
| | | this.$download('hr/filesUpload/download', { ...params }, this.activities[this.beforeIndex].timestamp + '.zip').then(() => { |
| | | this.$message({ |
| | | message: '下载成功!', |
| | | type: 'success' |
| | | }) |
| | | }) |
| | | } |
| | | }, |
| | | delFile() { |
| | | var checke = [] |
| | | this.checkedArr.forEach((v, i) => { |
| | | if (v.isChecked) { |
| | | checke.push(v.filesid) |
| | | } |
| | | }) |
| | | if (checke.length <= 0) { |
| | | this.$message({ |
| | | message: '请选择需要删除的文件!', |
| | | type: 'warning' |
| | | }) |
| | | } else { |
| | | // 生成查询文件的条件 |
| | | var params = { fileids: checke.join(',') } |
| | | this.$delete('hr/filesUpload', { ...params }).then(() => { |
| | | this.$message({ |
| | | message: '删除成功!', |
| | | type: 'success' |
| | | }) |
| | | // 生成查询文件的条件 |
| | | var initFileParams = { |
| | | folderid: this.activities[this.beforeIndex].id, |
| | | filesname: this.fileName |
| | | } |
| | | |
| | | this.initFile(initFileParams) |
| | | }) |
| | | } |
| | | }, |
| | | mvfolder(formName) { |
| | | if (this.folderform.folderid === this.activities[this.beforeIndex].id) { |
| | | this.$message({ |
| | | message: '文件在同一目录!', |
| | | type: 'warning' |
| | | }) |
| | | return |
| | | } |
| | | var checke = [] |
| | | this.checkedArr.forEach((v, i) => { |
| | | if (v.isChecked) { |
| | | checke.push(v.filesid) |
| | | } |
| | | }) |
| | | if (checke.length <= 0) { |
| | | this.$message({ |
| | | message: '请选择需要移动的文件!', |
| | | type: 'warning' |
| | | }) |
| | | } else { |
| | | this.$refs[formName].validate(valid => { |
| | | if (valid) { |
| | | // 生成查询文件的条件 |
| | | var params = { fileids: checke.join(','), folderid: this.folderform.folderid } |
| | | this.$post('hr/filesUpload/mvFiles', { ...params }).then(() => { |
| | | this.$message({ |
| | | message: '移动成功!', |
| | | type: 'success' |
| | | }) |
| | | this.mvdialogFormVisible = false |
| | | // 生成查询文件的条件 |
| | | var initFileParams = { |
| | | folderid: this.activities[this.beforeIndex].id, |
| | | filesname: this.fileName |
| | | } |
| | | this.initFile(initFileParams) |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | .clearfix:before, |
| | | .clearfix:after { |
| | | display: table; |
| | | content: ''; |
| | | } |
| | | |
| | | .clearfix:after { |
| | | clear: both; |
| | | } |
| | | .add-folder { |
| | | text-align: initial; |
| | | } |
| | | .zs-main { |
| | | .search-title { |
| | | height: 50px; |
| | | .search { |
| | | position: relative; |
| | | top: 50%; |
| | | transform: translateY(-50%); |
| | | } |
| | | .title { |
| | | position: relative; |
| | | top: 40%; |
| | | transform: translateY(-50%); |
| | | } |
| | | .zs-title { |
| | | border-left: 4px solid #a32c30; |
| | | padding-left: 10px; |
| | | font-size: 16px; |
| | | } |
| | | } |
| | | .add-folder-but { |
| | | background: #fff !important; |
| | | color: #a32c30 !important; |
| | | margin-bottom: 20px; |
| | | } |
| | | padding: 0 15px 0 15px; |
| | | .text-header { |
| | | line-height: 60px; |
| | | } |
| | | .uploading-image { |
| | | width: 100%; |
| | | height: 100%; |
| | | display: block; |
| | | } |
| | | } |
| | | |
| | | .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; |
| | | } |
| | | |
| | | .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: 178px; |
| | | height: 178px; |
| | | line-height: 178px; |
| | | text-align: center; |
| | | } |
| | | .avatar { |
| | | width: 178px; |
| | | height: 178px; |
| | | 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; |
| | | } |
| | | </style> |
| | | <style lang="scss" scoped> |
| | | .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%; |
| | | } |
| | | </style> |
| | | |