Files
UNION_HUTB/target/classes/static/components/member/MemberInfo.vue
T
2026-09-09 09:14:28 +08:00

994 lines
37 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<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="工&emsp;&emsp;号">
<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="姓&emsp;&emsp;名">
<el-input v-model="formData.username" placeholder="姓名"></el-input>
</el-form-item>
<el-form-item prop="nameUsedBefore" label="曾&ensp;用&ensp;名">
<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="性&emsp;&emsp;别">
<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="婚&emsp;&emsp;否">
<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="学&emsp;&emsp;历">
<dict-select v-model="formData.education" style="width: 100%" placeholder="请选择学历"
code="Education"></dict-select>
</el-form-item>
<el-form-item prop="academicDegree" label="学&emsp;&emsp;位">
<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="国&emsp;&emsp;籍">
<el-input v-model="formData.nationality" placeholder="国籍"></el-input>
</el-form-item>
<el-form-item prop="hometown" label="籍&emsp;&emsp;贯">
<el-input v-model="formData.hometown" placeholder="籍贯"></el-input>
</el-form-item>
</div>
<div class="is-flex">
<el-form-item prop="nation" label="民&emsp;&emsp;族">
<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="职&emsp;&emsp;称">
<dict-select v-model="formData.jobTitle" style="width: 100%" placeholder="请选择职称"
code="JobTitle"></dict-select>
</el-form-item>
<el-form-item prop="wage" label="工&emsp;&emsp;资">
<el-input v-model="formData.wage" placeholder="工资"></el-input>
</el-form-item>
</div>
<div class="is-flex">
<el-form-item prop="mobile" label="手&ensp;机&ensp;号">
<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="微&ensp;信&ensp;号">
<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="专&emsp;&emsp;长">
<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="注&emsp;&emsp;释">
<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="会&ensp;员&ensp;号">
<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="姓&emsp;&emsp;名">
{{ formData.username }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="工&emsp;&emsp;号">
{{ formData.loginname }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="性&emsp;&emsp;别">
{{ 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="籍&emsp;&emsp;贯">
{{ formData.hometown }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="民&emsp;&emsp;族">
{{ 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="婚&emsp;&emsp;否">
{{ formData.marriage }}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="学&emsp;&emsp;历">
{{ formData.education }}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="工&emsp;&emsp;资">
{{ 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="职&emsp;&emsp;务">
{{ formData.position }}
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="职&emsp;&emsp;称">
{{ 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="手&ensp;机&ensp;号">
{{ 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>