qa-prevention-xgf-vue/src/views/PersonManager/userCenter/components/edit.vue

1748 lines
58 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div v-loading="listLoading">
<div style="padding:20px">
<div class="title_super">
<div>{{ this.$parent.USER_ID == '' ? '新增用户' : '编辑用户' }}</div>
</div>
<el-form ref="form" :rules="rules" :model="form" label-width="210px">
<el-row>
<el-col :span="12">
<el-form-item label="照片" prop="userImg" >
<el-upload
ref="photoUpload"
:file-list="form.userImg"
:multiple="false"
:limit="1"
:class="{hide:hideUpload}"
:auto-upload="false"
:before-remove="handlePhotoBeforeRemove"
:on-remove="handleRemove"
:on-change="handleChangeIMG"
action="#"
accept=".jpg,.jpeg,.png"
list-type="picture-card">
<i class="el-icon-plus" />
</el-upload>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="姓名" prop="NAME" class="input-width">
<el-input :span="5" v-model="form.NAME" placeholder="这里输入姓名..."/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="用户名" prop="USERNAME" class="input-width">
<el-input v-model="form.USERNAME" :disabled="dialogType == 'editUser'" placeholder="这里输入用户名..."/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="联系电话" prop="PHONE" style="display:none">
<el-input v-model="form.PHONE" disabled placeholder="这里输入联系电话..."/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="部门" prop="DEPARTMENT_ID" label-width="">
<SelectTree
ref="deptTree"
:clearable="false"
:options="treeData"
:props="defaultProps"
v-model="form.DEPARTMENT_ID"
placeholder="请选择部门"
style="width: 290px"
/>
</el-form-item>
<!-- <el-form-item v-else label="部门" prop="DEPARTMENT_ID">-->
<!-- <el-input v-model="form.DEPARTMENT_NAME" placeholder="请选择部门..." />-->
<!-- </el-form-item>-->
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="身份证号" prop="CARD_ID" class="input-width">
<el-input v-model="form.CARD_ID" placeholder="这里输入身份证号..."/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="身份证照片" class="input-width" prop="userCardFile" >
<el-upload
ref="userCardUpload"
:file-list="form.userCardFile"
:multiple="false"
:limit="2"
:class="{hide:userCardIDUpload}"
:auto-upload="false"
:before-remove="handlePhotoBeforeRemove"
:on-remove="handleUserCardPhoneRemove"
:on-change="handleUserCardPhoneZhengshu"
action="#"
accept=".jpg,.jpeg,.png"
list-type="picture-card">
<i class="el-icon-plus" />
</el-upload>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="民族" prop="NATIONALITY">
<el-select v-model="form.NATIONALITY" placeholder="请选择" style="width: 290px">
<el-option
v-for="item in minzuList"
:key="item.DICTIONARIES_ID"
:label="item.NAME"
:value="item.BIANMA"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="性别" >
<el-radio-group v-model="form.SEX" disabled>
<el-radio v-model="form.SEX" label="1">女</el-radio>
<el-radio v-model="form.SEX" label="0">男</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="出生年月" prop="DATE_OF_BIRTH">
<el-date-picker
v-model="form.DATE_OF_BIRTH"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
disabled
style="width: 290px"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="年龄" prop="AGE" class="input-width">
<el-input v-model="form.AGE" type="number" placeholder="这里输入年龄..." disabled/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="户口所在地" prop="HKLOCAL" class="input-width">
<el-input v-model="form.HKLOCAL" placeholder="这里输入户口所在地..."/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="现住址" prop="ADDRESS" class="input-width">
<el-input v-model="form.ADDRESS" placeholder="这里输入现住址..."/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="文化程度" prop="DEGREE_OF_EDUCATION">
<el-select v-model="form.DEGREE_OF_EDUCATION" placeholder="请选择" style="width: 290px">
<el-option
v-for="item in wenhuachengduList"
:key="item.DICTIONARIES_ID"
:label="item.NAME"
:value="item.BIANMA"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="婚姻状况" prop="MARITALSTATUS">
<el-radio-group v-model="form.MARITALSTATUS" >
<el-radio v-model="form.MARITALSTATUS" label="1">已婚</el-radio>
<el-radio v-model="form.MARITALSTATUS" label="0">未婚</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="政治面貌" prop="POLITICAL_STATUS">
<el-select v-model="form.POLITICAL_STATUS" placeholder="请选择" style="width: 290px">
<el-option
v-for="item in zhengzhimianmaoList"
:key="item.DICTIONARIES_ID"
:label="item.NAME"
:value="item.BIANMA"
/>
</el-select>
</el-form-item>
</el-col>
<el-col v-show="form.POLITICAL_STATUS === 'zhonggongdangyuan'" :span="12">
<el-form-item label="入党时间" prop="POLITICAL_TIME">
<el-date-picker
v-model="form.POLITICAL_TIME"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
style="width: 290px"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="是否缴纳社保" prop="IS_SOCIAL">
<el-radio-group v-model="form.IS_SOCIAL" @change="form.zhebaoZhaopian = []">
<el-radio v-model="form.IS_SOCIAL" label="1">是</el-radio>
<el-radio v-model="form.IS_SOCIAL" label="0">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.IS_SOCIAL === '1'" label="社会保障号码" class="input-width" prop="SOCIAL_NUMBER">
<el-input v-model="form.SOCIAL_NUMBER" placeholder="这里输入社会保障号码..." @keyup.native="number"/>
</el-form-item>
<el-form-item v-if="form.IS_SOCIAL === '1'" label="社保卡照片" prop="zhebaoZhaopian" >
<el-upload
ref="zhenbaoUpload"
:file-list="form.zhebaoZhaopian"
:multiple="false"
:limit="2"
:class="{hide:zhebaoUpload}"
:auto-upload="false"
:before-remove="handlePhotoBeforeRemove"
:on-remove="handleZhebaoRemove"
:on-change="handleZhebaoChangeIMG"
action="#"
accept=".jpg,.jpeg,.png"
list-type="picture-card">
<i class="el-icon-plus" />
</el-upload>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否缴纳保险" prop="IS_BF">
<el-radio-group v-model="form.IS_BF">
<el-radio v-model="form.IS_BF" label="1">是</el-radio>
<el-radio v-model="form.IS_BF" label="0">否</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="是否签订劳动合同" prop="IS_SIGN_LABOR">
<el-radio-group v-model="form.IS_SIGN_LABOR" @change="form.contractFileList = []">
<el-radio v-model="form.IS_SIGN_LABOR" label="1">是</el-radio>
<el-radio v-model="form.IS_SIGN_LABOR" label="0">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.IS_SIGN_LABOR === '1'" label="合同图片" prop="contractFileList">
<el-upload
ref="contractFileList"
:file-list="form.contractFileList"
:limit="4"
:class="{hide:hideContractUpload}"
:auto-upload="false"
:before-remove="handlePhotoBeforeRemove"
:on-remove="handleContractFileRemove"
:on-change="handleContractFileChange"
multiple
action="#"
accept=".jpg,.jpeg,.png"
list-type="picture-card">
<i class="el-icon-plus" />
</el-upload>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否缴纳商业保险" prop="ISPAY" @change="form.insuranceFileList = []">
<el-radio-group v-model="form.ISPAY">
<el-radio v-model="form.ISPAY" label="1">是</el-radio>
<el-radio v-model="form.ISPAY" label="0">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.ISPAY === '1'" label="商业保险单号" prop="ISPAY_NUMBER">
<el-input v-model="form.ISPAY_NUMBER" placeholder="这里输入商业保险单号..."/>
</el-form-item>
<el-form-item v-if="form.ISPAY === '1'" label="保险图片" prop="insuranceFileList">
<el-upload
ref="insuranceFileList"
:file-list="form.insuranceFileList"
:limit="4"
:class="{hide:hideInsuranceUpload}"
:auto-upload="false"
:on-remove="handleInsuranceFileRemove"
:on-change="handleInsuranceFileChange"
:before-remove="handlePhotoBeforeRemove"
multiple
action="#"
accept=".jpg,.jpeg,.png"
list-type="picture-card">
<i class="el-icon-plus" />
</el-upload>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="是否按期缴纳工伤保险" prop="IS_INJURIES_PAY" style="float:left">
<el-radio-group v-model="form.IS_INJURIES_PAY">
<el-radio v-model="form.IS_INJURIES_PAY" label="1">是</el-radio>
<el-radio v-model="form.IS_INJURIES_PAY" label="0">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.IS_INJURIES_PAY ==='1'" label="工伤保险有效期" prop="IS_INJURIES_PAY_TIME" style="float:left">
<el-date-picker
v-model="form.IS_INJURIES_PAY_TIME"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
style="width: 290px"
/>
</el-form-item>
<el-form-item v-if="form.IS_INJURIES_PAY ==='1'" label="上传工伤保险凭证" style="float:left" prop="gongshangbaoxianFile">
<el-upload
ref="gongshangFileList"
:file-list="form.gongshangbaoxianFile"
:limit="4"
:class="{hide:hidegongshangUpload}"
:auto-upload="false"
:before-remove="handlePhotoBeforeRemove"
:on-remove="handleGongshangFileRemove"
:on-change="handleGongshangFileChange"
multiple
action="#"
accept=".jpg,.jpeg,.png"
list-type="picture-card">
<i class="el-icon-plus" />
</el-upload>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="岗位名称(工种)" prop="POST_ID">
<el-input v-model="form.POST_ID" placeholder="这里输入这里输入岗位名称(工种)..."/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="是否参加三级安全培训" prop="IS_LEVEL_THREE" >
<el-radio-group v-model="form.IS_LEVEL_THREE">
<el-radio v-model="form.IS_LEVEL_THREE" label="1">是</el-radio>
<el-radio v-model="form.IS_LEVEL_THREE" label="0">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.IS_LEVEL_THREE === '1'" label="三级安全培训照片" prop="photosOfLevel" >
<el-upload
ref="photosOfLevel"
:file-list="form.photosOfLevel"
:multiple="false"
:limit="5"
:class="{hide:photosOfLevel}"
:auto-upload="false"
:before-remove="handlePhotoBeforeRemove"
:on-remove="handleLevelPhotoRemove"
:on-change="handleLevelPhotoChangeIMG"
action="#"
accept=".jpg,.jpeg,.png"
list-type="picture-card">
<i class="el-icon-plus" />
</el-upload>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="是否特殊工种" prop="IS_SPECIAL_JOB">
<el-radio-group v-model="specialJob" disabled>
<el-radio v-model="specialJob" label="1">是</el-radio>
<el-radio v-model="specialJob" label="0">否</el-radio>
</el-radio-group>
</el-form-item>
<el-alert
v-show="whetherHaveCertificate"
:closable="false"
title="请提示该用户去相关方app端完善特种证书信息"
type="error"
class="alertClass"
/>
</el-col>
<el-col :span="12">
<el-form-item label="是否流动人员" prop="ISFLOW" style="float:left">
<el-radio-group v-model="form.ISFLOW" :disabled="whetherServiceCompany">
<el-radio v-model="form.ISFLOW" label="1">是</el-radio>
<el-radio v-model="form.ISFLOW" label="0">否</el-radio>
</el-radio-group>
</el-form-item>
<el-alert
v-show="whetherServiceCompany"
title="该人员已固定服务企业,无法变更人员类型"
type="error"
class="alertClass"
/>
</el-col>
</el-row>
</el-form>
</div>
<div class="ui-height"/>
<div class="ui-foot">
<el-button v-show="ISCHECK" :loading="buttonLoading" type="success" @click="confirm">保 存</el-button>
<el-button v-show="!ISCHECK" :loading="buttonLoading" type="success" @click="goCheck">校 验</el-button>
<el-button plain type="info" @click="goBack"> </el-button>
</div>
</div>
</template>
<script>
import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包
import { requestFN } from '@/utils/request'
import waves from '@/directive/waves' // waves directive
import SelectTree from '@/components/SelectTree'
import { upload } from '@/utils/upload'
export default {
components: { Pagination, SelectTree },
directives: { waves },
data() {
var hasCARD = (rule, value, callback) => {
requestFN(
'/user/hasUserCARD',
{
CARD_ID: value,
USER_ID: this.$parent.USER_ID
}
).then((data) => {
if (data.pd) {
callback(new Error('身份证号已存在'))
}
callback()
// 获取出生年月
this.form.DATE_OF_BIRTH = value.substring(6, 10) + '-' + value.substring(10, 12) + '-' + value.substring(12, 14)
// 获取性别
this.form.SEX = (parseInt(value.substr(16, 1)) % 2 == 1 ? '0' : '1')
// 获取年龄
var ageDate = new Date()
var month = ageDate.getMonth() + 1
var day = ageDate.getDate()
var age = ageDate.getFullYear() - value.substring(6, 10) - 1
if (value.substring(10, 12) < month || value.substring(10, 12) == month && value.substring(12, 14) <= day) {
age++
}
if (age <= 0) {
age = 1
}
this.form.AGE = age
}).catch((e) => {
callback()
})
}
var hasName = (rule, value, callback) => {
requestFN(
'/user/hasUserName',
{
USERNAME: value,
USER_ID: this.$parent.USER_ID
}
).then((data) => {
if (data.pd) {
callback(new Error('用户名已存在'))
}
callback()
}).catch((e) => {
callback()
})
}
// 劳动合同附件 0否1是
var hasContract = (rule, value, callback) => {
if (this.form.IS_SIGN_LABOR == '0') {
callback()
} else {
if (this.form.contractFileList.length == 0) callback(new Error('劳动合同附件不能为空'))
}
callback()
}
// 商业保险 0否1是
var hasInsurance = (rule, value, callback) => {
if (this.form.ISPAY == '0') {
this.form.ISPAY_NUMBER = ''
callback()
} else {
if (this.form.ISPAY_NUMBER == '') callback(new Error('商业保险单号不为空'))
}
callback()
}
// 是否缴纳社保
var hasSOCIAL = (rule, value, callback) => {
if (this.form.IS_SOCIAL == '0') {
this.form.SOCIAL_NUMBER = ''
callback()
} else {
if (this.form.SOCIAL_NUMBER == '') callback(new Error('社会保障号码不为空'))
}
callback()
}
// 是否缴纳社保
var hasSOCIALPHTOT = (rule, value, callback) => {
if (this.form.IS_SOCIAL == '0') {
this.form.zhebaoZhaopian = []
callback()
} else {
if (this.form.zhebaoZhaopian.length == 0) callback(new Error('社会卡照片不为空'))
}
callback()
}
// 三级培训
var hasLevelThree = (rule, value, callback) => {
console.log('hasLevelThree')
if (this.form.IS_LEVEL_THREE == '0') {
this.form.photosOfLevel = []
callback()
} else {
if (this.form.photosOfLevel.length == 0) callback(new Error('三级培训不为空'))
}
callback()
}
// 工伤保险 0否1是
var hasWorkInsurance = (rule, value, callback) => {
if (this.form.IS_INJURIES_PAY == '1') {
callback()
} else {
if (this.form.IS_INJURIES_PAY_TIME == '') callback(new Error('请选择工伤保险有效期'))
}
callback()
}
// 安全告知培训合格日期
var hasSafety = (rule, value, callback) => {
if (this.form.IS_SAFETY_TELL == '0') {
this.form.IS_SAFETY_TIME = ''
callback()
} else {
if (this.form.IS_SAFETY_TIME == '') callback(new Error('请选择安全告知培训合格日期'))
}
callback()
}
// 入党时间
var isCommunist = (rule, value, callback) => {
if (this.form.POLITICAL_STATUS != 'zhonggongdangyuan') {
this.form.POLITICAL_TIME = ''
callback()
} else {
if (this.form.POLITICAL_TIME == '') callback(new Error('请选择入党时间'))
}
callback()
}
return {
ISCHECK: false,
imgDelKey: [],
zhebaoUpload: false, // 社保卡照片
photosOfLevel: false, // 三级教育培训照片
userCardIDUpload: false,
buttonLoading: false,
DEPARTMENT_NAME: '',
dayTime: [],
LevelsData: [],
dialogFormEditDate: false,
dialogFormLicenseInformation: false,
listLoading: false,
treeLoading: false,
hideUpload: false,
hideInsuranceUpload: false,
hideContractUpload: false,
hidegongshangUpload: false,
add: false,
del: false,
edit: false,
KEYWORDS: '',
selectPeriod: [],
tzzyry: '',
periodList: [],
DEPARTMENT_ID: '',
varList: [],
multipleSelectionAll: [], // 所有选中的数据包含跨页数据
multipleSelection: [], // 当前页选中的数据
dialogFormEdit: false,
dialogType: 'saveUser',
disabledLCSelect: false,
displayLCSelect: 'display: block',
disabledLCInput: true,
displayLCInput: 'display: none',
LearnerCategoryList: [],
certificatenamearr: [
{ value: '主要负责人证', label: '主要负责人证' },
{ value: '安全管理人员证', label: '安全管理人员证' },
{ value: '特种作业人员证', label: '特种作业人员证' }
],
sexList: [
{ ID: '0', NAME: '男' },
{ ID: '1', NAME: '女' }
],
rules: {
NAME: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
POLITICAL_STATUS: [{ required: true, message: '请选择政治面貌', trigger: 'blur' }],
NATIONALITY: [{ required: true, message: '请选择民族', trigger: 'blur' }],
POLITICAL_TIME: [{ required: true, validator: isCommunist, message: '请选择入党时间', trigger: 'blur' }],
USERNAME: [
{ required: true, message: '用户名不能为空', trigger: 'blur' },
{
pattern: /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[0-9])\d{8}$/,
message: '用户名为手机号,请正确输入'
},
{ validator: hasName, trigger: 'blur' }
],
contractFileList: [
{ type: 'array', required: false, message: '请上传合同图片', trigger: 'blur', validator: hasContract }
],
insuranceFileList: [{ required: false, message: '请上传合保险图片', trigger: 'blur' }],
userCardFile: [{ type: 'array', required: true, message: '请上传身份证图片', trigger: 'blur' }],
zhebaoZhaopian: [{ type: 'array', required: true, message: '请上传社保卡照片', trigger: 'blur' }, { validator: hasSOCIALPHTOT }],
photosOfLevel: [{ type: 'array', required: true, message: '请上传三级培训照片', trigger: 'blur' }, { validator: hasLevelThree }],
gongshangbaoxianFile: [{ type: 'array', required: false, message: '请上传工伤保险凭证', trigger: 'blur' }],
SOCIAL_NUMBER: [{ required: true, message: '社会保障号码不能为空', trigger: 'blur' }, { validator: hasSOCIAL }],
ISPAY: [{ required: false, message: '请选择是否缴纳商业保险', trigger: 'blur' }],
ISPAY_NUMBER: [{ required: false, message: '请输入商业保险单号', trigger: 'blur' }, { validator: hasInsurance }],
ISFLOW: [{ required: true, message: '请选择是否流动人员', trigger: 'blur' }],
IS_LEVEL_THREE: [{ required: true, message: '请选择是否参加三级安全培训', trigger: 'blur' }],
IS_BODY_ADAPT: [{ required: false, message: '请选择身体状况是否适应本岗位工作', trigger: 'blur' }],
IS_SAFETY_TELL: [{ required: true, message: '请选择是否开展入场安全告知', trigger: 'blur' }],
IS_SAFETY_TIME: [{ required: false, message: '请选择安全告知培训合格日期', trigger: 'blur' }, { validator: hasSafety, trigger: 'change' }],
IS_SPECIAL_JOB: [{ required: true, message: '请选择是否特种工种', trigger: 'blur' }],
IS_INJURIES_PAY: [{ required: true, message: '请选择是否按期缴纳工伤保险', trigger: 'blur' }],
IS_INJURIES_PAY_TIME: [{ required: true, message: '请选择工伤保险有效期', trigger: 'blur' }, { validator: hasWorkInsurance }],
IS_BF: [{ required: true, message: '请选择是否缴纳保险', trigger: 'blur' }],
IS_SOCIAL: [{ required: true, message: '请选择是否缴纳社保', trigger: 'blur' }],
HKLOCAL: [{ required: false, message: '请输入户口所在地', trigger: 'blur' }],
ADDRESS: [{ required: false, message: '请输入现住址', trigger: 'blur' }],
DEGREE_OF_EDUCATION: [{ required: true, message: '请选择文化程度', trigger: 'blur' }],
MARITALSTATUS: [{ required: true, message: '婚姻状况必选', trigger: 'blur' }],
CORP_START_DATE: [{ required: false, message: '请选择日期', trigger: 'blur' }],
POST_ID: [{ required: true, message: '请输入岗位名称(工种)', trigger: 'blur' }],
ENTRY_DATE: [{ required: false, message: '请选择日期', trigger: 'blur' }],
PHONE: [
{ required: true, message: '请输入手机号码', trigger: 'blur' },
{ min: 11, max: 11, message: '请输入11位手机号码', trigger: 'blur' },
{
pattern: /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[0-9])\d{8}$/,
message: '请输入正确的手机号码'
}],
ROLE_ID: [{ required: true, message: '请选择角色', trigger: 'change' }],
DEPARTMENT_ID: [{ required: true, message: '请选择部门', trigger: 'change' }],
CARD_ID: [{ required: true, message: '身份证号不能为空', trigger: 'blur' },
{
pattern: /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,
message: '请输入正确的身份证号'
},
{ validator: hasCARD, trigger: 'blur' }
],
AGE: [{ required: true, message: '年龄不能为空', trigger: 'blur' },
{
pattern: /^\d{2}$/,
message: '请输入两位数年龄'
}
],
PHOTO: [
{
type: 'array',
required: true,
message: '请上传照片',
trigger: 'blur'
}
],
userImg: [
{
type: 'array',
required: true,
message: '请上传照片',
trigger: 'blur'
}
]
},
defaultProps: {
children: 'nodes',
label: 'name',
value: 'id'
},
treeData: [],
EMPLOYMENT_APPLY_MANAGEMENT_ID: '',
form: {
USER_ID: '',
userCardFile: [],
zhebaoZhaopian: [],
photosOfLevel: [],
gongshangbaoxianFile: [],
userImg: [],
NATIONALITY: '',
POLITICAL_TIME: '',
MARITALSTATUS: '',
POLITICAL_STATUS: '',
contractFileList: [], // 合同文件
insuranceFileList: [], // 保险文件
CARD_ID: '', // 身份证号
DEPARTMENT_NAME: '', // 部门名称
CORPINFO_ID: '', // 企业id
HKLOCAL: '', // 户口所在地
AGE: '',
SEX: '',
ADDRESS: '',
PHONE: '',
IS_SAFETY_TIME: '',
IS_SOCIAL: '',
IS_BF: '1',
SOCIAL_NUMBER: '', // 社会保障号码
IS_LEVEL_THREE: '', // 是否参加三级安全培训
IS_SPECIAL_JOB: '', // 是否特殊工种
ISFLOW: '', //
PHOTO: [],
IS_INJURIES_PAY: '',
CORP_START_DATE: '',
IS_BODY_ADAPT: '',
IS_SAFETY_TELL: '',
ISPAY: '',
IS_INJURIES_PAY_TIME: '',
ISPAY_NUMBER: '',
IS_SIGN_LABOR: '',
IS_HAZARDCONFIRMER: 0,
INFORPOST: '',
INFORTITLE: '',
INFORTITLEValue: '',
infortitleType: 'select',
INFORWORK: '',
INFORWORKValue: '',
inforworkType: 'select',
ROLE_ID: [],
ROLE_NAME: [],
DEPARTMENT_ID: '',
POST_ID: '',
PERSON_WORK_TYPE: '', // 工种
USERNAME: '',
NAME: '',
EMAIL: '',
LEARNERCATEGORY: '',
LEARNERCATEGORYSTATUS: 'select',
SORT: '',
JCR: '',
BZ: '',
PERSON_TYPE: '',
PASSWORD: 'Aa@123456789',
USERAVATARPREFIX: '',
USERAVATARURL: '',
USERAVATARURL_CONVERT: '',
SHIFTDUTYONE: '',
SHIFTDUTYTWO: '',
DURATION: '',
WORKSTATUS: '',
WORKPERIOD: '',
ISSTUDENT: false,
NATION: '', // 民族
POLITICAL_OUTLOOK: '', // 政治面貌
DATE_OF_BIRTH: '', // 出生年月
DEGREE_OF_EDUCATION: '', // 文化程度
POST: '', // 职务
TYPE_OF_WORK: '', // 工种
ENTRY_DATE: '', // 入职日期
WORK_DATE: '', // 参加工作日期
INCUMBENCY: '', // 在职情况
CERTIFICATE_INFORMATION: '', // 证书信息
TITLE: '', // 职称
DUTIESValue: '',
DUTIES: '',
inforpostType: 'select',
INFORPOSTValue: '',
letDutiesType: 'select',
letPostType: 'select',
letTitleValue: '',
letTitleId: '',
letTitleType: 'select',
letTypeOfWorkValue: '',
letTypeOfWorkId: '',
letTypeOfWorkType: 'select',
USER_ID_CARD: '',
PERSONNEL_TYPE: '',
userCerList: []
},
wenhuachengduList: [], // 文化程度 d7d80f08d73a4accbccf4fd3d8d1d867
certificate_files: [],
config: config,
pdrelated: {},
dialogImageUrl: [],
dialogVisible: false,
SchedulingFrom: false,
roleList: [],
roleList1: [],
roleList_z: [],
role1List: [],
postList: [],
workTypeList: [], // 工种
oldPostId: '', // 原岗位ID用于判断岗位是否变化
oldDepartId: '', // 原部门ID用于判断部门是否变化
dialogFormDaoru: false,
daoruFrom: {
FFILE: '',
FFILEName: ''
},
PARENTID: '0',
shiftDutyListOne: [],
shiftDutyListTwo: [],
queryShiftOneList: [],
queryShiftTwoList: [],
datePage: 0,
workDateList: [],
USER_ID: '',
minzuList: [],
zhengzhimianmaoList: [],
whetherHaveCertificate: true,
specialJob: '0',
// 是否正在服务
whetherServiceCompany: false
}
},
watch: {
'form.USERNAME': {
handler: function() {
if (this.form.USERNAME) {
this.form.PHONE = this.form.USERNAME
}
}
},
'form.userCardFile': {
handler: function() {
if (this.form.userCardFile.length >= 2) {
this.userCardIDUpload = true
} else {
this.userCardIDUpload = false
}
}
},
'form.insuranceFileList': {
handler: function() {
if (this.form.insuranceFileList.length >= 4) {
this.hideInsuranceUpload = true
} else {
this.hideInsuranceUpload = false
}
}
},
'form.contractFileList': {
handler: function() {
if (this.form.contractFileList.length >= 4) {
this.hideContractUpload = true
} else {
this.hideContractUpload = false
}
}
},
'form.zhebaoZhaopian': {
handler: function() {
if (this.form.zhebaoZhaopian.length >= 2) {
this.zhebaoUpload = true
} else {
this.zhebaoUpload = false
}
}
},
'form.gongshangbaoxianFile': {
handler: function() {
if (this.form.gongshangbaoxianFile.length >= 4) {
this.hidegongshangUpload = true
} else {
this.hidegongshangUpload = false
}
}
},
'form.photosOfLevel': {
handler: function() {
if (this.form.photosOfLevel.length >= 4) {
this.photosOfLevel = true
} else {
this.photosOfLevel = false
}
}
},
'form.userImg': {
handler: function() {
if (this.form.userImg.length >= 1) {
this.hideUpload = true
} else {
this.hideUpload = false
}
}
}
},
async created() {
await this.getTreeList()
await this.checkSpecialCertificateList()
this.hasButton()
},
mounted() {
this.handleEdit(this.$parent.USER_ID)
this.getDict()
},
methods: {
goCheck() {
if (this.form.CARD_ID && this.form.USERNAME) {
const phoneJudge = /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[0-9])\d{8}$/
const phoneResult = phoneJudge.test(this.form.USERNAME)
const cardJudge = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
const cardResult = cardJudge.test(this.form.CARD_ID)
if (phoneResult && cardResult) {
console.log('格式校验通过')
requestFN(
'user/goCheck',
{
USER_ID: this.form.USER_ID,
CARD_NO: this.form.CARD_ID,
USERNAME: this.form.USERNAME
}
).then((data) => {
if (data.result === 'success') {
this.$message.success('验证通过')
this.ISCHECK = true
} else {
this.$message.error('验证失败,请确认身份证号与手机号是否正确')
this.ISCHECK = false
}
}).catch((e) => {
this.listLoading = false
this.ISCHECK = false
})
} else {
this.ISCHECK = false
}
} else {
this.$message.warning('请确认身份证号与手机号后进行校验')
this.ISCHECK = false
}
},
goPush(row) {
requestFN(
'user/goPush',
{
USER_ID: row.USER_ID,
STATUS: row.STATUS,
BZ: row.BZ,
SKIN: row.SKIN,
PHONE: row.PHONE,
NUMBER: row.NUMBER,
CARD_NO: row.CARD_ID,
USERNAME: row.USERNAME,
NAME: row.NAME,
CORPINFO_ID: row.CORPINFO_ID,
CORPINFO_NAME: row.CORPINFO_NAME || '',
DEPARTMENT_ID: row.DEPARTMENT_ID,
DEPARTMENT_NAME: row.DEPARTMENT_NAME,
IMGFILES_ID: row.IMGFILES_ID,
FOREIGN_KEY: row.FOREIGN_KEY,
FILEPATH: row.FILEPATH,
EMAIL: row.EMAIL || '',
CARD_TYPE: '111',
CARD_TYPE_NAME: '身份证',
NATION: row.NATIONALITY || '',
SEX: row.SEX || '',
USER_TYPE: '2',
ISDELETE: row.ISDELETE
}
).then((data) => {
if (data.result === 'success') {
this.$message.success('推送成功')
this.$parent.activeName = 'List'
} else {
this.$message.error('推送失败,' + data.msg)
this.$parent.activeName = 'List'
}
}).catch((e) => {
this.listLoading = false
})
},
// 查询是否有特种证书
checkSpecialCertificateList() {
return new Promise((resolve, reject) => {
requestFN(
'/specialUser/list',
{
USER_ID: this.$parent.USER_ID,
CORPINFO_ID: this.$parent.CORPINFO_ID,
keyCrelType: '7498057c4c1f4a11b9a960e66ea04a7a'
}
).then((data) => {
this.listLoading = false
if (data.varList.length > 0) {
this.whetherHaveCertificate = false
this.specialJob = '1'
}
}).catch((e) => {
this.listLoading = false
})
})
},
// 查询用户是否正在服务
checkWhetherUserService() {
return new Promise((resolve, reject) => {
requestFN(
'/user/checkWhetherUserService',
{
USER_ID: this.$parent.USER_ID,
IS_FLOW: this.form.ISFLOW
}
).then((data) => {
this.listLoading = false
if (data.pd) {
this.whetherServiceCompany = true
}
}).catch((e) => {
this.listLoading = false
})
})
},
// 获取数据字典数据
getDict() {
requestFN(
'dictionaries/getLevels',
{ DICTIONARIES_ID: 'd7d80f08d73a4accbccf4fd3d8d1d867' }
).then((data) => {
this.wenhuachengduList = data.list
}).catch((e) => {
this.listLoading = false
})
requestFN(
'dictionaries/getLevels',
{ DICTIONARIES_ID: '0a0e406f27f74ee698fe9979d25f62dd' }
).then((data) => {
this.minzuList = data.list
}).catch((e) => {
this.listLoading = false
})
requestFN(
'dictionaries/getLevels',
{ DICTIONARIES_ID: '6351efdd12dc4730952e5d195718e252' }
).then((data) => {
this.zhengzhimianmaoList = data.list
}).catch((e) => {
this.listLoading = false
})
/* requestFN(
'dictionaries/getLevels',
{ DICTIONARIES_ID: '09e36ac01e9540f8bc84eab1c1a78754' }
).then((data) => {
this.postList = data.list
}).catch((e) => {
this.listLoading = false
}) */
/* requestFN(
'dictionaries/getLevels',
{ DICTIONARIES_ID: '55484e491a5e442d839c4595380713ec' }
).then((data) => {
this.workTypeList = data.list
}).catch((e) => {
this.listLoading = false
}) */
},
changePersonType(e) {
this.dialogFormLicenseInformation = true
},
getPersonnelType() {
requestFN(
'/dictionaries/getLevels',
{
DICTIONARIES_ID: '0b62f92b0b624aab8e89a77304a64d5e'
}
).then((data) => {
this.LevelsData = data.list
}).catch((e) => {
})
},
goConfirm() {
this.dialogFormLicenseInformation = false
},
goBack() {
this.$parent.activeName = 'List'
},
getTreeList() {
return new Promise((resolve, reject) => {
this.treeLoading = true
requestFN(
'/department/listzTree',
{}
).then((data) => {
this.treeLoading = false
this.treeData = JSON.parse(data.zTreeNodes)
resolve()
}).catch((e) => {
this.treeLoading = false
reject()
})
})
},
/* getTreetreeDataList() {
this.treeLoading = true
requestFN(
'dictionaries/getLevels',
{
DICTIONARIES_ID: 'beafb40e1d5f48e3addbccf1d6f29572'
}
).then((data) => {
this.treeLoading = false
this.wenhuachengduList = data.list
}).catch((e) => {
this.treeLoading = false
})
}, */
getLearnerCategory() {
requestFN(
'/dictionariesCorp/getLevels',
{
DICTIONARIES_ID: '532282f9c48346b8b646531909c739df'
}
).then((data) => {
this.LearnerCategoryList = data.list
}).catch((e) => {
})
},
number() {
this.form.SORT = this.form.SORT.replace(/[^\.\d]/g, '')
this.form.SORT = this.form.SORT.replace('.', '')
},
// 保险图片remove
handleGongshangFileRemove(file, fileList) {
this.form.gongshangbaoxianFile = fileList
this.hidegongshangUpload = fileList.length >= 4
},
// 合同图片change
handleGongshangFileChange(file, fileList) {
const types = ['image/jpeg', 'image/jpg', 'image/png']
const isImage = types.includes(file.raw.type)
if (!isImage) {
this.$message.error('上传图片只能是 JPG、JPEG、PNG 格式!')
fileList.pop()
this.form.gongshangbaoxianFile = []
return
}
this.form.gongshangbaoxianFile.push(file)
this.hidegongshangUpload = fileList.length >= 4
},
// 保存
confirm() {
this.$refs.form.validate(valid => {
if (valid) {
if (this.form.userCardFile.length < 2) {
this.$message.error('请上传身份证正反面照片')
return false
} else {
this.listLoading = true
this.buttonLoading = true
// this.form.IS_SPECIAL_JOB = this.specialJob
// 校验社保和工伤保险必须有一个选是
if (this.form.IS_BF === '0' && this.form.IS_SOCIAL === '0') {
this.$message.error('保险或社保全无人员,不可进入本系统相关方人员管理!')
this.listLoading = false
this.buttonLoading = false
return
}
const formData = new FormData()
formData.append('imgDelKey', this.imgDelKey)
Object.keys(this.form).map(key => {
formData.append(key, this.form[key])
})
// 头像
if (this.$refs['photoUpload'].uploadFiles.length > 0) {
for (let i = 0; i < this.$refs['photoUpload'].uploadFiles.length; i++) {
if (this.$refs['photoUpload'].uploadFiles[i]) {
formData.append('userPhoto', this.$refs['photoUpload'].uploadFiles[i].raw)
}
}
}
// 身份证
if (this.$refs['userCardUpload'].uploadFiles.length > 0) {
for (let i = 0; i < this.$refs['userCardUpload'].uploadFiles.length; i++) {
if (this.$refs['userCardUpload'].uploadFiles[i]) {
formData.append('userCard', this.$refs['userCardUpload'].uploadFiles[i].raw)
}
}
}
if (this.form.IS_INJURIES_PAY === '1') {
if (this.$refs['gongshangFileList'].uploadFiles.length > 0) {
for (let i = 0; i < this.$refs['gongshangFileList'].uploadFiles.length; i++) {
if (this.$refs['gongshangFileList'].uploadFiles[i]) {
formData.append('WORK_INSURANCE_LIST', this.$refs['gongshangFileList'].uploadFiles[i].raw)
}
}
}
}
if (this.form.ISPAY === '1') {
if (this.form.insuranceFileList.length > 0) {
for (let i = 0; i < this.form.insuranceFileList.length; i++) {
if (this.form.insuranceFileList[i]) {
formData.append('insuranceFile', this.form.insuranceFileList[i].raw)
}
}
}
}
if (this.form.IS_SIGN_LABOR === '1') {
if (this.form.contractFileList.length > 0) {
for (let i = 0; i < this.form.contractFileList.length; i++) {
if (this.form.contractFileList[i]) {
formData.append('contractFile', this.form.contractFileList[i].raw)
}
}
}
}
// 社保照片
if (this.form.IS_SOCIAL === '1') {
if (this.$refs['zhenbaoUpload'].uploadFiles.length > 0) {
for (let i = 0; i < this.$refs['zhenbaoUpload'].uploadFiles.length; i++) {
if (this.$refs['zhenbaoUpload'].uploadFiles[i]) {
formData.append('SOCIAL_IMG', this.$refs['zhenbaoUpload'].uploadFiles[i].raw)
}
}
}
}
// 三级教育培训照片
if (this.form.IS_LEVEL_THREE === '1') {
if (this.$refs['photosOfLevel'].uploadFiles.length > 0) {
for (let i = 0; i < this.$refs['photosOfLevel'].uploadFiles.length; i++) {
if (this.$refs['photosOfLevel'].uploadFiles[i]) {
formData.append('photosOfLevel', this.$refs['photosOfLevel'].uploadFiles[i].raw)
}
}
}
}
formData.append('CORPINFO_ID', JSON.parse(sessionStorage.getItem('user')).CORPINFO_ID)
formData.append('EMPLOYMENT_APPLY_MANAGEMENT_ID', this.EMPLOYMENT_APPLY_MANAGEMENT_ID)
upload(
'/user/editPerson',
formData
).then((data) => {
this.$message.success('保存成功!')
this.goPush(data.pd)
this.listLoading = false
this.buttonLoading = false
}).catch((e) => {
this.$parent.activeName = 'List'
this.listLoading = false
this.buttonLoading = false
})
}
} else {
this.$message.warning('请补全必填项')
return false
}
})
},
// 查看
handleEdit(USER_ID) {
this.USER_ID = ''
this.dialogType = 'editUser'
requestFN(
'/user/goEdit',
{
USER_ID: USER_ID,
CORPINFO_ID: this.$parent.CORPINFO_ID,
EMPLOYMENT_APPLY_MANAGEMENT_ID: this.$parent.EMPLOYMENT_APPLY_MANAGEMENT_ID
}
).then((data) => {
this.form = Object.assign(this.form, data.pd) // copy obj
console.log(this.form)
if (data.userPhotoFile) {
data.userPhotoFile.map(item => {
const obj = { id: item.IMGFILES_ID, name: item.FILENAME, url: config.fileUrl + item.FILEPATH }
this.form.userImg.push(obj)
})
}
if (data.userCardIDPhotoFile) {
data.userCardIDPhotoFile.map(item => {
const obj = { id: item.IMGFILES_ID, name: item.FILENAME, url: config.fileUrl + item.FILEPATH }
this.form.userCardFile.push(obj)
})
}
if (data.socialPhotoFile) {
data.socialPhotoFile.map(item => {
const obj = { id: item.IMGFILES_ID, name: item.FILENAME, url: config.fileUrl + item.FILEPATH }
this.form.zhebaoZhaopian.push(obj)
})
}
if (data.threeLevelFile) {
data.threeLevelFile.map(item => {
const obj = { id: item.IMGFILES_ID, name: item.FILENAME, url: config.fileUrl + item.FILEPATH }
this.form.photosOfLevel.push(obj)
})
}
if (data.gongshangbaoxianFile) {
data.gongshangbaoxianFile.map(item => {
const obj = { id: item.IMGFILES_ID, name: item.FILENAME, url: config.fileUrl + item.FILEPATH }
this.form.gongshangbaoxianFile.push(obj)
})
}
if (data.insuranceFile) {
data.insuranceFile.map(item => {
const obj = { id: item.IMGFILES_ID, name: item.FILENAME, url: config.fileUrl + item.FILEPATH }
this.form.insuranceFileList.push(obj)
})
}
if (data.contractFile) {
data.contractFile.map(item => {
const obj = { id: item.IMGFILES_ID, name: item.FILENAME, url: config.fileUrl + item.FILEPATH }
this.form.contractFileList.push(obj)
})
}
this.EMPLOYMENT_APPLY_MANAGEMENT_ID = data.pdrelated.EMPLOYMENT_APPLY_MANAGEMENT_ID
const node = {}
node.id = this.form.DEPARTMENT_ID
this.$refs.deptTree.clearHandle()
this.$nextTick(() => { // 此处使用这个可以等节点渲染后再获取节点
this.$refs.deptTree.handleNodeClick(node)
})
if (this.form.ISFLOW) {
this.checkWhetherUserService()
}
this.pdrelated = Object.assign(this.pdrelated, data.pdrelated)
Object.assign(this.form, data.pdrelated)
}).catch((e) => {
this.listLoading = false
})
this.dialogFormEdit = true
},
beforeFileUpload(file) {
const types = ['image/jpeg', 'image/jpg', 'image/png']
const isImage = types.includes(file.type)
if (!isImage) {
this.$message.error('上传图片只能是 JPG、JPEG、PNG 格式!')
return false
} else {
this.form.PHOTO.push(file.raw)
}
},
getBase64(file) {
return new Promise(function(resolve, reject) {
const reader = new FileReader()
let imgResult = ''
reader.readAsDataURL(file)
reader.onload = function() {
imgResult = reader.result
}
reader.onerror = function(error) {
reject(error)
}
reader.onloadend = function() {
resolve(imgResult)
}
})
},
changeLearnerCategory() {
this.form.LEARNERCATEGORY = ''
if (this.form.LEARNERCATEGORYSTATUS === 'select') {
this.disabledLCInput = false
this.displayLCInput = 'display: block'
this.disabledLCSelect = true
this.displayLCSelect = 'display: none'
this.form.LEARNERCATEGORYSTATUS = 'input'
} else {
this.disabledLCInput = true
this.displayLCInput = 'display: none'
this.disabledLCSelect = false
this.displayLCSelect = 'display: block'
this.form.LEARNERCATEGORYSTATUS = 'select'
}
},
// 判断按钮权限,用于是否显示按钮
hasButton() {
var keys = 'user:add,user:del,user:edit'
requestFN(
'/head/hasButton',
{
keys: keys
}
).then((data) => {
this.add = data.userfhadminadd
this.del = data.userfhadmindel
this.edit = data.userfhadminedit
}).catch((e) => {
this.listLoading = false
})
},
forceUpdate(item) {
this.$forceUpdate()
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
handleChangeIMG(file, fileList) {
const types = ['image/jpeg', 'image/jpg', 'image/png']
const isImage = types.includes(file.raw.type)
if (!isImage) {
this.$message.error('上传图片只能是 JPG、JPEG、PNG 格式!')
fileList.pop()
this.form.userImg = []
return
}
this.form.userImg = []
this.form.userImg.push(file)
this.hideUpload = fileList.length >= 1
},
handlePhotoBeforeRemove(file, fileList) {
return this.$confirm('确定要删除吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
if (file.id) {
this.imgDelKey.push(file.id)
}
})
},
handleRemove(file, fileList) {
this.form.userImg = fileList
this.hideUpload = fileList.length >= 1
},
// 保险图片change
handleInsuranceFileChange(file, fileList) {
const types = ['image/jpeg', 'image/jpg', 'image/png']
const isImage = types.includes(file.raw.type)
if (!isImage) {
this.$message.error('上传图片只能是 JPG、JPEG、PNG 格式!')
fileList.pop()
this.form.insuranceFileList = []
return
}
this.form.insuranceFileList.push(file)
this.hideInsuranceUpload = fileList.length >= 4
},
// 保险图片remove
handleInsuranceFileRemove(file, fileList) {
this.form.insuranceFileList = fileList
this.hideInsuranceUpload = fileList.length >= 4
},
// 合同图片change
handleContractFileChange(file, fileList) {
const types = ['image/jpeg', 'image/jpg', 'image/png']
const isImage = types.includes(file.raw.type)
if (!isImage) {
this.$message.error('上传图片只能是 JPG、JPEG、PNG 格式!')
fileList.pop()
this.form.contractFileList = []
return
}
this.form.contractFileList.push(file)
this.hideContractUpload = fileList.length >= 4
},
// 合同图片remove
handleContractFileRemove(file, fileList) {
this.form.contractFileList = fileList
this.hideContractUpload = fileList.length >= 4
},
handleExceed(files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`)
},
handlePictureCardRemove(file, fileList) {
this.form.USERAVATARPREFIX = ''
this.form.USERAVATARURL = ''
this.form.USERAVATARURL_CONVERT = ''
},
handleChangeIMGZhengshu(file, fileList) {
const types = ['image/jpeg', 'image/jpg', 'image/png']
const isImage = types.includes(file.raw.type)
if (!isImage) {
this.$message.error('上传图片只能是 JPG、JPEG、PNG 格式!')
fileList.pop()
}
},
/** 社保照片 **/
handleZhebaoRemove(file, fileList) {
this.form.zhebaoZhaopian = fileList
},
handleZhebaoChangeIMG(file, fileList) {
const types = ['image/jpeg', 'image/jpg', 'image/png']
const isImage = types.includes(file.raw.type)
if (!isImage) {
this.$message.error('上传图片只能是 JPG、JPEG、PNG 格式!')
fileList.pop()
return
}
this.form.zhebaoZhaopian.push(file)
},
/** 三级教育培训 **/
handleLevelPhotoRemove(file, fileList) {
this.form.photosOfLevel = fileList
},
handleLevelPhotoChangeIMG(file, fileList) {
const types = ['image/jpeg', 'image/jpg', 'image/png']
const isImage = types.includes(file.raw.type)
if (!isImage) {
this.$message.error('上传图片只能是 JPG、JPEG、PNG 格式!')
fileList.pop()
return
}
this.form.photosOfLevel.push(file)
},
/** 身份照片**/
handleUserCardPhoneRemove(file, fileList) {
this.form.userCardFile = fileList
this.userCardIDUpload = fileList >= 2
},
handleUserCardPhoneZhengshu(file, fileList) {
const types = ['image/jpeg', 'image/jpg', 'image/png']
const isImage = types.includes(file.raw.type)
if (!isImage) {
this.$message.error('上传图片只能是 JPG、JPEG、PNG 格式!')
fileList.pop()
this.form.userCardFile = []
return
}
this.form.userCardFile.push(file)
this.userCardIDUpload = this.form.userCardFile.length >= 2
},
uploadImgByZhengshu(userId) {
this.$refs.upload.submit()
if (this.certificate_files.length > 0) {
const formData = new FormData()
for (var i = 0; i < this.certificate_files.length; i++) {
if (this.certificate_files[i]) {
formData.append('FFILE', this.certificate_files[i])
}
}
formData.append('FOREIGN_KEY', userId)
formData.append('TYPE', 18)
upload(
'/imgfiles/add',
formData
).then((data) => {
this.$message({
message: '操作成功',
type: 'success'
})
this.$parent.activeName = 'List'
}).catch((e) => {
})
} else {
this.$message({
message: '操作成功',
type: 'success'
})
this.$parent.activeName = 'List'
}
}
}
}
</script>
<style lang="scss" scoped>
.el-dialog__body {
padding: 0;
background: red;
}
.mark_up {
margin-bottom: 20px;
margin-left: 110px;
}
.icons-container {
margin: 0;
overflow: hidden;
.grid {
position: relative;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
}
.icon-item {
margin-bottom: 10px;
height: 70px;
text-align: center;
width: 100px;
float: left;
font-size: 24px;
color: #24292e;
cursor: pointer;
span {
display: block;
font-size: 14px;
margin-top: 10px;
}
}
.disabled {
pointer-events: none;
}
}
.filter-btn-group {
position: relative;
}
.filter-flot {
position: absolute;
right: 0;
top: 0;
}
.uploader {
width: 570px;
display: flex;
align-items: center;
}
.el-form-item__content {
line-height: 1;
}
.uo-flex {
display: flex;
}
.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 {
border: 1px dashed #c0ccda;
font-size: 28px;
color: #8c939d;
width: 110px;
height: 110px;
line-height: 110px;
border-radius: 6px;
text-align: center;
background-color: #fbfdff;
}
.avatar-uploader-icon:hover,
.avatar-uploader-icon:focus {
border-color: #1890ff;
color: #1890ff;
}
.avatar {
width: 110px;
height: 110px;
display: block;
border: 1px dashed #c0ccda;
}
</style>
<style lang="sass" scoped>
.alertClass
background-color: #FFFFFF
.el-row
margin-bottom: 16px
&:last-child
margin-bottom: 0
.form-group
display: flex
align-items: center
margin-right: 20px
.form-label
padding: 9px 15px
font-size: 14px
width: 240px
font-weight: 400
line-height: 20px
text-align: right
margin-bottom: 0
.star
color: red
padding-right: 4px
.input-block
flex: 1
min-height: 36px
position: relative
.disContent
padding: 0 20px
display: flex
align-items: center
flex-wrap: wrap
.img-div
position: relative
margin: auto 10px 10px 10px
width: 120px
height: 120px
border-radius: 4px
& > img
width: 100%
height: 100%
.disContent-hide
position: absolute
width: 100%
height: 100%
border-radius: 4px
background-color: rgba(48, 48, 48, 0.59)
display: none
top: 0
left: 0
.Delete
position: absolute
bottom: 14px
right: 10px
font-size: 16px
color: white
cursor: pointer
.editCss
.Delete
font-size: 16px
right: 90px
.yuLan
position: absolute
bottom: 23px
right: 50px
font-size: 16px
color: white
cursor: pointer
.yuLanImg
position: absolute
bottom: 0
right: 0
width: 100%
height: 100%
opacity: 0
.img-div:hover .disContent-hide
display: block
.pitchCss
border: 1px solid #202e78
transition: all linear 0.1s
width: 116px
height: 116px
</style>