994 lines
37 KiB
Vue
994 lines
37 KiB
Vue
<template>
|
||
<div>
|
||
<div v-if="!view">
|
||
<el-form :model="formData" ref="form" :rules="formRules" label-width="120px" v-loading="loading"
|
||
:disabled="!isAllowModify">
|
||
<el-tabs v-model="activeName" type="card">
|
||
|
||
<el-tab-pane label="基本信息" :name="1">
|
||
<vi-title title="基本资料"></vi-title>
|
||
|
||
<el-form-item prop="loginname" label="工  号">
|
||
<el-input v-model="formData.loginname" placeholder="工号"></el-input>
|
||
</el-form-item>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="unitid" label="所属单位">
|
||
<el-select placeholder="所属单位"
|
||
style="width: 100%"
|
||
filterable @change="unitChange"
|
||
v-model="formData.unitid">
|
||
<el-option v-for="unit in unitOptions" :key="unit.id" :value="unit.id" :label="unit.name"></el-option>
|
||
</el-select>
|
||
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="unionid" label="所属工会">
|
||
<el-input :value="formData.unionname" readonly></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<el-row :gutter="10" v-if="displayUnionGroup">
|
||
<el-col :xs="24" :lg="12">
|
||
<el-form-item label="所属三级单位" prop="deptId">
|
||
<el-select v-model="formData.threeUnitId"
|
||
filterable
|
||
placeholder="所属三级单位"
|
||
style="width: 100%"
|
||
@change="threeUnitChange">
|
||
<el-option
|
||
v-for="item in threeUnits"
|
||
:key="item.id"
|
||
:label="item.name"
|
||
:value="item.id">
|
||
</el-option>
|
||
</el-select>
|
||
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :xs="24" :lg="12">
|
||
<el-form-item label="工会小组">
|
||
<el-input :value="formData.unionGroupName" readonly></el-input>
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="username" label="姓  名">
|
||
<el-input v-model="formData.username" placeholder="姓名"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="nameUsedBefore" label="曾 用 名">
|
||
<el-input maxlength="100" placeholder="曾用名"
|
||
v-model="formData.nameUsedBefore"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="birthday" label="出生日期">
|
||
<el-date-picker style="width: 100%" v-model="formData.birthday" format="yyyy-MM-dd"
|
||
value-format="yyyy-MM-dd" type="date" placeholder="出生日期"></el-date-picker>
|
||
</el-form-item>
|
||
<el-form-item prop="sex" label="性  别">
|
||
<el-radio v-model="formData.sex" label="男" border size="small">男</el-radio>
|
||
<el-radio v-model="formData.sex" label="女" border size="small">女</el-radio>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="birthday" label="出生地点">
|
||
<el-input v-model="formData.birthPlace" placeholder="出生地点"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item label="婚  否">
|
||
<el-radio-group v-model="formData.marriage" size="small">
|
||
<el-radio label="已婚" border></el-radio>
|
||
<el-radio label="未婚" border></el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
|
||
<el-form-item prop="education" label="学  历">
|
||
<dict-select v-model="formData.education" style="width: 100%" placeholder="请选择学历"
|
||
code="Education"></dict-select>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="academicDegree" label="学  位">
|
||
<dict-select v-model="formData.academicDegree" style="width: 100%" placeholder="请选择学位"
|
||
code="academicDegree"></dict-select>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="nationality" label="国  籍">
|
||
<el-input v-model="formData.nationality" placeholder="国籍"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="hometown" label="籍  贯">
|
||
<el-input v-model="formData.hometown" placeholder="籍贯"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="nation" label="民  族">
|
||
<el-select placeholder="民族" style="width: 100%" filterable v-model="formData.nation">
|
||
<el-option v-for="nation in nationOptions" :key="nation" :value="nation" :label="nation"></el-option>
|
||
</el-select>
|
||
</el-form-item>
|
||
<el-form-item prop="political" label="政治面貌">
|
||
<el-input maxlength="100" placeholder="政治面貌" v-model="formData.political"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="jobTitle" label="职  称">
|
||
<dict-select v-model="formData.jobTitle" style="width: 100%" placeholder="请选择职称"
|
||
code="JobTitle"></dict-select>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="wage" label="工  资">
|
||
<el-input v-model="formData.wage" placeholder="工资"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="mobile" label="手 机 号">
|
||
<el-input maxlength="100" placeholder="手机号"
|
||
v-model="formData.mobile"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="bank_number" label="银行账号">
|
||
<el-input maxlength="100" placeholder="银行账号"
|
||
v-model="formData.bank_number"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
|
||
<el-form-item prop="userState" label="人员类型">
|
||
<dict-select v-model="formData.personType" style="width: 100%" placeholder="请选择人员类型"
|
||
code="UserType"></dict-select>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="userState" label="在职状态">
|
||
<dict-select v-model="formData.userState" style="width: 100%" placeholder="请选择在职状态"
|
||
code="UserState"></dict-select>
|
||
</el-form-item>
|
||
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="idType" label="有效证件类型">
|
||
<dict-select
|
||
v-model="formData.idType"
|
||
placeholder="请选择有效证件类型"
|
||
style="width: 100%"
|
||
code="idType">
|
||
</dict-select>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="idType" label="证件有效日期">
|
||
<el-date-picker
|
||
format="yyyy-MM-dd"
|
||
value-format="yyyy-MM-dd"
|
||
v-model="formData.effectiveDate"
|
||
type="daterange"
|
||
range-separator="——"
|
||
start-placeholder="开始日期"
|
||
end-placeholder="结束日期"
|
||
style="width: 100%">
|
||
</el-date-picker>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="idcard" label="身份证号">
|
||
<el-input v-model="formData.idcard" placeholder="身份证号"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="weChat" label="微 信 号">
|
||
<el-input v-model="formData.weChat" placeholder="微信号"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item label="兴趣爱好">
|
||
<el-input maxlength="255" placeholder="兴趣爱好" v-model="formData.hobby"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="qqnum" label="QQ号">
|
||
<el-input maxlength="20" placeholder="QQ号" v-model="formData.qqnum"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="householdType" label="户籍类型">
|
||
<dict-select
|
||
v-model="formData.householdType"
|
||
placeholder="请选择户籍类型"
|
||
style="width: 100%"
|
||
code="householdType">
|
||
</dict-select>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="specialSkill" label="专  长">
|
||
<el-input maxlength="100" placeholder="专长" v-model="formData.specialSkill"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="health" label="健康状况">
|
||
<dict-select
|
||
v-model="formData.health"
|
||
placeholder="请选择健康状况"
|
||
style="width: 100%"
|
||
code="health">
|
||
</dict-select>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="diseaseType" label="残疾类别">
|
||
<dict-select
|
||
v-model="formData.diseaseType"
|
||
placeholder="请选择残疾类别"
|
||
style="width: 100%"
|
||
code="diseaseType">
|
||
</dict-select>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<el-form-item label="疾病说明">
|
||
<el-input type="textarea" v-model="formData.diseaseDescription"
|
||
:autosize="{ minRows: 4}"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item label="照片上传">
|
||
<el-upload
|
||
:action="FILE_UPLOAD_ADDRESS"
|
||
list-type="picture-card"
|
||
:file-list="imageList"
|
||
:class="{disabled:uploadDisabled}"
|
||
:on-preview="handlePictureCardPreview"
|
||
:limit="1"
|
||
:on-remove="removeAvatarUpload"
|
||
:before-upload="beforeAvatarUpload"
|
||
:on-success="handleAvatarSuccess">
|
||
<i class="el-icon-plus"></i>
|
||
<div class="el-upload__tip" slot="tip" style="color: red">
|
||
*只能上传jpg/png文件,且不超过2MB的一寸电子照片
|
||
</div>
|
||
</el-upload>
|
||
</el-form-item>
|
||
<!-- </el-form>-->
|
||
</el-tab-pane>
|
||
|
||
<el-tab-pane label="工作信息" :name="2">
|
||
|
||
<!-- <el-form :model="formData" ref="form" :rules="formRules" label-width="140px" v-loading="loading">-->
|
||
|
||
<vi-title title="工作信息"></vi-title>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="isOutsiders" label="是否外来务工人员">
|
||
<el-radio-group v-model="formData.isOutsiders">
|
||
<el-radio :label="true" border>是</el-radio>
|
||
<el-radio :label="false" border>否</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="schoolTime" label="参加工作日期">
|
||
<el-date-picker
|
||
style="width: 100%;"
|
||
format="yyyy-MM-dd"
|
||
value-format="yyyy-MM-dd"
|
||
v-model="formData.schoolTime"
|
||
type="date"
|
||
placeholder="选择参加工作日期">
|
||
</el-date-picker>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="position" label="录用职位">
|
||
<el-input maxlength="100" placeholder="录用职位" v-model="formData.position"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="majorCategory" label="所学专业类别">
|
||
<el-input maxlength="50" placeholder="所学专业类别" v-model="formData.majorCategory"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="profession" label="从事专业">
|
||
<el-input v-model="formData.profession" placeholder="从事专业"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="laborContractType" label="劳动合同制用工形式">
|
||
<el-input v-model="formData.laborContractType" placeholder="劳动合同制用工形式"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="occupationType" label="职业类别">
|
||
<el-input v-model="formData.occupationType" placeholder="职业类别"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
|
||
<el-form-item prop="notes" label="注  释">
|
||
<el-input type="textarea" v-model="formData.notes" placeholder="注释"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="vita" label="个人简历">
|
||
<div id="vitaEditor"></div>
|
||
</el-form-item>
|
||
<!-- </el-form>-->
|
||
</el-tab-pane>
|
||
|
||
<el-tab-pane label="会员信息" :name="3">
|
||
<!-- <el-form :model="formData" ref="form" :rules="formRules" label-width="160px" v-loading="loading">-->
|
||
<vi-title title="会员信息"></vi-title>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="memberJoinTime" label="入会日期">
|
||
<el-date-picker style="width: 100%" v-model="formData.memberJoinTime" format="yyyy-MM-dd"
|
||
value-format="yyyy-MM-dd" type="date" placeholder="入会日期"></el-date-picker>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="memberNumber" label="会 员 号">
|
||
<el-input v-model="formData.memberNumber" placeholder="会员号"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="awardWinning" label="工会特殊项标识">
|
||
<dict-select
|
||
v-model="formData.awardWinning"
|
||
placeholder="请选择工会特殊项标识"
|
||
style="width: 100%"
|
||
code="awardWinning">
|
||
</dict-select>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="membershipCardType" label="会员卡类型">
|
||
<el-input v-model="formData.membershipCardType" placeholder="会员卡类型"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="isLeader" label="是否工会干部">
|
||
<el-radio-group v-model="formData.isLeader">
|
||
<el-radio :label="true" border>是</el-radio>
|
||
<el-radio :label="false" border>否</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="isPay" label="是否缴纳会费">
|
||
<el-radio-group v-model="formData.isPay">
|
||
<el-radio :label="true" border>是</el-radio>
|
||
<el-radio :label="false" border>否</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="isPhysicaisCard" label="是否办理工会实体卡">
|
||
<el-radio-group v-model="formData.isPhysicaisCard">
|
||
<el-radio :label="true" border>是</el-radio>
|
||
<el-radio :label="false" border>否</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="isCardActivated" label="工会实体卡是否激活">
|
||
<el-radio-group v-model="formData.isCardActivated">
|
||
<el-radio :label="true" border>是</el-radio>
|
||
<el-radio :label="false" border>否</el-radio>
|
||
</el-radio-group>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="cardNum" label="工会实体卡卡号">
|
||
<el-input v-model="formData.cardNum" placeholder="工会实体卡卡号"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="cardBankNum" label="工会实体卡银行卡号">
|
||
<el-input v-model="formData.cardBankNum" placeholder="工会实体卡银行卡卡号"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="electronicCardNumber" label="电子会员卡卡号">
|
||
<el-input v-model="formData.electronicCardNumber" placeholder="电子会员卡卡号"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="electronicCardNumberTime" label="电子会员卡发放时间">
|
||
<el-date-picker
|
||
format="yyyy-MM-dd"
|
||
value-format="yyyy-MM-dd"
|
||
v-model="formData.electronicCardNumberTime"
|
||
type="date"
|
||
placeholder="选择日期"
|
||
style="width: 100%">
|
||
</el-date-picker>
|
||
</el-form-item>
|
||
</div>
|
||
<!-- </el-form>-->
|
||
</el-tab-pane>
|
||
|
||
<el-tab-pane label="家庭及社会信息" :name="4">
|
||
<!-- <el-form :model="formData" ref="form" :rules="formRules" label-width="120px" v-loading="loading">-->
|
||
|
||
<vi-title title="家庭及社会信息"></vi-title>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="personalStatus" label="个人身份">
|
||
<el-input v-model="formData.personalStatus" placeholder="个人身份"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="socialIdentity" label="社会身份">
|
||
<el-input v-model="formData.socialIdentity" placeholder="社会身份"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="otherIdentity" label="其他社会身份">
|
||
<el-input v-model="formData.otherIdentity" placeholder="其他社会身份"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="employmentStatus" label="就业状况">
|
||
<el-input v-model="formData.employmentStatus" placeholder="就业状况"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="homePhone" label="住宅电话">
|
||
<el-input v-model="formData.homePhone" placeholder="住宅电话"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="otherPhone" label="其他电话">
|
||
<el-input v-model="formData.otherPhone" placeholder="其他电话"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="homeAddress" label="家庭住址">
|
||
<el-input v-model="formData.homeAddress" placeholder="家庭住址"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="mailingAddress" label="通信地址">
|
||
<el-input v-model="formData.mailingAddress" placeholder="通信地址"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="otherContactInformation" label="其他联系方式">
|
||
<el-input v-model="formData.otherContactInformation" placeholder="其他联系方式"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="registeredResidence" label="户籍所在地">
|
||
<el-input v-model="formData.registeredResidence" placeholder="户籍所在地"></el-input>
|
||
</el-form-item>
|
||
</div>
|
||
|
||
<div class="is-flex">
|
||
<el-form-item prop="postalCode" label="邮政编码">
|
||
<el-input v-model="formData.postalCode" placeholder="邮政编码"></el-input>
|
||
</el-form-item>
|
||
|
||
<el-form-item prop="familyPopulation" label="家庭人口数">
|
||
<el-input v-model="formData.familyPopulation" placeholder="家庭人口数"></el-input>
|
||
</el-form-item>
|
||
|
||
</div>
|
||
|
||
<el-form-item label="家庭成员">
|
||
<span style="color: red">(已结婚填配偶信息,未结婚填父母信息)</span>
|
||
<el-button style="float: right;margin-bottom: 10px" icon="el-icon-plus" size="mini"
|
||
@click="formData.family.push({})"> 添加成员
|
||
</el-button>
|
||
<el-table
|
||
:data="formData.family"
|
||
border
|
||
size="mini"
|
||
style="width: 100%">
|
||
<el-table-column prop="relation" label="与本人关系" align="center" header-align="center">
|
||
<template slot-scope="scope">
|
||
<el-input placeholder="请输入与本人关系" maxlength="30" v-model="scope.row.relation"
|
||
clearable></el-input>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="name" label="姓名" align="center" header-align="center">
|
||
<template slot-scope="scope">
|
||
<el-input placeholder="请输入姓名" maxlength="100" v-model="scope.row.name" clearable></el-input>
|
||
</template>
|
||
</el-table-column>
|
||
|
||
<el-table-column prop="unit" label="单位" align="center" header-align="center">
|
||
<template slot-scope="scope">
|
||
<el-input placeholder="请输入单位" maxlength="100" v-model="scope.row.unit" clearable></el-input>
|
||
</template>
|
||
</el-table-column>
|
||
<el-table-column prop="remark" label="备注" align="center" header-align="center">
|
||
<template slot-scope="scope">
|
||
<el-input placeholder="请输入备注" maxlength="100" v-model="scope.row.remark" clearable></el-input>
|
||
</template>
|
||
</el-table-column>
|
||
|
||
<el-table-column label="操作" width="100px" align="center" header-align="center">
|
||
<template slot-scope="scope">
|
||
<el-button type="danger" icon="el-icon-delete" circle
|
||
:disabled="formData.family.length===0"
|
||
@click="formData.family.splice(scope.$index,1)"></el-button>
|
||
</template>
|
||
</el-table-column>
|
||
</el-table>
|
||
</el-form-item>
|
||
<!-- </el-form>-->
|
||
</el-tab-pane>
|
||
</el-tabs>
|
||
</el-form>
|
||
|
||
|
||
<el-button v-if="has_bottom_btn" @click="save" :loading="submitLoading" type="primary" style="float: right">提交
|
||
</el-button>
|
||
</div>
|
||
|
||
<div v-else>
|
||
<el-form label-width="100px" v-loading="loading" label-position="left" label-suffix=":">
|
||
|
||
<el-row gutter="20">
|
||
<el-col :span="18">
|
||
<el-row gutter="20">
|
||
<el-col :span="8">
|
||
<el-form-item label="姓  名">
|
||
{{ formData.username }}
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="8">
|
||
<el-form-item label="工  号">
|
||
{{ formData.loginname }}
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="8">
|
||
<el-form-item label="性  别">
|
||
{{ formData.sex }}
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row gutter="20">
|
||
<el-col :span="8">
|
||
<el-form-item label="所在科室">
|
||
{{ formData.threeUnitName }}
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="8">
|
||
<el-form-item label="所在单位">
|
||
{{ formData.unitname }}
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="8">
|
||
<el-form-item label="所在工会">
|
||
{{ formData.unionname }}
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="8">
|
||
<el-form-item label="政治面貌">
|
||
{{ formData.political }}
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row gutter="20">
|
||
<el-col :span="8">
|
||
<el-form-item label="出生日期">
|
||
{{ formData.birthday }}
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="8">
|
||
<el-form-item label="籍  贯">
|
||
{{ formData.hometown }}
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="8">
|
||
<el-form-item label="民  族">
|
||
{{ formData.nation }}
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
</el-row>
|
||
</el-col>
|
||
<el-col :span="6">
|
||
<el-image :src="APP_DOMAIN+FILE_STREAM_PREVIEW_ADDRESS + '?id=' +formData.avatar"
|
||
style="width: 180px;height: 180px;display: flex;justify-content: center;align-items: center;background-color: #f5f7fa">
|
||
<div slot="error" class="image-slot">
|
||
<i class="el-icon-picture-outline" style="font-size: 24px"></i>
|
||
</div>
|
||
</el-image>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row gutter="20">
|
||
<el-col :span="6">
|
||
<el-form-item label="兴趣爱好">
|
||
{{ formData.hobby }}
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="6">
|
||
<el-form-item label="婚  否">
|
||
{{ formData.marriage }}
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="6">
|
||
<el-form-item label="学  历">
|
||
{{ formData.education }}
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="6">
|
||
<el-form-item label="工  资">
|
||
{{ formData.wage }}
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row gutter="20">
|
||
<el-col :span="6">
|
||
<el-form-item label="人事编制">
|
||
{{ formData.preparedBy }}
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="6">
|
||
<el-form-item label="职  务">
|
||
{{ formData.position }}
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="6">
|
||
<el-form-item label="职  称">
|
||
{{ formData.jobTitle }}
|
||
</el-form-item>
|
||
</el-col>
|
||
|
||
<el-col :span="6">
|
||
<el-form-item label="在职状态">
|
||
{{ formData.userState }}
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
<el-row gutter="20">
|
||
<el-col :span="6">
|
||
<el-form-item label="人员类型">
|
||
{{ formData.personType }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="6">
|
||
<el-form-item label="手 机 号">
|
||
{{ formData.mobile }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="6">
|
||
<el-form-item label="银行账号">
|
||
{{ formData.bank_number }}
|
||
</el-form-item>
|
||
</el-col>
|
||
<el-col :span="6">
|
||
<el-form-item label="身份证号">
|
||
{{ formData.idcard }}
|
||
</el-form-item>
|
||
</el-col>
|
||
</el-row>
|
||
|
||
<el-form-item label="个人简历">
|
||
|
||
<div v-html="formData.vita"></div>
|
||
|
||
</el-form-item>
|
||
|
||
<el-form-item label="家庭成员">
|
||
|
||
<el-table
|
||
v-if="formData.family&&formData.family.length"
|
||
:data="formData.family"
|
||
size="mini" border :header-cell-style="{background:'#eff3f6'}"
|
||
style="width: 100%">
|
||
<el-table-column prop="relation" label="与本人关系" align="center" header-align="center">
|
||
</el-table-column>
|
||
<el-table-column prop="name" label="姓名" align="center" header-align="center">
|
||
</el-table-column>
|
||
<el-table-column prop="unit" label="单位" align="center" header-align="center">
|
||
</el-table-column>
|
||
<el-table-column prop="remark" label="备注" align="center" header-align="center">
|
||
</el-table-column>
|
||
</el-table>
|
||
|
||
</el-form-item>
|
||
|
||
|
||
</el-form>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
|
||
|
||
<script>
|
||
let vitaEditor = null
|
||
|
||
module.exports = {
|
||
components: {
|
||
'dict-select': httpVueLoader('/components/plugins/DictSelect.vue?v=1.0.4'),
|
||
},
|
||
props: {
|
||
id: {type: String},
|
||
view: {type: Boolean, default: false},
|
||
edit_unit: {type: Boolean, default: false},
|
||
source: {type: String},
|
||
has_bottom_btn: {type: Boolean, default: true}
|
||
},
|
||
// model: {
|
||
// prop: 'value',
|
||
// event: 'change'
|
||
// },
|
||
data() {
|
||
return {
|
||
activeName: 1,
|
||
|
||
unionOptions: [],
|
||
unitOptions: [],
|
||
|
||
submitLoading: false,
|
||
imageList: [],
|
||
uploadDisabled: false,
|
||
loading: true,
|
||
disabled: false,
|
||
formData: {
|
||
family: [],
|
||
},
|
||
formRules: {
|
||
loginname: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||
username: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||
unitid: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||
threeUnitId: [{required: true, message: '必填', trigger: ['blur', 'change']}],
|
||
},
|
||
nationOptions: nation,
|
||
threeUnits: [],
|
||
displayUnionGroup: false,
|
||
isAllowModify: false
|
||
}
|
||
},
|
||
watch: {
|
||
id() {
|
||
this.getUserInfo()
|
||
}
|
||
},
|
||
methods: {
|
||
async doOperating() {
|
||
this.$refs["form"].validate(async (valid) => {
|
||
if (valid) {
|
||
|
||
const formData = clone(this.formData)
|
||
formData.password = 'dd3s@#2022'
|
||
formData.family = JSON.stringify(formData.family)
|
||
formData.source = this.source
|
||
if (formData.effectiveDate) {
|
||
formData.beginningDate = formData.effectiveDate[0]
|
||
formData.endDate = formData.effectiveDate[1]
|
||
}
|
||
|
||
const resp = await $.post(formData.id ? "/platform/sys/user/editDo" : "/platform/sys/user/addDo", formData)
|
||
if (resp.code === 0) {
|
||
this.$notify.success({
|
||
title: '成功',
|
||
message: resp.msg,
|
||
})
|
||
this.$emit("load")
|
||
} else {
|
||
this.$notify.warning({
|
||
title: '警告',
|
||
message: resp.msg,
|
||
})
|
||
}
|
||
}
|
||
}
|
||
)
|
||
},
|
||
|
||
async unitChange(v) {
|
||
const unit = this.unitOptions.find(x => x.id == v)
|
||
if (unit) {
|
||
this.formData.unionid = unit.unionid
|
||
this.formData.unionname = unit.unionname
|
||
} else {
|
||
this.formData.unionid = ''
|
||
this.formData.unionname = ''
|
||
}
|
||
this.$set(this.formData, 'threeUnitId', null)
|
||
this.$set(this.formData, 'unionGroupName', null)
|
||
this.threeUnits = await this.getThreeUnits(v)
|
||
},
|
||
|
||
async getThreeUnits(v) {
|
||
const threeUnits = await threeUnitsByUnionGroupOrUnitId(v, null)
|
||
return threeUnits
|
||
|
||
// debugger
|
||
// if(v){
|
||
// const threeUnit = this.threeUnits.find(v => v.id === val)
|
||
// console.log(threeUnit)
|
||
// }else{
|
||
// this.$set(this.formData, 'unionGroupName', null)
|
||
// }
|
||
// this.$set(this.formData, 'threeUnitId', null)
|
||
// this.threeUnits = await threeUnitsByUnionGroupOrUnitId(this.formData.unitId, null)
|
||
},
|
||
|
||
threeUnitChange(val) {
|
||
const threeUnit = this.threeUnits.find(v => v.id === val)
|
||
this.$set(this.formData, 'unionGroupName', threeUnit.groupname)
|
||
this.$set(this.formData, 'unionGroupId', threeUnit.uniongroupid)
|
||
},
|
||
|
||
async save() {
|
||
this.$refs["form"].validate(async (valid) => {
|
||
if (valid) {
|
||
this.submitLoading = true
|
||
|
||
const formData = clone(this.formData)
|
||
formData.family = JSON.stringify(formData.family)
|
||
formData.source = this.source
|
||
if (formData.effectiveDate) {
|
||
formData.beginningDate = formData.effectiveDate[0]
|
||
formData.endDate = formData.effectiveDate[1]
|
||
}
|
||
const resp = await $.post("/platform/member/common/saveUser", formData)
|
||
this.submitLoading = false
|
||
if (resp.code === 0) {
|
||
this.$notify.success({
|
||
title: '成功',
|
||
message: resp.msg,
|
||
})
|
||
this.$emit("save", resp.data)
|
||
} else {
|
||
this.$notify.warning({
|
||
title: '警告',
|
||
message: resp.msg,
|
||
})
|
||
}
|
||
}
|
||
})
|
||
},
|
||
|
||
load(data) {
|
||
if (this.$refs['form']) {
|
||
this.$refs['form'].resetFields()
|
||
}
|
||
|
||
if (data.avatar) {
|
||
this.imageList = [{
|
||
name: "_.jpg",
|
||
url: APP_DOMAIN + FILE_STREAM_PREVIEW_ADDRESS + '?id=' + data.avatar,
|
||
status: "success"
|
||
}]
|
||
}
|
||
data.family = JSON.parse(data.family || '[]')
|
||
if (data.beginningDate && data.endDate) {
|
||
data.effectiveDate = [data.beginningDate, data.endDate]
|
||
}
|
||
this.formData = data
|
||
|
||
this.$nextTick(() => {
|
||
$("#vitaEditor").html("")
|
||
|
||
vitaEditor = new wangEditor("#vitaEditor")
|
||
vitaEditor.config.onchange = (html) => {
|
||
this.formData.vita = html
|
||
}
|
||
vitaEditor.create()
|
||
vitaEditor.txt.html(data.vita)
|
||
})
|
||
},
|
||
|
||
async getUserInfo() {
|
||
this.loading = true
|
||
this.disabled = false
|
||
this.imageList = []
|
||
if (!this.id) {
|
||
this.load({})
|
||
this.unionOptions = await getUnions(null)
|
||
this.unitOptions = await getUnionUnits()
|
||
this.displayUnionGroup = await getConfigKey('SysUnionGroup') === 'true'
|
||
this.isAllowModify = await getConfigKey('MemberInfoModify') === 'true'
|
||
this.loading = false
|
||
return
|
||
}
|
||
|
||
const resp = await $.get("/platform/member/common/userInfo", {userId: this.id, source: this.source})
|
||
this.loading = false
|
||
if (resp.code === 0) {
|
||
const data = resp.data
|
||
this.unitOptions = await getUnits(data.unionid)
|
||
this.threeUnits = await this.getThreeUnits(data.unitid)
|
||
this.load(data)
|
||
} else {
|
||
this.$notify.error({
|
||
title: '错误',
|
||
message: '获取用户信息失败'
|
||
});
|
||
}
|
||
},
|
||
|
||
handlePictureCardPreview(file) {
|
||
/*showpic(file.url.replace(FILE_DOMAIN, ''))*/
|
||
let image = new Image()
|
||
image.src = file.url
|
||
let viewer = new Viewer(image)
|
||
viewer.show()
|
||
},
|
||
removeAvatarUpload(val) {
|
||
this.imageList = []
|
||
this.formData.avatar = null
|
||
},
|
||
|
||
beforeAvatarUpload(file) {
|
||
let isLt2M = file.size / 1024 / 1024 < 2;
|
||
let isJPG = file.type === 'image/jpeg';
|
||
let isPng = file.type === 'image/png';
|
||
if (!isJPG && !isPng) {
|
||
this.$message.error('上传头像图片只能是 JPG和PNG格式!');
|
||
}
|
||
if (!isLt2M) {
|
||
this.$message.error('上传头像图片大小不能超过 2MB!');
|
||
}
|
||
return (isJPG || isPng) && isLt2M;
|
||
},
|
||
|
||
handleAvatarSuccess: function (res, file) {
|
||
var self = this;
|
||
if (res.code == 0) {
|
||
|
||
const {data: {filepath}} = res
|
||
|
||
self.formData.avatar = filepath;
|
||
|
||
} else {
|
||
this.$notify.error({
|
||
title: '错误',
|
||
message: res.msg
|
||
});
|
||
}
|
||
},
|
||
|
||
},
|
||
async created() {
|
||
await this.getUserInfo()
|
||
this.unionOptions = await getUnions(null)
|
||
this.unitOptions = await getUnionUnits()
|
||
this.displayUnionGroup = await getConfigKey('SysUnionGroup') === 'true'
|
||
this.isAllowModify = await getConfigKey('MemberInfoModify') === 'true'
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style>
|
||
.is-flex {
|
||
display: flex;
|
||
}
|
||
|
||
.is-flex .el-form-item {
|
||
width: 50%;
|
||
}
|
||
|
||
.el-picker-panel {
|
||
z-index: 9999999 !important;
|
||
}
|
||
</style>
|