1748 lines
58 KiB
Vue
1748 lines
58 KiB
Vue
<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>
|