2086 lines
78 KiB
Vue
2086 lines
78 KiB
Vue
<template>
|
||
<div>
|
||
<div style="padding:10px 20px 20px 20px">
|
||
<div class="title_super">
|
||
<div>{{ this.$parent.USER_ID == '' ? '新增用户' : '编辑用户' }}</div>
|
||
</div>
|
||
<el-form ref="form" :rules="rules" :model="form" label-width="140px">
|
||
<el-row :gutter="20">
|
||
<el-col :span="12">
|
||
<div class="left_super">
|
||
<el-form-item label="角色" prop="ROLE_ID">
|
||
<el-select v-model="form.ROLE_ID" multiple placeholder="请选择" class="filter-item" style="width: 100%;">
|
||
<el-option
|
||
v-for="item in roleList"
|
||
:key="item.role_ID"
|
||
:label="item.role_NAME"
|
||
:value="item.role_ID"/>
|
||
</el-select>
|
||
</el-form-item>
|
||
<!-- <el-form-item label="选择角色组" prop="ROLE_NAME">-->
|
||
<!-- <el-select v-model="form.ROLE_NAME" placeholder="请选择" class="filter-item">-->
|
||
<!-- <el-option-->
|
||
<!-- v-for="item in roleList_z"-->
|
||
<!-- :key="item.role_ID"-->
|
||
<!-- :label="item.role_NAME"-->
|
||
<!-- :value="item.role_ID"/>-->
|
||
<!-- </el-select>-->
|
||
<!-- </el-form-item>-->
|
||
<el-form-item label="部门" prop="DEPARTMENT_ID">
|
||
<SelectTree
|
||
ref="deptTree"
|
||
:clearable="false"
|
||
:options="treeData"
|
||
:props="defaultProps"
|
||
v-model="form.DEPARTMENT_ID"
|
||
style="width: 100%;"
|
||
placeholder="请选择部门"/>
|
||
</el-form-item>
|
||
<el-form-item label="岗位" prop="POST_ID">
|
||
<el-select v-model="form.POST_ID" placeholder="请选择" class="filter-item" style="width: 100%;">
|
||
<el-option v-for="item in postList" :key="item.POST_ID" :label="item.NAME" :value="item.POST_ID"/>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label="用户名" prop="USERNAME">
|
||
<el-input v-model="form.USERNAME" placeholder="默认用户手机号码..." @change="goCheck()"/>
|
||
<a style="color: red">
|
||
<span>如果修改手机号,登录密码则会变成初始密码“Aa@123456789”</span></a>
|
||
</el-form-item>
|
||
<el-form-item label="姓名" prop="NAME">
|
||
<el-input v-model="form.NAME" placeholder="这里输入姓名..."/>
|
||
</el-form-item>
|
||
<el-form-item label="人员类型" prop="PERSON_TYPE">
|
||
<div>
|
||
<el-select
|
||
v-model="form.PERSON_TYPE"
|
||
filterable
|
||
placeholder="请选择"
|
||
class="filter-item"
|
||
style="width: 100%;"
|
||
>
|
||
<el-option v-for="item in LevelsData" :key="item.NAME" :label="item.NAME" :value="item.NAME"/>
|
||
</el-select>
|
||
<el-button v-if="form.PERSON_TYPE == '主要负责人' || form.PERSON_TYPE == '安全管理人员' || form.PERSON_TYPE == '特种作业人员'" plain type="success" @click="changePersonType">补充证照信息</el-button>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item label="身份证号" prop="USER_ID_CARD">
|
||
<el-input v-model="form.USER_ID_CARD" placeholder="这里输入身份证号..." @change="goCheck()"/>
|
||
</el-form-item>
|
||
<el-row :gutter="20">
|
||
<el-col :span="12">
|
||
<el-form-item label="民族" prop="NATION">
|
||
<el-select v-model="form.NATION" placeholder="请选择" style="width: 100%;">
|
||
<el-option
|
||
v-for="item in uesrInfoDic.minzuList"
|
||
:key="item.DICTIONARIES_ID"
|
||
:label="item.NAME"
|
||
:value="item.DICTIONARIES_ID"/>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item label="性别" prop="SEX">
|
||
<el-select v-model="form.SEX" placeholder="请选择" style="width: 100%;">
|
||
<el-option
|
||
v-for="item in uesrInfoDic.xingbieList"
|
||
:key="item.DICTIONARIES_ID"
|
||
:label="item.NAME"
|
||
:value="item.DICTIONARIES_ID"/>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<!-- <el-form-item label="定位卡号" prop="CARDNO">-->
|
||
<!-- <el-input v-model="form.CARDNO" placeholder="这里输入定位卡号..."/>-->
|
||
<!-- </el-form-item>-->
|
||
<!-- <el-form-item label="门口门禁卡号" prop="MKMJCARD">-->
|
||
<!-- <el-input v-model="form.MKMJCARD" placeholder="这里输入门口门禁卡号..."/>-->
|
||
<!-- </el-form-item>-->
|
||
<el-form-item label="是否为隐患确认人" prop="IS_HAZARDCONFIRMER">
|
||
<el-radio-group v-model="form.IS_HAZARDCONFIRMER">
|
||
<el-radio :label="0" value="0">否</el-radio>
|
||
<el-radio :label="1" value="1">是</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
<el-form-item v-if="form.face_file.length > 0" label="旧人脸信息">
|
||
<div class="slideshow">
|
||
<div class="disContent">
|
||
<div v-for="(item, index) in form.face_file" :key="index" class="img-div">
|
||
<img :src="config.fileUrl + item.FILEPATH" alt="">
|
||
<div class="disContent-hide">
|
||
<el-tooltip class="item" effect="dark" content="预览" placement="top">
|
||
<span class="el-icon-zoom-in yuLan">
|
||
<viewer :images="form.face_file">
|
||
<img :src="config.fileUrl + item.FILEPATH" alt="" class="yuLanImg">
|
||
</viewer>
|
||
</span>
|
||
</el-tooltip>
|
||
<el-tooltip class="item" effect="dark" content="删除" placement="top">
|
||
<span class="Delete" @click="deleteCertificate(index)"><i class="el-icon-delete"/></span>
|
||
</el-tooltip>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item label="上传人脸照片">
|
||
<div style="display: flex;align-items: center">
|
||
<el-upload
|
||
ref="uploadUserAvatar"
|
||
:on-preview="handlePictureCardPreview"
|
||
:before-upload="beforeFileUploadByFace"
|
||
:on-change="handleChangeIMGFace"
|
||
:auto-upload="false"
|
||
:limit="1"
|
||
class="avatar-uploader"
|
||
action="#"
|
||
accept=".jpg,.jpeg,.png"
|
||
list-type="picture-card">
|
||
<i class="el-icon-plus"/>
|
||
</el-upload>
|
||
<div style="margin-left:20px;line-height:1.6">
|
||
<div style="color: red;font-size: 12px">(若新上传人脸图片将覆盖旧人脸信息,不上传则不做修改)</div>
|
||
<div style="color: red;font-size: 12px">* 图像格式:JPEG、JPG、PNG、BMP</div>
|
||
<div style="color: red;font-size: 12px">* 图像大小:不超过1M。</div>
|
||
<div style="color: red;font-size: 12px">* 图像分辨率:大于32×32像素,小于4096×4096像素,<br>人脸占比不低于64×64像素。</div>
|
||
<div style="color: red;font-size: 12px">(如无合适照片请该人员登陆曹港APP中进行人脸照片采集)</div>
|
||
</div>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item label="部门排序" prop="SORT">
|
||
<el-input v-model="form.SORT" placeholder="这里输入部门排序..." @keyup.native="number"/>
|
||
</el-form-item>
|
||
<el-form-item label="邮箱" prop="EMAIL">
|
||
<el-input v-model="form.EMAIL" placeholder="这里输入邮箱..."/>
|
||
</el-form-item>
|
||
|
||
<!--<el-form-item label="排班" prop="SHIFTDUTYONE">
|
||
<el-select
|
||
v-model="form.SHIFTDUTYONE"
|
||
placeholder="请选择"
|
||
class="filter-item"
|
||
style="margin-right:10px">
|
||
<el-option
|
||
v-for="item in shiftDutyListOne"
|
||
:key="item.SHIFTWORKRULES_ID"
|
||
:label="item.NAME"
|
||
:value="item.SHIFTWORKRULES_ID"/>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label-width="0px" prop="SHIFTDUTYTWO">
|
||
<el-select
|
||
v-model="form.SHIFTDUTYTWO"
|
||
placeholder="请选择"
|
||
class="filter-item"
|
||
style="margin-right:10px">
|
||
<el-option
|
||
v-for="item in shiftDutyListTwo"
|
||
:key="item.SHIFTWORKRULES_ID"
|
||
:label="item.NAME"
|
||
:value="item.SHIFTWORKRULES_ID"/>
|
||
</el-select>
|
||
<el-button @click="detailShowDate">当前班状</el-button>
|
||
</el-form-item>-->
|
||
<el-form-item label="排班">
|
||
<div style="display:flex;">
|
||
<el-select v-model="form.SHIFTDUTYONE" placeholder="请选择" class="filter-item" style="margin-right:10px;width: 45%;">
|
||
<el-option v-for="item in shiftDutyListOne" :key="item.SHIFTWORKRULES_ID" :label="item.NAME" :value="item.SHIFTWORKRULES_ID" />
|
||
</el-select>
|
||
<el-select v-model="form.SHIFTDUTYTWO" placeholder="请选择" class="filter-item" style="margin-right:10px;width: 45%;">
|
||
<el-option v-for="item in shiftDutyListTwo" :key="item.SHIFTWORKRULES_ID" :label="item.NAME" :value="item.SHIFTWORKRULES_ID" />
|
||
</el-select>
|
||
<el-button @click="detailShowDate">当前班状</el-button>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item v-show="periodList.length > 0" label="当前班次">
|
||
<el-radio-group v-model="selectPeriod">
|
||
<el-radio-button v-for="(item,i) in periodList" :class="item.isBr?'isBr':''" :key="i" :label="item.period">{{ item.period.WORKSTATUS=='1'?'上班':'休班' }}</el-radio-button>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
<el-form-item label="emis编码">
|
||
<el-input v-model="form.JCR" placeholder="这里输入emis编码..." />
|
||
</el-form-item>
|
||
<el-form-item label="备注">
|
||
<el-input :rows="3" v-model="form.BZ" type="textarea" placeholder="这里输入备注..."/>
|
||
</el-form-item>
|
||
<!-- <el-form-item label="在线学习人员类别" prop="LEARNERCATEGORY">-->
|
||
<!-- <div class="uo-flex">-->
|
||
<!-- <el-select id="LEARNERCATEGORY1" v-model="form.LEARNERCATEGORY" :disabled="disabledLCSelect" :style="displayLCSelect" placeholder="请选择" class="filter-item" @change="forceUpdate">-->
|
||
<!-- <el-option v-for="(item,index) in LearnerCategoryList" :key="item.DICTIONARIES_ID" :label="item.NAME" :value="item.DICTIONARIES_ID">-->
|
||
<!-- <span style="float: left">{{ item.NAME }}</span>-->
|
||
<!-- <div style="float: right;" @click.stop="removeDuties(index,'APPLICABLE_PERSONNEL')"><i class="el-icon-circle-close" /></div>-->
|
||
<!-- </el-option>-->
|
||
<!-- </el-select>-->
|
||
<!-- <el-input id="LEARNERCATEGORY2" v-model="form.LEARNERCATEGORY" :disabled="disabledLCInput" :style="displayLCInput" placeholder="这里输入新的类别名称..." />-->
|
||
<!-- <el-button @click="changeLearnerCategory">{{ form.LEARNERCATEGORYSTATUS === 'select' ? '输入' : '选择' }}</el-button>-->
|
||
<!-- </div>-->
|
||
<!-- </el-form-item>-->
|
||
<el-form-item label="是否在线学习人员">
|
||
<el-switch v-model="form.ISSTUDENT" active-color="#13ce66" inactive-color="#ff4949"/>
|
||
</el-form-item>
|
||
</div>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<div class="left_border_super">
|
||
<template v-if="form.ISSTUDENT">
|
||
<el-row :gutter="20">
|
||
<el-col :span="12">
|
||
<el-form-item label="政治面貌" prop="POLITICAL_OUTLOOK">
|
||
<el-select v-model="form.POLITICAL_OUTLOOK" placeholder="请选择" style="width: 100%;">
|
||
<el-option
|
||
v-for="item in uesrInfoDic.zhengzhimianmaoList"
|
||
:key="item.DICTIONARIES_ID"
|
||
:label="item.NAME"
|
||
:value="item.DICTIONARIES_ID"/>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
<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"
|
||
style="width: 100%;"/>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row :gutter="20">
|
||
<el-col :span="12">
|
||
<el-form-item label="文化程度" prop="DEGREE_OF_EDUCATION">
|
||
<el-select v-model="form.DEGREE_OF_EDUCATION" placeholder="请选择" style="width: 100%;">
|
||
<el-option
|
||
v-for="item in uesrInfoDic.wenhuachengduList"
|
||
:key="item.DICTIONARIES_ID"
|
||
:label="item.NAME"
|
||
:value="item.DICTIONARIES_ID"/>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item label="在职情况" prop="INCUMBENCY">
|
||
<el-select v-model="form.INCUMBENCY" placeholder="请选择" style="width: 100%;">
|
||
<el-option
|
||
v-for="item in uesrInfoDic.zaizhiqingkuangList"
|
||
:key="item.DICTIONARIES_ID"
|
||
:label="item.NAME"
|
||
:value="item.DICTIONARIES_ID"/>
|
||
</el-select>
|
||
</el-form-item>
|
||
</el-col>
|
||
<!-- <el-col :span="12">-->
|
||
<!-- <el-form-item label="人员类型" prop="PERSONNEL_TYPE">-->
|
||
<!-- <el-select v-model="form.PERSONNEL_TYPE" placeholder="请选择">-->
|
||
<!-- <el-option-->
|
||
<!-- v-for="item in uesrInfoDic.renyuanleixingList"-->
|
||
<!-- :key="item.DICTIONARIES_ID"-->
|
||
<!-- :label="item.NAME"-->
|
||
<!-- :value="item.DICTIONARIES_ID"/>-->
|
||
<!-- </el-select>-->
|
||
<!-- </el-form-item>-->
|
||
<!-- </el-col>-->
|
||
</el-row>
|
||
|
||
<el-row :gutter="20">
|
||
<el-col :span="12">
|
||
<el-form-item label="职务" prop="DUTIES">
|
||
<div class="uo-flex">
|
||
<el-select
|
||
v-if="form.letDutiesType =='select'"
|
||
id="leaPostSel"
|
||
v-model="form.DUTIES"
|
||
placeholder="请选择"
|
||
class="filter-item"
|
||
@change="forceUpdate">
|
||
<el-option
|
||
v-for="(item,index) in uesrInfoDic.zhiwuList"
|
||
:key="item.DICTIONARIES_ID"
|
||
:label="item.NAME"
|
||
:value="item.DICTIONARIES_ID">
|
||
<span style="float: left">{{ item.NAME }}</span>
|
||
<div style="float: right;" @click.stop="removeDuties(index,'POSITION')"><i
|
||
class="el-icon-circle-close"/></div>
|
||
</el-option>
|
||
</el-select>
|
||
<el-input
|
||
v-if="form.letDutiesType =='value'"
|
||
id="leaPostVal"
|
||
:disabled="form.letDutiesType =='select'"
|
||
v-model="form.DUTIESValue"
|
||
placeholder="这里输入新的职务名称..."/>
|
||
<el-button
|
||
class="ml5"
|
||
@click="form.letDutiesType = (form.letDutiesType =='select') ? 'value' : 'select'">
|
||
{{ form.letDutiesType === 'select' ? '输入' : '选择' }}
|
||
</el-button>
|
||
</div>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item label="职称" prop="TITLE">
|
||
<div class="uo-flex">
|
||
<el-select
|
||
v-if="form.letTitleType =='select'"
|
||
id="letTitleSel"
|
||
v-model="form.TITLE"
|
||
placeholder="请选择"
|
||
class="filter-item"
|
||
@change="forceUpdate">
|
||
<el-option
|
||
v-for="(item,index) in uesrInfoDic.zhichengList"
|
||
:key="item.DICTIONARIES_ID"
|
||
:label="item.NAME"
|
||
:value="item.DICTIONARIES_ID">
|
||
<span style="float: left">{{ item.NAME }}</span>
|
||
<div style="float: right;" @click.stop="removeDuties(index,'JOB_TITLE')"><i
|
||
class="el-icon-circle-close"/></div>
|
||
</el-option>
|
||
</el-select>
|
||
<el-input
|
||
v-show="form.letTitleType =='value'"
|
||
id="letTitleVal"
|
||
v-model="form.letTitleValue"
|
||
placeholder="这里输入新的职称名称..."/>
|
||
<el-button
|
||
class="ml5"
|
||
@click="form.letTitleType = (form.letTitleType =='select') ? 'value' : 'select'">
|
||
{{ form.letTitleType === 'select' ? '输入' : '选择' }}
|
||
</el-button>
|
||
</div>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row :gutter="20">
|
||
<el-col :span="12">
|
||
<el-form-item label="工种" prop="TYPE_OF_WORK">
|
||
<div class="uo-flex">
|
||
<el-select
|
||
v-if="form.letTypeOfWorkType =='select'"
|
||
id="letTypeOfWorkSel"
|
||
v-model="form.TYPE_OF_WORK"
|
||
placeholder="请选择"
|
||
class="filter-item"
|
||
@change="forceUpdate">
|
||
<el-option
|
||
v-for="(item,index) in uesrInfoDic.gongzhongList"
|
||
:key="item.DICTIONARIES_ID"
|
||
:label="item.NAME"
|
||
:value="item.DICTIONARIES_ID">
|
||
<span style="float: left">{{ item.NAME }}</span>
|
||
<div style="float: right;" @click.stop="removeDuties(index,'WORK_TYPE')"><i
|
||
class="el-icon-circle-close"/></div>
|
||
</el-option>
|
||
</el-select>
|
||
<el-input
|
||
v-show="form.letTypeOfWorkType =='value'"
|
||
id="letTypeOfWorkVal"
|
||
v-model="form.letTypeOfWorkValue"
|
||
placeholder="这里输入新的工种名称..."/>
|
||
<el-button
|
||
class="ml5"
|
||
@click="form.letTypeOfWorkType = (form.letTypeOfWorkType =='select') ? 'value' : 'select'">
|
||
{{ form.letTypeOfWorkType === 'select' ? '输入' : '选择' }}
|
||
</el-button>
|
||
</div>
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="12">
|
||
<el-form-item label="入职日期" prop="ENTRY_DATE">
|
||
<el-date-picker
|
||
v-model="form.ENTRY_DATE"
|
||
type="date"
|
||
placeholder="选择日期"
|
||
value-format="yyyy-MM-dd"
|
||
format="yyyy-MM-dd"
|
||
style="width: 100%;"/>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row :gutter="20">
|
||
<el-col :span="12">
|
||
<el-form-item label="参加工作日期" prop="WORKING_DATE">
|
||
<el-date-picker
|
||
v-model="form.WORKING_DATE"
|
||
type="date"
|
||
placeholder="选择日期"
|
||
value-format="yyyy-MM-dd"
|
||
format="yyyy-MM-dd"
|
||
style="width: 100%;"/>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-form-item v-if="form.userCerList.length > 0" label="已上传证书">
|
||
<div class="slideshow">
|
||
<div class="disContent">
|
||
<div v-for="(item, index) in form.userCerList" :key="index" class="img-div">
|
||
<img :src="config.fileUrl + item.FILEPATH" alt="">
|
||
<div class="disContent-hide">
|
||
<el-tooltip class="item" effect="dark" content="预览" placement="top">
|
||
<span class="el-icon-zoom-in yuLan">
|
||
<viewer :images="form.userCerLis">
|
||
<img :src="config.fileUrl + item.FILEPATH" alt="" class="yuLanImg">
|
||
</viewer>
|
||
</span>
|
||
</el-tooltip>
|
||
<el-tooltip class="item" effect="dark" content="删除" placement="top">
|
||
<span class="Delete" @click="deleteCertificate(index)"><i class="el-icon-delete"/></span>
|
||
</el-tooltip>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item label="证书信息" prop="CERTIFICATE_INFORMATION">
|
||
<!-- <el-input id="CERTIFICATE_INFORMATION" ref="CERTIFICATE_INFORMATION" v-model="form.CERTIFICATE_INFORMATION" maxlength="255" placeholder="这里输入证书信息..." title="证书信息"/>-->
|
||
<el-upload
|
||
ref="upload"
|
||
:on-preview="handlePictureCardPreview"
|
||
:before-upload="beforeFileUploadByZhengshu"
|
||
:on-change="handleChangeIMGZhengshu"
|
||
:auto-upload="false"
|
||
class="avatar-uploader"
|
||
action="#"
|
||
accept=".jpg,.jpeg,.png"
|
||
list-type="picture-card">
|
||
<i class="el-icon-plus"/>
|
||
</el-upload>
|
||
<span style="color: red;font-size: 12px">
|
||
* 图像格式:JPG、JPEG、PNG。
|
||
</span>
|
||
<el-dialog :visible.sync="dialogVisible">
|
||
<img :src="dialogImageUrl" width="100%" alt="">
|
||
</el-dialog>
|
||
</el-form-item>
|
||
</template>
|
||
</div>
|
||
</el-col>
|
||
</el-row>
|
||
|
||
</el-form>
|
||
</div>
|
||
<div class="ui-height"/>
|
||
<div class="ui-foot">
|
||
<el-button v-show="ISCHECK" type="success" @click="confirm">保 存</el-button>
|
||
<el-button v-show="!ISCHECK" type="success" @click="goCheck">校 验</el-button>
|
||
<el-button plain type="info" @click="goBack">返 回</el-button>
|
||
</div>
|
||
<el-dialog :visible.sync="dialogFormLicenseInformation" title="证照信息" width="600px">
|
||
<template>
|
||
<div class="app-container">
|
||
<el-form ref="form" :model="form" label-width="110px" class="in-uploader">
|
||
<el-form-item label="姓名" prop="INFOR_NAME">
|
||
<el-input :row="3" v-model="form.INFOR_NAME" placeholder="这里输入姓名..."/>
|
||
</el-form-item>
|
||
<el-form-item label="性别" style="display: flex;align-items: center">
|
||
<el-radio-group v-model="form.INFORSEX" style="margin-left: -110px;">
|
||
<el-radio :label="0" value="0">男</el-radio>
|
||
<el-radio :label="1" value="1">女</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
<el-form-item label="职务" prop="TITLE">
|
||
<div class="uo-flex">
|
||
<el-select
|
||
v-if="form.inforpostType =='select'"
|
||
id="inforpostSel"
|
||
v-model="form.INFORPOST"
|
||
placeholder="请选择"
|
||
class="filter-item"
|
||
@change="forceUpdate">
|
||
<el-option
|
||
v-for="(item,index) in uesrInfoDic.zhiwuList"
|
||
:key="item.DICTIONARIES_ID"
|
||
:label="item.NAME"
|
||
:value="item.DICTIONARIES_ID">
|
||
<span style="float: left">{{ item.NAME }}</span>
|
||
<div style="float: right;" @click.stop="removeDuties(index,'JOB_TITLE')"><i
|
||
class="el-icon-circle-close"/></div>
|
||
</el-option>
|
||
</el-select>
|
||
<el-input
|
||
v-show="form.inforpostType =='value'"
|
||
id="inforpostVal"
|
||
v-model="form.INFORPOSTValue"
|
||
placeholder="这里输入新的职务名称..."/>
|
||
<el-button
|
||
class="ml5"
|
||
@click="form.inforpostType = (form.inforpostType =='select') ? 'value' : 'select'">
|
||
{{ form.inforpostType === 'select' ? '输入' : '选择' }}
|
||
</el-button>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item label="职称" prop="INFORTITLE">
|
||
<div class="uo-flex">
|
||
<el-select
|
||
v-if="form.infortitleType =='select'"
|
||
id="infortitleSel"
|
||
v-model="form.INFORTITLE"
|
||
placeholder="请选择"
|
||
class="filter-item"
|
||
@change="forceUpdate">
|
||
<el-option
|
||
v-for="(item,index) in uesrInfoDic.zhichengList"
|
||
:key="item.DICTIONARIES_ID"
|
||
:label="item.NAME"
|
||
:value="item.DICTIONARIES_ID">
|
||
<span style="float: left">{{ item.NAME }}</span>
|
||
<div style="float: right;" @click.stop="removeDuties(index,'JOB_TITLE')"><i
|
||
class="el-icon-circle-close"/></div>
|
||
</el-option>
|
||
</el-select>
|
||
<el-input
|
||
v-show="form.infortitleType =='value'"
|
||
id="infortitleVal"
|
||
v-model="form.INFORTITLEValue"
|
||
placeholder="这里输入新的职称名称..."/>
|
||
<el-button
|
||
class="ml5"
|
||
@click="form.infortitleType = (form.infortitleType =='select') ? 'value' : 'select'">
|
||
{{ form.infortitleType === 'select' ? '输入' : '选择' }}
|
||
</el-button>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item label="工作" prop="INFORWORK">
|
||
<div class="uo-flex">
|
||
<el-select
|
||
v-if="form.inforworkType =='select'"
|
||
id="infortitleSel"
|
||
v-model="form.INFORWORK"
|
||
placeholder="请选择"
|
||
class="filter-item"
|
||
@change="forceUpdate">
|
||
<el-option
|
||
v-for="(item,index) in uesrInfoDic.zhichengList"
|
||
:key="item.DICTIONARIES_ID"
|
||
:label="item.NAME"
|
||
:value="item.DICTIONARIES_ID">
|
||
<span style="float: left">{{ item.NAME }}</span>
|
||
<div style="float: right;" @click.stop="removeDuties(index,'JOB_TITLE')"><i
|
||
class="el-icon-circle-close"/></div>
|
||
</el-option>
|
||
</el-select>
|
||
<el-input
|
||
v-show="form.inforworkType =='value'"
|
||
id="inforworkVal"
|
||
v-model="form.INFORWORKValue"
|
||
placeholder="这里输入新的工作名称..."/>
|
||
<el-button
|
||
class="ml5"
|
||
@click="form.inforworkType = (form.inforworkType =='select') ? 'value' : 'select'">
|
||
{{ form.inforworkType === 'select' ? '输入' : '选择' }}
|
||
</el-button>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item label="资格证书名称" prop="CERTIFICATENAME">
|
||
<el-select v-model="form.CERTIFICATENAME" filterable placeholder="请选择" class="filter-item">
|
||
<el-option
|
||
v-for="item in certificatenamearr"
|
||
:key="item.value"
|
||
:label="item.value"
|
||
:value="item.value"/>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item label="证书编号" prop="CERTIFICATENO">
|
||
<el-input
|
||
v-model="form.CERTIFICATENO"
|
||
placeholder="请输入证书编号..."
|
||
/>
|
||
</el-form-item>
|
||
<!--<el-form-item label="已上传证书">
|
||
<div class="slideshow">
|
||
<div class="disContent">
|
||
<div v-for="(item, index) in hImgs" :key="index" class="img-div">
|
||
<img :src="config.fileUrl + item.FILEPATH" alt="">
|
||
<div class="disContent-hide">
|
||
<el-tooltip class="item" effect="dark" content="预览" placement="top">
|
||
<span class="el-icon-zoom-in yuLan">
|
||
<viewer :images="hImgs">
|
||
<img :src="config.fileUrl + item.FILEPATH" alt="" class="yuLanImg">
|
||
</viewer>
|
||
</span>
|
||
</el-tooltip>
|
||
<el-tooltip class="item" effect="dark" content="删除" placement="top">
|
||
<span class="Delete" @click="deleteCertificate(index)"><i class="el-icon-delete" /></span>
|
||
</el-tooltip>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item label="证书图片">
|
||
<el-upload ref="upload" :on-preview="handlePictureCardPreview" :before-upload="beforeFileUpload" :auto-upload="false" class="avatar-uploader" action="#" accept=".jpg,.jpeg,.png" list-type="picture-card">
|
||
<i class="el-icon-plus" />
|
||
</el-upload>
|
||
<el-dialog :visible.sync="dialogVisible">
|
||
<img :src="dialogImageUrl" width="100%" alt="">
|
||
</el-dialog>
|
||
</el-form-item>-->
|
||
<el-form-item label="有效期" prop="TERMOFVALIDITY">
|
||
<div class="block">
|
||
<el-date-picker
|
||
v-model="form.TERMOFVALIDITY"
|
||
type="datetime"
|
||
placeholder="选择日期时间"
|
||
format="yyyy-MM-dd"
|
||
value-format="yyyy-MM-dd"
|
||
/>
|
||
</div>
|
||
</el-form-item>
|
||
</el-form>
|
||
</div>
|
||
</template>
|
||
<div slot="footer" class="dialog-footer">
|
||
<el-button @click="dialogFormLicenseInformation = false">取 消</el-button>
|
||
<el-button type="primary" @click="goConfirm">确 定</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
<el-dialog :visible.sync="SchedulingFrom" title="排班信息" width="600px">
|
||
<template>
|
||
<div class="app-container">
|
||
<el-form ref="form" :model="form" label-width="110px" class="in-uploader">
|
||
<el-form-item label="排班">
|
||
<div style="display:flex;">
|
||
<el-select v-model="form.SHIFTDUTYONE" placeholder="请选择" class="filter-item" style="margin-right:10px">
|
||
<el-option
|
||
v-for="item in shiftDutyListOne"
|
||
:key="item.SHIFTWORKRULES_ID"
|
||
:label="item.NAME"
|
||
:value="item.SHIFTWORKRULES_ID"/>
|
||
</el-select>
|
||
<el-select v-model="form.SHIFTDUTYTWO" placeholder="请选择" class="filter-item" style="margin-right:10px">
|
||
<el-option
|
||
v-for="item in shiftDutyListTwo"
|
||
:key="item.SHIFTWORKRULES_ID"
|
||
:label="item.NAME"
|
||
:value="item.SHIFTWORKRULES_ID"/>
|
||
</el-select>
|
||
<el-button @click="detailShowDate">当前班状</el-button>
|
||
</div>
|
||
</el-form-item>
|
||
<el-form-item v-show="periodList.length > 0" label="当前班次">
|
||
<el-radio-group v-model="selectPeriod">
|
||
<el-radio-button
|
||
v-for="(item,i) in periodList"
|
||
:class="item.isBr?'isBr':''"
|
||
:key="i"
|
||
:label="item.period">{{ item.period.WORKSTATUS == '1' ? '上班' : '休班' }}
|
||
</el-radio-button>
|
||
<!-- <el-radio-button label="1">{{ selectPeriod }}</el-radio-button> -->
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
</el-form>
|
||
</div>
|
||
</template>
|
||
<div slot="footer" class="dialog-footer">
|
||
<el-button @click="SchedulingFrom = false">取 消</el-button>
|
||
<el-button type="primary" @click="goScheduling(USER_ID)">确 定</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
<el-dialog v-if="dialogFormEditDate" :visible.sync="dialogFormEditDate" title="日历" width="500px">
|
||
<el-calendar id="calendar">
|
||
<template
|
||
slot="dateCell"
|
||
slot-scope="{data}">
|
||
<div class="date-cell">
|
||
<div class="calendar-day" style="line-height: 15px">
|
||
<span>{{ data.day.split('-').slice(2).join() }}</span>
|
||
<br>
|
||
<span v-for="(i, index) in workDateList" :key="index">
|
||
<template v-if="i.DATE==data.day">
|
||
<span v-if="i.STATE == 1" style="color:blue">上班</span>
|
||
<span v-else-if="i.STATE == 2" style="color:red">休班</span>
|
||
</template>
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
</el-calendar>
|
||
<div slot="footer" class="dialog-footer">
|
||
<el-button @click="dialogFormEditDate = false">取 消</el-button>
|
||
</div>
|
||
</el-dialog>
|
||
</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 hasUser = (rule, value, callback) => {
|
||
requestFN(
|
||
'/user/hasUser',
|
||
{
|
||
USERNAME: value,
|
||
VERIFYUSER_ID: this.form.USER_ID
|
||
}
|
||
).then((data) => {
|
||
if (data.result == 'success') {
|
||
callback()
|
||
} else {
|
||
callback(new Error('用户名重复'))
|
||
}
|
||
}).catch((e) => {
|
||
callback()
|
||
})
|
||
}
|
||
var hasEmail = (rule, value, callback) => {
|
||
if (value) {
|
||
requestFN(
|
||
'/user/hasEmail',
|
||
{
|
||
EMAIL: value,
|
||
USERNAME: this.form.USERNAME
|
||
}
|
||
).then((data) => {
|
||
if (data.result == 'success') {
|
||
callback()
|
||
} else {
|
||
callback(new Error('邮箱重复'))
|
||
}
|
||
}).catch((e) => {
|
||
|
||
})
|
||
} else {
|
||
callback()
|
||
}
|
||
}
|
||
return {
|
||
ISCHECK: false,
|
||
dayTime: [],
|
||
LevelsData: [],
|
||
dialogFormEditDate: false,
|
||
dialogFormLicenseInformation: false,
|
||
listLoading: true,
|
||
treeLoading: false,
|
||
add: false,
|
||
del: false,
|
||
edit: false,
|
||
KEYWORDS: '',
|
||
SHIFTDUTYONE: '',
|
||
SHIFTDUTYTWO: '',
|
||
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: '特种作业人员证' }
|
||
],
|
||
rules: {
|
||
NAME: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
|
||
USERNAME: [
|
||
{ 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: '请输入正确的手机号码'
|
||
},
|
||
{ validator: hasUser, trigger: 'blur' }
|
||
],
|
||
EMAIL: [
|
||
{ required: true, message: '请输入邮箱', trigger: 'blur' },
|
||
{
|
||
pattern: /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/,
|
||
message: '请输入正确的邮箱'
|
||
},
|
||
{ validator: hasEmail, trigger: 'blur' }
|
||
],
|
||
PERSON_TYPE: [{ required: true, message: '请选择人员类型', trigger: 'change' }],
|
||
ROLE_NAME: [{ required: true, message: '请选择角色组', trigger: 'change' }],
|
||
ROLE_ID: [{ required: true, message: '请选择角色', trigger: 'change' }],
|
||
DEPARTMENT_ID: [{ required: true, message: '请选择部门', trigger: 'change' }],
|
||
DUTIES_ID: [{ required: true, message: '请选择岗位', trigger: 'change' }],
|
||
SORT: [{ required: true, message: '请输入排序', trigger: 'blur' }],
|
||
NATION: [{ required: true, message: '民族不能为空', trigger: 'blur' }],
|
||
SEX: [{ required: true, message: '性别不能为空', trigger: 'blur' }],
|
||
POLITICAL_OUTLOOK: [{ required: true, message: '政治面貌不能为空', trigger: 'blur' }],
|
||
DATE_OF_BIRTH: [{ required: true, message: '请选择出生年月', trigger: 'blur' }],
|
||
DEGREE_OF_EDUCATION: [{ required: true, message: '文化程度不能为空', trigger: 'blur' }],
|
||
IS_HAZARDCONFIRMER: [{ required: true, message: '隐患确认人不为必选', trigger: 'blur' }],
|
||
SHIFTDUTYONE: [{ required: true, message: '排班为必选', trigger: 'blur' }],
|
||
SHIFTDUTYTWO: [{ required: true, message: '排班字节点必选', trigger: 'blur' }],
|
||
POST: [{ required: true, message: '职务不能为空', trigger: 'blur' }],
|
||
TYPE_OF_WORK: [{ required: true, message: '工种不能为空', trigger: 'blur' }],
|
||
ENTRY_DATE: [{ required: true, message: '请选择入职日期', trigger: 'blur' }],
|
||
WORKING_DATE: [{ required: true, message: '请选择参加工作日期', trigger: 'blur' }],
|
||
INCUMBENCY: [{ required: true, message: '在职情况不能为空', trigger: 'blur' }],
|
||
TITLE: [{ required: true, message: '职称不能为空', trigger: 'blur' }],
|
||
DUTIES: [{ required: true, message: '职务不能为空', trigger: 'blur' }],
|
||
// /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[0-2])(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$/
|
||
USER_ID_CARD: [{ required: true, message: '身份证号不能为空', trigger: 'blur' },
|
||
{
|
||
pattern: /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[0-2])(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$/,
|
||
message: '请输入正确的身份证号'
|
||
}
|
||
]
|
||
},
|
||
defaultProps: {
|
||
value: 'id',
|
||
children: 'nodes',
|
||
label: 'name'
|
||
},
|
||
treeData: [],
|
||
form: {
|
||
IS_HAZARDCONFIRMER: 0,
|
||
INFORPOST: '',
|
||
CARDNO: '',
|
||
MKMJCARD: '',
|
||
INFORTITLE: '',
|
||
INFORTITLEValue: '',
|
||
infortitleType: 'select',
|
||
INFORWORK: '',
|
||
INFORWORKValue: '',
|
||
inforworkType: 'select',
|
||
USER_ID: '',
|
||
ROLE_ID: [],
|
||
ROLE_NAME: [],
|
||
DEPARTMENT_ID: '',
|
||
POST_ID: '',
|
||
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: '', // 民族
|
||
SEX: '', // 性别
|
||
POLITICAL_OUTLOOK: '', // 政治面貌
|
||
DATE_OF_BIRTH: '', // 出生年月
|
||
DEGREE_OF_EDUCATION: '', // 文化程度
|
||
POST: '', // 职务
|
||
TYPE_OF_WORK: '', // 工种
|
||
ENTRY_DATE: '', // 入职日期
|
||
WORKING_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: [],
|
||
face_file: [],
|
||
CORPINFO_NAME: ''
|
||
},
|
||
IMGFILES_ID: '',
|
||
uesrInfoDic: {
|
||
minzuList: [], // 民族 0a0e406f27f74ee698fe9979d25f62dd
|
||
zhengzhimianmaoList: [], // 政治面貌 6351efdd12dc4730952e5d195718e252
|
||
wenhuachengduList: [], // 文化程度 d7d80f08d73a4accbccf4fd3d8d1d867
|
||
renyuanleixingList: [], // 人员类型 0b62f92b0b624aab8e89a77304a64d5e
|
||
zhiwuList: [], // 职务 下拉菜单选择已输入过的职务 09e36ac01e9540f8bc84eab1c1a78754
|
||
gongzhongList: [], // 工种 下拉菜单选择已输入过的职务 55484e491a5e442d839c4595380713ec
|
||
zaizhiqingkuangList: [], // 在职情况 548764b5d4bf4bd7a18ef88274ef49e4
|
||
xingbieList: [], // 性别情况 21501808bbc344d593fbf9ccfe6c4531
|
||
zhichengList: []// 职称 945a6b10e59946078b500f0fbafa8679
|
||
},
|
||
certificate_files: [],
|
||
config: config,
|
||
dialogImageUrl: [],
|
||
dialogVisible: false,
|
||
SchedulingFrom: false,
|
||
roleList: [],
|
||
roleList1: [],
|
||
roleList_z: [],
|
||
role1List: [],
|
||
postList: [],
|
||
oldPostId: '', // 原岗位ID(用于判断岗位是否变化)
|
||
oldDepartId: '', // 原部门ID(用于判断部门是否变化)
|
||
dialogFormDaoru: false,
|
||
daoruFrom: {
|
||
FFILE: '',
|
||
FFILEName: ''
|
||
},
|
||
PARENTID: '0',
|
||
shiftDutyListOne: [],
|
||
shiftDutyListTwo: [],
|
||
queryShiftOneList: [],
|
||
queryShiftTwoList: [],
|
||
datePage: 0,
|
||
workDateList: [],
|
||
USER_ID: ''
|
||
}
|
||
},
|
||
watch: {
|
||
'form.SHIFTDUTYONE': {
|
||
handler(newVal, oldVal) {
|
||
if (this.dialogType == 'saveUser' || (oldVal != null && oldVal != '')) { // 编辑初始化时,不监听
|
||
this.form.SHIFTDUTYTWO = ''
|
||
this.selectPeriod = []
|
||
}
|
||
this.getShiftWorkTwo(this.form.SHIFTDUTYONE)
|
||
},
|
||
immediate: false
|
||
},
|
||
'form.SHIFTDUTYTWO': {
|
||
handler(newVal, oldVal) {
|
||
if (this.dialogType == 'saveUser' || (oldVal != null && oldVal != '')) { // 编辑初始化时,不监听
|
||
this.selectPeriod = []
|
||
}
|
||
this.listPeriods(this.form.SHIFTDUTYTWO)
|
||
},
|
||
immediate: false
|
||
},
|
||
'form.DEPARTMENT_ID': {
|
||
handler(newVal, oldVal) {
|
||
if (this.dialogType == 'saveUser' || (oldVal != null && oldVal != '')) { // 编辑初始化时,不监听
|
||
this.form.POST_ID = ''
|
||
this.getPostList()
|
||
}
|
||
},
|
||
immediate: false
|
||
},
|
||
'form.ISSTUDENT': {
|
||
handler() {
|
||
if (this.form.ISSTUDENT) {
|
||
this.ISSTUDENTCK()
|
||
}
|
||
},
|
||
immediate: false
|
||
},
|
||
'dialogFormLicenseInformation': {
|
||
handler(newValue) {
|
||
if (newValue) this.ISSTUDENTCK()
|
||
},
|
||
immediate: false
|
||
},
|
||
'form.DUTIESValue': {
|
||
handler() {
|
||
console.info('DUTIES被DUTIESValue赋值了')
|
||
this.form.DUTIES = this.form.DUTIESValue
|
||
}
|
||
},
|
||
'form.letTitleValue': {
|
||
handler() {
|
||
this.form.TITLE = this.form.letTitleValue
|
||
}
|
||
},
|
||
'form.letTypeOfWorkValue': {
|
||
handler() {
|
||
this.form.TYPE_OF_WORK = this.form.letTypeOfWorkValue
|
||
}
|
||
}
|
||
},
|
||
created() {
|
||
this.getRole1List()
|
||
this.getRoleList()
|
||
this.hasButton()
|
||
this.getTreeList()
|
||
this.getShiftWorkOne()
|
||
this.getPersonnelType()
|
||
this.getScheduleAll()
|
||
this.getDict()
|
||
// this.getLearnerCategory() // 学员类型已取消
|
||
if (this.$parent.IMGFILES_ID != '') {
|
||
this.IMGFILES_ID = this.$parent.IMGFILES_ID
|
||
}
|
||
if (this.$parent.USER_ID == '') {
|
||
this.handleAdd()
|
||
} else {
|
||
this.handleEdit(this.$parent.USER_ID)
|
||
}
|
||
},
|
||
methods: {
|
||
goCheck() {
|
||
if (this.form.USER_ID_CARD && 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.USER_ID_CARD)
|
||
if (phoneResult && cardResult) {
|
||
console.log('格式校验通过')
|
||
requestFN(
|
||
'user/goCheck',
|
||
{
|
||
CARD_NO: this.form.USER_ID_CARD,
|
||
USER_ID: this.form.USER_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
|
||
}
|
||
},
|
||
getScheduleAll() {
|
||
requestFN(
|
||
'schedule/getData',
|
||
{
|
||
tm: new Date().getTime()
|
||
}
|
||
).then((data) => {
|
||
if (data.result == 'success') {
|
||
for (var i = 0; i < data.varList.length; i++) {
|
||
this.dayTime.push(data.varList[i].date)
|
||
}
|
||
} else if (data.result == 'exception') {
|
||
// showException('系统首页', '数据异常')// 显示异常
|
||
}
|
||
}).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
|
||
},
|
||
goScheduling(USER_ID) {
|
||
this.$refs.form.validate(valid => {
|
||
if (this.form.SHIFTDUTYONE) {
|
||
// var
|
||
console.info(this.selectPeriod)
|
||
if (!this.form.SHIFTDUTYTWO || this.selectPeriod.DURATION == undefined) {
|
||
this.$message({
|
||
message: '请选择完整的排班类型',
|
||
type: 'error'
|
||
})
|
||
return false
|
||
}
|
||
}
|
||
this.SchedulingFrom = false
|
||
this.listLoading = true
|
||
this.form.USER_ID = USER_ID
|
||
requestFN(
|
||
'/user/editUserScheduling',
|
||
this.form
|
||
).then((data) => {
|
||
this.listLoading = false
|
||
this.dialogFormEdit = false
|
||
this.varList = []
|
||
this.listQuery.page = 1
|
||
this.getList()
|
||
}).catch((e) => {
|
||
this.listLoading = false
|
||
})
|
||
})
|
||
},
|
||
showDate(SHIFTDUTYTWO) {
|
||
this.datePage = 0
|
||
this.dialogFormEditDate = true
|
||
this.getWorkDate(SHIFTDUTYTWO)
|
||
this.$nextTick(() => {
|
||
// 点击前一个月
|
||
const prevBtn = document.querySelector(
|
||
'.el-calendar__button-group .el-button-group>button:nth-child(1)'
|
||
)
|
||
prevBtn.addEventListener('click', e => {
|
||
this.datePage--
|
||
this.getWorkDate(SHIFTDUTYTWO)
|
||
})
|
||
// 点击今天
|
||
const todayBtn = document.querySelector(
|
||
'.el-calendar__button-group .el-button-group>button:nth-child(2)'
|
||
)
|
||
todayBtn.addEventListener('click', () => {
|
||
this.datePage = 0
|
||
this.getWorkDate(SHIFTDUTYTWO)
|
||
})
|
||
// 点击下一个月
|
||
const nextBtn = document.querySelector(
|
||
'.el-calendar__button-group .el-button-group>button:nth-child(3)'
|
||
)
|
||
nextBtn.addEventListener('click', e => {
|
||
this.datePage++
|
||
this.getWorkDate(SHIFTDUTYTWO)
|
||
})
|
||
|
||
// 点击上个月日期
|
||
var prevDay = document.querySelectorAll(
|
||
'.el-calendar-table__row .prev'
|
||
)
|
||
for (var i = 0; i < prevDay.length; i++) {
|
||
prevDay[i].addEventListener('click', e => {
|
||
this.datePage--
|
||
this.getWorkDate(SHIFTDUTYTWO)
|
||
})
|
||
}
|
||
// 点击下个月日期
|
||
var nextDay = document.querySelectorAll(
|
||
'.el-calendar-table__row .next'
|
||
)
|
||
// eslint-disable-next-line no-redeclare
|
||
for (var i = 0; i < nextDay.length; i++) {
|
||
nextDay[i].addEventListener('click', e => {
|
||
this.datePage++
|
||
this.getWorkDate(SHIFTDUTYTWO)
|
||
})
|
||
}
|
||
})
|
||
},
|
||
|
||
pageShowDate(item, USER_ID, SHIFTDUTYTWO) {
|
||
this.USER_ID = item.USER_ID
|
||
this.selectPeriod = {
|
||
'DURATION': item.DURATION,
|
||
'WORKSTATUS': item.WORKSTATUS,
|
||
'WORKPERIOD': item.WORKPERIOD
|
||
}
|
||
this.showDate(item.SHIFTDUTYTWO)
|
||
},
|
||
detailShowDate() {
|
||
this.showDate(this.form.SHIFTDUTYTWO)
|
||
},
|
||
goBack() {
|
||
this.$parent.activeName = 'List'
|
||
},
|
||
getTreeList() {
|
||
this.treeLoading = true
|
||
requestFN(
|
||
'/department/listTree',
|
||
{}
|
||
).then((data) => {
|
||
this.treeLoading = false
|
||
this.treeData = JSON.parse(data.zTreeNodes)
|
||
}).catch((e) => {
|
||
this.treeLoading = false
|
||
})
|
||
},
|
||
getWorkDate(SHIFTWORKRULES_ID) {
|
||
requestFN(
|
||
'/shiftworkperiod/getWorkDate',
|
||
{
|
||
MONTHS: this.datePage,
|
||
SHIFTWORKRULES_ID: SHIFTWORKRULES_ID,
|
||
WORKSTATUS: this.selectPeriod.WORKSTATUS,
|
||
DURATION: this.selectPeriod.DURATION,
|
||
WORKPERIOD: this.selectPeriod.WORKPERIOD
|
||
}
|
||
).then((data) => {
|
||
this.workDateList = data.varList
|
||
}).catch((e) => {
|
||
})
|
||
},
|
||
listPeriods(SHIFTWORKRULES_ID) {
|
||
this.periodList = []
|
||
if (SHIFTWORKRULES_ID) {
|
||
requestFN(
|
||
'/shiftworkperiod/listPeriods',
|
||
{
|
||
SHIFTWORKRULES_ID: SHIFTWORKRULES_ID
|
||
}
|
||
).then((data) => {
|
||
this.periodList = data.varList
|
||
if (this.periodList.length == 1) {
|
||
this.selectPeriod = {
|
||
'DURATION': '1',
|
||
'WORKSTATUS': '1',
|
||
'WORKPERIOD': '1'
|
||
}
|
||
}
|
||
}).catch((e) => {
|
||
})
|
||
}
|
||
},
|
||
getRoleList() {
|
||
requestFN(
|
||
'/user/goAddUser',
|
||
{}
|
||
).then((data) => {
|
||
this.roleList = data.roleList
|
||
this.roleList1 = data.roleList1
|
||
for (var i = 0; i < this.roleList1.length; i++) { // 循环,向数组里添加新元素
|
||
this.roleList.push(this.roleList1[i])
|
||
}
|
||
console.log(this.roleList, '角色列表')
|
||
}).catch((e) => {
|
||
})
|
||
},
|
||
getPostList() {
|
||
if (this.form.DEPARTMENT_ID != null && this.form.DEPARTMENT_ID != '') {
|
||
requestFN(
|
||
'/post/listAll',
|
||
{ DEPARTMENT_ID: this.form.DEPARTMENT_ID }
|
||
).then((data) => {
|
||
this.postList = data.postList
|
||
}).catch((e) => {
|
||
})
|
||
}
|
||
},
|
||
getRole1List(ROLE_ID) {
|
||
this.ROLE_ID = ROLE_ID
|
||
requestFN(
|
||
'/user/list1',
|
||
{
|
||
ROLE_ID: ROLE_ID
|
||
}
|
||
).then((data) => {
|
||
this.listLoading = false
|
||
this.activeTab = ROLE_ID
|
||
this.role1List = data.role1List
|
||
this.roleList_z = data.roleList_z
|
||
this.total = data.roleList_z
|
||
this.pd = data.pd
|
||
}).catch((e) => {
|
||
this.listLoading = false
|
||
})
|
||
},
|
||
handleAdd() {
|
||
this.dialogType = 'saveUser'
|
||
requestFN(
|
||
'/role/findByName',
|
||
{
|
||
ROLE_NAME: '企业分级账号'
|
||
}
|
||
).then((data) => {
|
||
this.shiftDutyListTwo = []
|
||
this.periodList = []
|
||
// this.form = Object.assign(this.form, { 'ROLE_ID': data.pd.ROLE_ID }) // copy obj
|
||
this.form = Object.assign(this.form, { 'userCerList': [] }) // copy obj
|
||
}).catch((e) => {
|
||
|
||
})
|
||
this.disabledLCInput = true
|
||
this.displayLCInput = 'display: none'
|
||
this.disabledLCSelect = false
|
||
this.displayLCSelect = 'display: block'
|
||
this.dialogFormEdit = true
|
||
},
|
||
number() {
|
||
this.form.SORT = this.form.SORT.replace(/[^\.\d]/g, '')
|
||
|
||
this.form.SORT = this.form.SORT.replace('.', '')
|
||
},
|
||
handleEdit(USER_ID) {
|
||
this.shiftDutyListTwo = []
|
||
this.periodList = []
|
||
this.USER_ID = ''
|
||
this.dialogType = 'editUser'
|
||
requestFN(
|
||
'/user/goEditUser',
|
||
{
|
||
USER_ID: USER_ID
|
||
}
|
||
).then((data) => {
|
||
this.form = { ...this.form, ...data.pd, ...data.licenseinfor }
|
||
// this.form = Object.assign({}, this.form, data.pd, data.licenseinfor) // copy obj
|
||
this.form.userCerList = data.userCerList
|
||
this.form.face_file = data.face_file
|
||
if (this.form.ROLE_ID != null && this.form.ROLE_ID != '') {
|
||
// 将字符串转换成数组,此时是字符串数组
|
||
console.log(typeof (this.form.ROLE_ID), '00000000')
|
||
console.log(this.form.ROLE_ID, '00000000')
|
||
var arrString = []
|
||
arrString.push(this.form.ROLE_ID)
|
||
// eslint-disable-next-line no-unused-vars
|
||
var arrList = this.form.ROLE_IDS && this.form.ROLE_IDS != '' ? this.form.ROLE_IDS.split(',') : ''
|
||
// eslint-disable-next-line no-unused-vars
|
||
for (const item1 of arrList) { // 循环取出多个角色的ID
|
||
arrString.push(item1)
|
||
}
|
||
}
|
||
this.form.ROLE_ID = arrString
|
||
// this.form.PASSWORD = 'Aa@123456789'
|
||
if (this.form.IS_ONLINELEARNING == '1') {
|
||
this.$set(this.form, 'ISSTUDENT', true)
|
||
}
|
||
this.form.USERAVATARURL = this.form.USERAVATARURL_CONVERT
|
||
this.form.LEARNERCATEGORYSTATUS = 'select'
|
||
console.log(data.period)
|
||
this.selectPeriod = data.period
|
||
this.USER_ID = USER_ID
|
||
this.getPostList()
|
||
this.getShiftWorkTwo(this.form.SHIFTDUTYONE)
|
||
this.disabledLCInput = true
|
||
this.displayLCInput = 'display: none'
|
||
this.disabledLCSelect = false
|
||
this.displayLCSelect = 'display: block'
|
||
this.oldPostId = data.pd.POST_ID
|
||
this.oldDepartId = data.pd.DEPARTMENT_ID
|
||
const node = {}
|
||
node.id = this.form.DEPARTMENT_ID
|
||
this.dialogFormEdit = true
|
||
this.$refs.deptTree.clearHandle()
|
||
|
||
this.$nextTick(() => { // 此处使用这个可以等节点渲染后再获取节点
|
||
this.$refs.deptTree.handleNodeClick(node)
|
||
})
|
||
}).catch((e) => {
|
||
this.listLoading = false
|
||
})
|
||
},
|
||
beforeFileUpload(file) {
|
||
this.daoruFrom.FFILE = file
|
||
this.daoruFrom.FFILEName = file.name
|
||
this.$forceUpdate()
|
||
return 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,
|
||
ISMAIN: row.ISMAIN,
|
||
OPENID: row.APPID,
|
||
SORT: row.SORT,
|
||
LEARNERCATEGORY: row.LEARNERCATEGORY,
|
||
USERAVATARPREFIX: row.USERAVATARPREFIX,
|
||
USERAVATARURL: row.USERAVATARURL,
|
||
SHIFTDUTYONE: row.SHIFTDUTYONE,
|
||
SHIFTDUTYTWO: row.SHIFTDUTYTWO,
|
||
DURATION: row.DURATION,
|
||
WORKSTATUS: row.WORKSTATUS,
|
||
WORKPERIOD: row.WORKPERIOD,
|
||
PERSONNEL_TYPE: row.PERSONNEL_TYPE,
|
||
TITLE: row.TITLE,
|
||
ISSTATE: row.ISSTATE,
|
||
INCUMBENCY: row.INCUMBENCY,
|
||
WORKING_DATE: row.WORKING_DATE,
|
||
ENTRY_DATE: row.ENTRY_DATE,
|
||
TYPE_OF_WORK: row.TYPE_OF_WORK,
|
||
DUTIES: row.DUTIES,
|
||
DEGREE_OF_EDUCATION: row.DEGREE_OF_EDUCATION,
|
||
DATE_OF_BIRTH: row.DATE_OF_BIRTH,
|
||
POLITICAL_OUTLOOK: row.POLITICAL_OUTLOOK,
|
||
CARD_NO: row.CARD_NO,
|
||
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.NATION || '',
|
||
SEX: row.SEX || '',
|
||
USER_TYPE: '1',
|
||
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
|
||
this.$parent.activeName = 'List'
|
||
})
|
||
},
|
||
confirm() {
|
||
// debugger
|
||
// this.uploadImgByZhengshu(this.form.USER_ID) // 保存证书信息
|
||
this.$refs.form.validate(valid => {
|
||
if (this.$refs.uploadUserAvatar.uploadFiles.length < 1 && this.form.face_file.length < 1) {
|
||
this.$message({
|
||
message: '请上传人脸照片',
|
||
type: 'error'
|
||
})
|
||
return false
|
||
}
|
||
let isUpdateFace = '0'
|
||
if (this.$refs.uploadUserAvatar.uploadFiles.length > 0) {
|
||
isUpdateFace = '1'
|
||
}
|
||
if (this.form.SHIFTDUTYONE) {
|
||
// var
|
||
if (!this.form.SHIFTDUTYTWO || this.selectPeriod.DURATION == undefined) {
|
||
this.$message({
|
||
message: '请选择完整的排班类型',
|
||
type: 'error'
|
||
})
|
||
return false
|
||
}
|
||
}
|
||
// if (this.form.USERAVATARURL == '') {
|
||
// this.$message({
|
||
// message: '请上传人员照片',
|
||
// type: 'warning'
|
||
// })
|
||
// return false
|
||
// }
|
||
if (valid) {
|
||
this.form.WORKSTATUS = this.selectPeriod.WORKSTATUS
|
||
this.form.DURATION = this.selectPeriod.DURATION
|
||
this.form.WORKPERIOD = this.selectPeriod.WORKPERIOD
|
||
console.log(this.form)
|
||
if (this.dialogType == 'saveUser') {
|
||
this.form.ROLE_ID = this.form.ROLE_ID.join(',')
|
||
this.listLoading = true
|
||
requestFN(
|
||
'/user/' + this.dialogType,
|
||
this.form
|
||
).then((data) => {
|
||
this.listLoading = false
|
||
if (this.form.ISSTUDENT) {
|
||
this.uploadImgByZhengshu(data.USER_ID)
|
||
this.uploadImgByFace(data.USER_ID)
|
||
this.$parent.activeName = 'List'
|
||
} else {
|
||
this.uploadImgByFace(data.USER_ID)
|
||
this.$parent.activeName = 'List'
|
||
}
|
||
}).catch((e) => {
|
||
this.listLoading = false
|
||
this.form.ROLE_ID = ''
|
||
this.form.USERNAME = ''
|
||
})
|
||
} else {
|
||
if (this.oldDepartId != this.form.DEPARTMENT_ID || this.oldPostId != this.form.POST_ID) {
|
||
this.$confirm('如变更了部门或岗位,保存后将删除该用户所有清单,是否确定?', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
type: 'warning'
|
||
}).then(() => {
|
||
this.form.ROLE_ID = this.form.ROLE_ID.join(',')
|
||
this.form.OPERATIONTYPE = '1'
|
||
this.listLoading = true
|
||
requestFN(
|
||
'/user/' + this.dialogType,
|
||
{
|
||
IMGFILES_ID: this.IMGFILES_ID, // 旧人脸图片
|
||
isUpdateFace: isUpdateFace,
|
||
...this.form
|
||
}
|
||
).then((data) => {
|
||
this.listLoading = false
|
||
if (this.form.ISSTUDENT) {
|
||
this.uploadImgByZhengshu(this.form.USER_ID)
|
||
this.uploadImgByFace(this.form.USER_ID)
|
||
this.goPush(this.form)
|
||
} else {
|
||
this.uploadImgByFace(this.form.USER_ID)
|
||
this.goPush(this.form)
|
||
}
|
||
}).catch((e) => {
|
||
this.listLoading = false
|
||
})
|
||
})
|
||
} else {
|
||
this.form.ROLE_ID = this.form.ROLE_ID.join(',')
|
||
this.listLoading = true
|
||
requestFN(
|
||
'/user/' + this.dialogType,
|
||
{
|
||
IMGFILES_ID: this.IMGFILES_ID, // 旧人脸图片
|
||
isUpdateFace: isUpdateFace,
|
||
...this.form
|
||
}
|
||
).then((data) => {
|
||
this.listLoading = false
|
||
if (this.form.ISSTUDENT) {
|
||
this.uploadImgByZhengshu(this.form.USER_ID)
|
||
this.uploadImgByFace(this.form.USER_ID)
|
||
this.goPush(this.form)
|
||
} else {
|
||
this.uploadImgByFace(this.form.USER_ID)
|
||
this.goPush(this.form)
|
||
}
|
||
}).catch((e) => {
|
||
this.listLoading = false
|
||
})
|
||
}
|
||
}
|
||
} else {
|
||
return false
|
||
}
|
||
})
|
||
},
|
||
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)
|
||
}
|
||
})
|
||
},
|
||
getShiftWorkOne() {
|
||
requestFN(
|
||
'/shiftworkrules/listAll',
|
||
{
|
||
PARENTID: this.PARENTID
|
||
}
|
||
).then((data) => {
|
||
this.listLoading = false
|
||
this.shiftDutyListOne = data.varList
|
||
}).catch((e) => {
|
||
this.listLoading = false
|
||
})
|
||
},
|
||
getShiftWorkTwo(id) {
|
||
if (id) {
|
||
requestFN(
|
||
'/shiftworkrules/listAll',
|
||
{
|
||
PARENTID: id
|
||
}
|
||
).then((data) => {
|
||
this.listLoading = false
|
||
this.shiftDutyListTwo = data.varList
|
||
}).catch((e) => {
|
||
this.listLoading = false
|
||
})
|
||
}
|
||
},
|
||
getShiftTwoList: function(PARENTID) {
|
||
requestFN(
|
||
'/shiftworkrules/listAll',
|
||
{
|
||
PARENTID: PARENTID
|
||
}
|
||
).then((data) => {
|
||
this.queryShiftTwoList = data.varList
|
||
}).catch((e) => {
|
||
this.listLoading = false
|
||
})
|
||
},
|
||
getLearnerCategory() {
|
||
requestFN(
|
||
'/dictionariesCorp/getLevels',
|
||
{
|
||
DICTIONARIES_ID: '532282f9c48346b8b646531909c739df'
|
||
}
|
||
).then((data) => {
|
||
this.LearnerCategoryList = data.list
|
||
}).catch((e) => {
|
||
|
||
})
|
||
},
|
||
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'
|
||
}
|
||
},
|
||
getDict: function() {
|
||
if (this.uesrInfoDic.minzuList.length == 0) {
|
||
this.getDicListByPID('0a0e406f27f74ee698fe9979d25f62dd', '', 'minzuList')
|
||
}
|
||
if (this.uesrInfoDic.xingbieList.length == 0) {
|
||
this.getDicListByPID('21501808bbc344d593fbf9ccfe6c4531', '', 'xingbieList')
|
||
}
|
||
requestFN(
|
||
'/shiftworkrules/listAll',
|
||
{
|
||
PARENTID: '0'
|
||
}
|
||
).then((data) => {
|
||
this.queryShiftOneList = data.varList
|
||
}).catch((e) => {
|
||
this.listLoading = false
|
||
})
|
||
},
|
||
// 判断按钮权限,用于是否显示按钮
|
||
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
|
||
})
|
||
},
|
||
ISSTUDENTCK() {
|
||
if (this.form.ISSTUDENT || this.dialogFormLicenseInformation) {
|
||
if (this.uesrInfoDic.zhengzhimianmaoList.length == 0) {
|
||
this.getDicListByPID('6351efdd12dc4730952e5d195718e252', '', 'zhengzhimianmaoList')
|
||
}
|
||
if (this.uesrInfoDic.wenhuachengduList.length == 0) {
|
||
this.getDicListByPID('d7d80f08d73a4accbccf4fd3d8d1d867', '', 'wenhuachengduList')
|
||
}
|
||
if (this.uesrInfoDic.renyuanleixingList.length == 0) {
|
||
this.getDicListByPID('0b62f92b0b624aab8e89a77304a64d5e', '', 'renyuanleixingList')
|
||
}
|
||
if (this.uesrInfoDic.zaizhiqingkuangList.length == 0) {
|
||
this.getDicListByPID('548764b5d4bf4bd7a18ef88274ef49e4', '', 'zaizhiqingkuangList')
|
||
}
|
||
this.getDicListByPID('09e36ac01e9540f8bc84eab1c1a78754', '', 'zhiwuList')
|
||
this.getDicListByPID('945a6b10e59946078b500f0fbafa8679', '', 'zhichengList')
|
||
this.getDicListByPID('55484e491a5e442d839c4595380713ec', '', 'gongzhongList')
|
||
}
|
||
},
|
||
getDicListByPID(pId, id, listName) {
|
||
var url = '/dictionaries/getLevels'
|
||
if (listName == 'zhiwuList' || listName == 'zhichengList' || listName == 'gongzhongList') {
|
||
url = '/dictionariesCorp/getLevels'
|
||
}
|
||
requestFN(url,
|
||
{
|
||
DICTIONARIES_ID: pId
|
||
}
|
||
).then((data) => {
|
||
this.uesrInfoDic[listName] = data.list
|
||
}).catch((e) => {
|
||
|
||
})
|
||
},
|
||
forceUpdate(item) {
|
||
this.$forceUpdate()
|
||
},
|
||
removeDuties(index, dictType) {
|
||
var dictID = ''
|
||
var msgTitle = ''
|
||
if (dictType == 'APPLICABLE_PERSONNEL') {
|
||
console.info('在线学习人员类别待处理索引:' + index)
|
||
dictID = this.LearnerCategoryList[index].DICTIONARIES_ID
|
||
msgTitle = '类别:' + this.LearnerCategoryList[index].NAME
|
||
dictType = 'APPLICABLE_PERSONNEL'
|
||
} else if (dictType == 'POSITION') {
|
||
console.info('职务待处理索引:' + index)
|
||
dictID = this.uesrInfoDic.zhiwuList[index].DICTIONARIES_ID
|
||
msgTitle = '职务:' + this.uesrInfoDic.zhiwuList[index].NAME
|
||
} else if (dictType == 'JOB_TITLE') {
|
||
console.info('职称待处理索引:' + index)
|
||
dictID = this.uesrInfoDic.zhichengList[index].DICTIONARIES_ID
|
||
msgTitle = '职称:' + this.uesrInfoDic.zhichengList[index].NAME
|
||
} else if (dictType == 'WORK_TYPE') {
|
||
console.info('工种待处理索引:' + index)
|
||
dictID = this.uesrInfoDic.gongzhongList[index].DICTIONARIES_ID
|
||
msgTitle = '工种:' + this.uesrInfoDic.gongzhongList[index].NAME
|
||
}
|
||
this.$confirm('删除此分类会同时删除其他相关已编辑过的人员信息中的分类设置,确定要删除(' + msgTitle + ')吗?', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
type: 'warning'
|
||
}).then(() => {
|
||
this.listLoading = true
|
||
requestFN(
|
||
'/dictionariesCorp/delete',
|
||
{
|
||
DICTIONARIES_ID: dictID,
|
||
DICTTYPE: dictType
|
||
}
|
||
).then((data) => {
|
||
this.listLoading = false
|
||
if (dictType == 'APPLICABLE_PERSONNEL') {
|
||
this.LearnerCategoryList.splice(index, 1)
|
||
} else if (dictType == 'POSITION') {
|
||
this.uesrInfoDic.zhiwuList.splice(index, 1)
|
||
} else if (dictType == 'JOB_TITLE') {
|
||
this.uesrInfoDic.zhichengList.splice(index, 1)
|
||
} else if (dictType == 'WORK_TYPE') {
|
||
this.uesrInfoDic.gongzhongList.splice(index, 1)
|
||
}
|
||
}).catch((e) => {
|
||
this.listLoading = false
|
||
})
|
||
}).catch((e) => {
|
||
})
|
||
},
|
||
handlePictureCardPreview(file) {
|
||
this.dialogImageUrl = file.url
|
||
this.dialogVisible = true
|
||
},
|
||
/* 用户头像处理 Begin */
|
||
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.splice(0, fileList.length)
|
||
} else {
|
||
this.getBase64(file.raw).then(res => {
|
||
this.form.USERAVATARPREFIX = res.substring(0, res.indexOf('base64,') + 7)
|
||
this.form.USERAVATARURL = res.substring(res.indexOf('base64,') + 7)
|
||
this.form.USERAVATARURL_CONVERT = res.substring(res.indexOf('base64,') + 7)
|
||
})
|
||
}
|
||
},
|
||
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 = ''
|
||
},
|
||
handleChangeIMGFace(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()
|
||
}
|
||
},
|
||
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()
|
||
}
|
||
},
|
||
beforeFileUploadByZhengshu(file) {
|
||
this.certificate_files.push(file)
|
||
},
|
||
beforeFileUploadByFace(file) {
|
||
this.form.face_file.push(file)
|
||
},
|
||
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) => {
|
||
}).catch((e) => {
|
||
})
|
||
}
|
||
},
|
||
uploadImgByFace(userId) {
|
||
this.$refs.uploadUserAvatar.submit()
|
||
if (this.form.face_file.length > 0) {
|
||
const formData = new FormData()
|
||
for (var i = 0; i < this.form.face_file.length; i++) {
|
||
if (this.form.face_file[i]) {
|
||
formData.append('FFILE', this.form.face_file[i])
|
||
}
|
||
}
|
||
formData.append('FOREIGN_KEY', userId)
|
||
formData.append('TYPE', 30)
|
||
upload(
|
||
'/imgfiles/add',
|
||
formData
|
||
).then((data) => {
|
||
this.$message({
|
||
message: '操作成功',
|
||
type: 'success'
|
||
})
|
||
}).catch((e) => {
|
||
})
|
||
} else {
|
||
this.$message({
|
||
message: '操作成功',
|
||
type: 'success'
|
||
})
|
||
}
|
||
},
|
||
deleteCertificate(index) {
|
||
this.$confirm('确定要删除吗?', {
|
||
confirmButtonText: '确定',
|
||
cancelButtonText: '取消',
|
||
type: 'warning'
|
||
}).then(() => {
|
||
requestFN(
|
||
'/imgfiles/delete',
|
||
{
|
||
IMGFILES_ID: this.form.userCerList[index].IMGFILES_ID
|
||
}
|
||
).then(() => {
|
||
this.$message({
|
||
message: '删除成功',
|
||
type: 'success'
|
||
})
|
||
this.form.userCerList.splice(index, 1)
|
||
this.$forceUpdate()
|
||
}).catch((e) => {
|
||
})
|
||
}).catch(() => {
|
||
})
|
||
}
|
||
}
|
||
}
|
||
</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>
|
||
.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>
|