GFRS-2561【前端】二次优化的需求,入司页面的优化,增加银行卡与担保人的校验,重构家庭关系页面--提交人:张齐

This commit is contained in:
zhangqi1
2021-07-23 10:05:44 +08:00
parent 501e1579bd
commit 5254c95ed0
5 changed files with 789 additions and 539 deletions

View File

@@ -1,5 +1,5 @@
import request from '@/assets/js/utils/request' import request from '@/assets/js/utils/request';
import getUrl from '@/assets/js/utils/get-url' import getUrl from '@/assets/js/utils/get-url';
//增员信息提交 //增员信息提交
export function agentInfowxSubmit(data) { export function agentInfowxSubmit(data) {
@@ -7,23 +7,25 @@ export function agentInfowxSubmit(data) {
url: getUrl('/agent/enter/share', 1), url: getUrl('/agent/enter/share', 1),
method: 'post', method: 'post',
data data
}) });
} }
//进度查询 //进度查询
export function processCheck(data) { export function processCheck(data) {
return request({ return request({
url: getUrl('/agent/enter/query', 1), url: getUrl('/agent/enter/query', 1),
method: 'post', method: 'post',
data data
}) });
} }
// 保存接口 // 保存接口
export function saveOrUpdateInfo(data) { export function saveOrUpdateInfo(data) {
return request({ return request({
url: getUrl('/agent/enter/saveOrUpdateInfo', 1), url: getUrl('/agent/enter/saveOrUpdateInfo', 1),
method: 'post', method: 'post',
data data
}) });
} }
export function getTokenForUserModel(data) { export function getTokenForUserModel(data) {
@@ -31,7 +33,7 @@ export function getTokenForUserModel(data) {
url: getUrl('/agent/enter/getTokenForAgent', 1), url: getUrl('/agent/enter/getTokenForAgent', 1),
method: 'get', method: 'get',
data data
}) });
} }
// //查询二次分享数据 // //查询二次分享数据
@@ -49,7 +51,7 @@ export function agentAll(data) {
url: getUrl('/agent/enter/queryAll', 1), url: getUrl('/agent/enter/queryAll', 1),
method: 'post', method: 'post',
data data
}) });
} }
// 健告查询 // 健告查询
@@ -58,7 +60,7 @@ export function getImpart(data) {
url: getUrl('/agent/enter/getImpart', 1), url: getUrl('/agent/enter/getImpart', 1),
method: 'post', method: 'post',
data data
}) });
} }
//查询签署协议信息 //查询签署协议信息
@@ -67,23 +69,25 @@ export function agreementQuery(data) {
url: getUrl('/agent/agreement/query', 1), url: getUrl('/agent/agreement/query', 1),
method: 'post', method: 'post',
data data
}) });
} }
//签署协议的下一步保存接口 //签署协议的下一步保存接口
export function signAgreement(data) { export function signAgreement(data) {
return request({ return request({
url: getUrl('/agent/agreement/signAgreement', 1), url: getUrl('/agent/agreement/signAgreement', 1),
method: 'post', method: 'post',
data data
}) });
} }
//保存成功获取工号 //保存成功获取工号
export function enterQuery(data) { export function enterQuery(data) {
return request({ return request({
url: getUrl('/agent/enter/query', 1), url: getUrl('/agent/enter/query', 1),
method: 'post', method: 'post',
data data
}) });
} }
//入司增员审批 //入司增员审批
@@ -92,7 +96,7 @@ export function agentAddApproval(data) {
url: getUrl('/agent/examineApprove/dispose', 1), url: getUrl('/agent/examineApprove/dispose', 1),
method: 'post', method: 'post',
data data
}) });
} }
// 入司撤销申请 // 入司撤销申请
@@ -101,7 +105,7 @@ export function revoke(data) {
url: getUrl('/agent/enter/revoke', 1), url: getUrl('/agent/enter/revoke', 1),
method: 'post', method: 'post',
data data
}) });
} }
// 执业证信息保存 // 执业证信息保存
@@ -110,7 +114,7 @@ export function saveCertificateInfo(data) {
url: getUrl('/agent/enter/uploadZgz', 1), url: getUrl('/agent/enter/uploadZgz', 1),
method: 'post', method: 'post',
data data
}) });
} }
// 联行号获取 // 联行号获取
@@ -119,5 +123,23 @@ export function getBankJoints(data) {
url: getUrl('/agent/enter/bankJoint', 1), url: getUrl('/agent/enter/bankJoint', 1),
method: 'post', method: 'post',
data data
}) });
}
// 校验银行号是否已经存在的接口
export function checkBankCodeUrl(data) {
return request({
url: getUrl('/agent/enter/checkBankCode', 1),
method: 'post',
data
});
}
// 校验是否已经是担保人的接口
export function checkGuarantorUrl(data) {
return request({
url: getUrl('/agent/enter/checkGuarantor ', 1),
method: 'post',
data
});
} }

View File

@@ -193,7 +193,7 @@ Validator.extend('workYears', {
}) })
//最大长度120字符 //最大长度120字符
Validator.extend('max120', { Validator.extend('max120', {
getMessage: () => '输入内容不得超过120字符', getMessage: () => '输入内容不得超过120字符',
validate: value => { validate: value => {
return value.length < 121 return value.length < 121
} }

View File

@@ -1,92 +1,130 @@
<template> <template>
<div class="insured-info-container pb50"> <div class='insured-info-container pb50'>
<!-- 基本信息 --> <!-- 基本信息 -->
<van-cell-group> <van-cell-group>
<RsTop :active="['1', '2', '3']"></RsTop> <RsTop :active="['1', '2', '3']"></RsTop>
<p class="fs15 fwb pl10 pv12">家庭情况</p> <p class='fs15 fwb pl10 pv12'>家庭情况</p>
<!-- start --> <!-- start -->
<div v-for="(item, i) in userInfo" :key="i"> <van-checkbox-group v-model='checkedRelationshipList'>
<p class="mv8 p8 text-right bg-gray" v-show="i != '0'"><van-icon class="v-middle" @click="deletelist(i)" name="delete" /></p> <div v-for='(item, i) in userInfo' :key='i'>
<van-field
:value="item.relationType | idToText('relationType')"
v-validate="'required'"
readonly
label="关系"
name="关系"
right-icon="arrow"
placeholder="请选择"
@click="toSelect('1', i)"
required
/>
<div v-if="userInfo[i].relationType != '3'">
<van-field label="姓名" type="text" name="姓名" placeholder="请输入" v-validate="'required|name'" clearable v-model="item.name" required />
<select-radio :radios="sexRadio" label="性别" name="性别" v-validate="'required'" required :value.sync="item.sex"></select-radio>
<van-field <van-field
:value="item.idType | idToText('rsIdType')" :value="item.relationType | idToText('agentEenterBasicFamilyRelationType')"
v-validate="'required'" v-validate="'required'"
readonly readonly
label="证件类型" label='关系'
name="证件类型" name='关系'
right-icon="arrow" right-icon='arrow'
placeholder="请选择" placeholder='请选择'
@click="toSelect('2', i)" :required='!!item.requiredType'
required :disabled='!item.requiredType'
/> />
<van-field <van-field
label="证件号码" label='姓名'
type="text" type='name'
name="证件号码" name='姓名'
placeholder="请输入" placeholder='请输入'
v-validate='{ required: !!item.requiredType, name: true }'
clearable clearable
v-model="item.idNo" v-model='item.name'
v-validate="'required'" :required='!!item.requiredType'
required :disabled='!item.requiredType'
maxlength="18" />
<select-radio
:value.sync='item.sex'
:radios='sexRadio'
label='性别'
name='性别'
v-validate='{ required: !!item.requiredType }'
:required='!!item.requiredType'
:disabled='!item.requiredType'
></select-radio>
<van-field
:value="item.idType | idToText('rsIdType')"
readonly
label='证件类型'
name='证件类型'
right-icon='arrow'
placeholder='请选择'
@click="toSelect('2', i, item)"
v-validate='{ required: !!item.requiredType }'
:required='!!item.requiredType'
:disabled='!item.requiredType'
/>
<van-field
label='证件号码'
type='text'
name='证件号码'
placeholder='请输入'
clearable
v-model='item.idNo'
v-validate='{ required: !!item.requiredType }'
:required='!!item.requiredType'
:disabled='!item.requiredType'
maxlength='18'
/> />
<FieldDatePicter <FieldDatePicter
v-validate="'required'" label='出生日期'
label="出生日期" name='出生日期'
name="出生日期" :value.sync='item.birthday'
:value.sync="item.birthday" type='date'
type="date" :flag='true'
:flag="true" ref='birthday'
ref="birthday" v-validate='{ required: !!item.requiredType }'
required :required='!!item.requiredType'
:disabled='!item.requiredType'
></FieldDatePicter> ></FieldDatePicter>
<van-field <van-field
v-model="item.mobile" v-model='item.mobile'
label="联系电话" label='联系电话'
name="联系电话" name='联系电话'
placeholder="请输入" placeholder='请输入'
v-validate="'required|mobile'" type='mobile'
maxlength="11" v-validate='{ required: !!item.requiredType, mobile: true }'
required maxlength='11'
:required='!!item.requiredType'
:disabled='!item.requiredType'
clearable clearable
/> />
<p class='mv8 p8 bg-gray'>
<van-checkbox :name='i' v-show="item.relationType != '0'" @click='notHaveImmediateFamilyFunc(item,i)'
checked-color='#ee0a24'>无此直系亲属
</van-checkbox>
</p>
</div> </div>
</van-checkbox-group>
<div class='add-btn mt20 pb20 text-center p15 c-gray-base' @click='add'>+
新增
</div> </div>
<div v-if="userInfo[0].relationType != '3'" class="add-btn mt20 pb20 text-center p15 c-gray-base" @click="add">+ 新增</div>
<!-- end --> <!-- end -->
<div class="flex justify-content-s bottom-btn bg-white"> <div class='flex justify-content-s bottom-btn bg-white'>
<van-button class=" bottom0 left0" square plain type="danger" v-no-more-click="1000" @click="goBack" size="large">上一步</van-button> <van-button class=' bottom0 left0' square plain type='danger' v-no-more-click='1000' @click='goBack'
<van-button class=" bottom0 left0" square type="danger" size="large" @click="nextStep" v-no-more-click="1000">一步</van-button> size='large'>一步
</van-button>
<van-button class=' bottom0 left0' square type='danger' size='large' @click='nextStep' v-no-more-click='1000'>
下一步
</van-button>
</div> </div>
</van-cell-group> </van-cell-group>
<!-- 字段选择 --> <!-- 字段选择 -->
<van-popup v-model="popupShow" position="bottom"> <van-popup v-model='popupShow' position='bottom'>
<van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false" /> <van-picker show-toolbar :columns='columns' @confirm='onConfirm' @cancel='popupShow = false' />
</van-popup> </van-popup>
</div> </div>
</template> </template>
<script> <script>
import { Field, CellGroup, Button, col, popup, picker, Dialog } from 'vant' import { Field, CellGroup, Button, col, popup, picker, Dialog, Checkbox, CheckboxGroup } from 'vant';
import SelectRadio from '@/components/ebiz/SelectRadio' import SelectRadio from '@/components/ebiz/SelectRadio';
import FieldDatePicter from '@/components/ebiz/FieldDatePicter' import FieldDatePicter from '@/components/ebiz/FieldDatePicter';
import DataDictionary from '@/assets/js/utils/data-dictionary' import DataDictionary from '@/assets/js/utils/data-dictionary';
import RsTop from '@/components/ebiz/agentEenter/RsTop' import RsTop from '@/components/ebiz/agentEenter/RsTop';
import idNoCheck from '@/assets/js/utils/idNoCheck' import idNoCheck from '@/assets/js/utils/idNoCheck';
import beforeDate from '@/assets/js/utils/getBeforeDate.js' import beforeDate from '@/assets/js/utils/getBeforeDate.js';
import { saveOrUpdateInfo, agentAll } from '@/api/ebiz/agentEenter/agentEenter' import { saveOrUpdateInfo, agentAll } from '@/api/ebiz/agentEenter/agentEenter';
// 是否存在亲属关系的枚举值
const immediateFamilyEnum = {
existence: 1, // 存在亲属关系
nonExistent: 0 // 不存在亲属关系
};
export default { export default {
name: 'AgentEenterBasicFamily', name: 'AgentEenterBasicFamily',
components: { components: {
@@ -98,9 +136,12 @@ export default {
[col.name]: col, [col.name]: col,
[popup.name]: popup, [popup.name]: popup,
[picker.name]: picker, [picker.name]: picker,
[RsTop.name]: RsTop [RsTop.name]: RsTop,
[Checkbox.name]: Checkbox,
[CheckboxGroup.name]: CheckboxGroup
}, },
data() { data() {
return { return {
popupShow: false, popupShow: false,
enterIndex: '', enterIndex: '',
@@ -108,14 +149,90 @@ export default {
columns: [], columns: [],
userInfo: [ userInfo: [
{ {
relationType: '', relationType: '', // 关系
name: '', // 姓名
sex: '0', // 性别(枚举值)
idType: '', // 证件类型(枚举值)
idNo: '', // 证件号码
birthday: '', // 出生日期
mobile: '' // 联系方式
}
],
// 定义当用户基本信息中婚姻状态选择的是已婚的情况时的数据格式
userInfoMarried: [
{
relationType: '0',
name: '', name: '',
sex: '0', sex: '0',
idType: '', idType: '',
idNo: '', idNo: '',
birthday: '',
mobile: '', mobile: '',
birthday: '' requiredType: immediateFamilyEnum.existence
} }, // 配偶
{
relationType: '1',
name: '',
sex: '0',
idType: '',
idNo: '',
birthday: '',
mobile: '',
requiredType: immediateFamilyEnum.existence
}, // 父亲
{
relationType: '2',
name: '',
sex: '0',
idType: '',
idNo: '',
birthday: '',
mobile: '',
requiredType: immediateFamilyEnum.existence
}, // 母亲
{
relationType: '3',
name: '',
sex: '0',
idType: '',
idNo: '',
birthday: '',
mobile: '',
requiredType: immediateFamilyEnum.existence
} // 子女
],
// 定义当用户基本信息中婚姻状态选择的是非已婚的情况时的数据格式
userInfoNotMarried: [
{
relationType: '1',
name: '',
sex: '0',
idType: '',
idNo: '',
birthday: '',
mobile: '',
requiredType: immediateFamilyEnum.existence
}, // 父亲
{
relationType: '2',
name: '',
sex: '0',
idType: '',
idNo: '',
birthday: '',
mobile: '',
requiredType: immediateFamilyEnum.existence
}, // 母亲
{
relationType: '3',
name: '',
sex: '0',
idType: '',
idNo: '',
birthday: '',
mobile: '',
requiredType: immediateFamilyEnum.existence
} // 子女
], ],
sexRadio: [ sexRadio: [
{ {
@@ -135,20 +252,21 @@ export default {
twPass: true, twPass: true,
gtFlag1: true, gtFlag1: true,
gtFlag2: true, gtFlag2: true,
currentTime: beforeDate.getBeforeDays(1) currentTime: beforeDate.getBeforeDays(1),
} checkedRelationshipList: [] // 定义一个数组集合,储存当前是哪个对象勾选了‘无此亲属关系’选项
};
}, },
mounted() { mounted() {
Dialog.alert({ Dialog.alert({
message: '请如实填写下列各项内容,直系亲属为本人父母、子女或配偶,其余亲属不属于直系亲属。如有不实,后果自负。' message: '请如实填写下列各项内容,直系亲属为本人父母、子女或配偶,其余亲属不属于直系亲属。如有不实,后果自负。'
}).then(() => { }).then(() => {
this.agentAll() this.agentAll();
}) });
document.body.style.backgroundColor = '#fff' document.body.style.backgroundColor = '#fff';
}, },
beforeRouteLeave(to, from, next) { beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = '' document.body.style.backgroundColor = '';
next() next();
}, },
methods: { methods: {
goBack() { goBack() {
@@ -164,69 +282,87 @@ export default {
index: -1, index: -1,
path: '/agentEenter/AgentEnterGuarantor' path: '/agentEenter/AgentEnterGuarantor'
} }
}) });
}, },
//信息返显 //信息返显
agentAll() { agentAll() {
let that = this let that = this;
that.$toast.loading({ that.$toast.loading({
duration: 0, // 持续展示 toast duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击 forbidClick: true, // 禁用背景点击
loadingType: 'spinner', loadingType: 'spinner',
message: '加载中……' message: '加载中……'
}) });
let data = {} let data = {};
agentAll(data).then(res => { agentAll(data).then(res => {
if (res.result == '0') { if (res.result == '0') {
localStorage.removeItem('marriageEnumInfo');
localStorage.setItem('marriageEnumInfo', res.content.ebizEnterCustomerDto.marriage);
if (res.content.ebizRelationDtoLst.length != 0) { if (res.content.ebizRelationDtoLst.length != 0) {
let result = res.content.ebizRelationDtoLst let result = res.content.ebizRelationDtoLst;
if (result) { if (result) {
// 重置情况变量,防止数据有缓存
that.checkedRelationshipList = [];
result.map(item => { result.map(item => {
delete item.id delete item.id;
delete item.baseId delete item.baseId;
delete item.createdDate delete item.createdDate;
delete item.createdUser delete item.createdUser;
delete item.isDelete delete item.isDelete;
delete item.modifiedDate delete item.modifiedDate;
delete item.modifiedUser delete item.modifiedUser;
}) // 判断数据中的checkedIndex属性是否有对应数据
that.userInfo = result // 如果有数据,则获取数据存储到储存当前是哪个对象勾选了‘无此亲属关系’选项的集合中,用于回显勾选了‘无此亲属关系’的选项
if (item.checkedIndex != null) {
that.checkedRelationshipList.push(item.checkedIndex);
}
});
that.userInfo = result;
}
} else {
that.userInfo = [];
// 根据基本信息中‘婚姻状态’的不同,赋值不同的数据
if (res.content.ebizEnterCustomerDto.marriage == '5') {
that.userInfo = that.userInfoMarried;
} else {
that.userInfo = that.userInfoNotMarried;
} }
} }
} }
}) });
}, },
toSelect(pickerType, index, valueKey) {
//pickerType 1、证件类型 2、民族 3、健康状况 4 婚姻状况 5 政治面貌 /**
;[this.popupShow, this.pickerType] = [true, pickerType] * @Description: 当选择‘证件类型’与‘出生日期’时,触发的方法
if (valueKey) this.valueKey = valueKey * @params: pickerType-- 触发此方法的类型(如,是当选择‘证件类型’时触发的方法,还是当选择‘出生日期’时触发的方法)
this.enterIndex = index * @params: index-- 当期部分在所有数据中的下标索引值
if (pickerType == '1') { * @params: data-- 当前部分的数据对象
this.columns = DataDictionary.relationType * @author:zhangqi
} * @Date:2021-07-21
if (pickerType == '2') { */
this.columns = DataDictionary.rsIdType toSelect(pickerType, index, data) {
if (data.requiredType) {
//pickerType 1、证件类型 2、民族 3、健康状况 4 婚姻状况 5 政治面貌
[this.popupShow, this.pickerType] = [true, pickerType];
this.enterIndex = index;
if (pickerType == '1') {
this.columns = DataDictionary.agentEenterBasicFamilyRelationType;
}
if (pickerType == '2') {
this.columns = DataDictionary.rsIdType;
}
} else {
return false;
} }
}, },
onConfirm(value) { onConfirm(value) {
this.popupShow = false this.popupShow = false;
if (this.pickerType == '1') { if (this.pickerType == '1') {
this.userInfo[this.enterIndex].relationType = value.id this.userInfo[this.enterIndex].relationType = value.id;
if (value.id == '3') {
//如果家庭关系选择无,则页面其他信息不需要填不需要显示
Dialog.alert({
message: '如无直系亲属(父母、配偶、子女),方可选关系为无。'
}).then(() => {
this.userInfo.length = 1
for (let key in this.userInfo[0]) {
this.userInfo[0][key] = ''
}
this.$set(this.userInfo[0], 'relationType', '3')
})
}
} }
if (this.pickerType == '2') { if (this.pickerType == '2') {
this.userInfo[this.enterIndex].idType = value.id this.userInfo[this.enterIndex].idType = value.id;
} }
}, },
// 下一步 // 下一步
@@ -234,105 +370,63 @@ export default {
//表单校验, 成功跳转 //表单校验, 成功跳转
this.$validator.validate().then(valid => { this.$validator.validate().then(valid => {
if (true === valid) { if (true === valid) {
// console.log(this.userInfo)
this.userInfo.map(item => { this.userInfo.map(item => {
if (item.idType == '1') { if (item.idType == '1') {
//身份证 //身份证
console.log('证件类型是身份证') console.log('证件类型是身份证');
// 证件号码规则校验 // 证件号码规则校验
if (!idNoCheck.isIdno(item.idNo)) { if (!idNoCheck.isIdno(item.idNo)) {
this.idCardFlag = false this.idCardFlag = false;
} else { } else {
this.idCardFlag = true this.idCardFlag = true;
} }
} /*else if (item.idType == '2') { }
//户口本 });
console.log('户口本') // 循环存储勾选了无此亲属关系选项的数组userInfo的集合所对应的对象中添加一个新的字段用于回显勾选了无此亲属关系的选项
if (item.idNo.length != 18) { this.checkedRelationshipList.forEach(item => {
this.bookletFlag = false this.userInfo[item].checkedIndex = item;
} else { });
this.bookletFlag = true
}
} else if (item.idType == '3') {
//出生证
console.log('出生证')
if (item.idNo.length < 3) {
this.birthFlag = false
} else {
this.birthFlag = true
}
} else if (item.idType == '4') {
//护照
console.log('证件类型是护照')
if (item.idNo.length < 3) {
this.passportFlag = false
} else {
this.passportFlag = true
}
//证件是港澳居民通行证
} else if (item.idType == '5') {
console.log('证件类型是港澳居民通行证')
if (item.idNo.length != 9) {
this.gatPass = false
this.gtFlag1 = false
this.gtFlag2 = false
} else if (!/^(H|M)[0-9]{8}$/.test(item.idNo)) {
this.gatPass = false
this.gtFlag1 = true
} else {
this.gatPass = true
}
//证件是台湾居民通行证
} else if (item.idType == '6') {
console.log('证件类型是台湾居民通行证')
if (item.idNo.length != 8) {
this.twPass = false
} else {
this.twPass = true
}
}*/
})
if (this.idCardFlag && this.bookletFlag && this.birthFlag && this.passportFlag && this.gatPass && this.twPass) { if (this.idCardFlag && this.bookletFlag && this.birthFlag && this.passportFlag && this.gatPass && this.twPass) {
this.save() this.save();
} else { } else {
if (!this.idCardFlag) { if (!this.idCardFlag) {
this.$toast('您填写的证件号码有误') this.$toast('您填写的证件号码有误');
} else if (!this.bookletFlag) { } else if (!this.bookletFlag) {
this.$toast('户口本的证件号码长度应等于18位') this.$toast('户口本的证件号码长度应等于18位');
} else if (!this.birthFlag) { } else if (!this.birthFlag) {
this.$toast('出生证须大于等于3个字符') this.$toast('出生证须大于等于3个字符');
} else if (!this.passportFlag) { } else if (!this.passportFlag) {
this.$toast('护照须大于等于3个字符') this.$toast('护照须大于等于3个字符');
} else if (!this.gatPass) { } else if (!this.gatPass) {
if (!this.gtFlag1) { if (!this.gtFlag1) {
this.$toast('证件类型为港澳居民通行证的证件号码须为9位') this.$toast('证件类型为港澳居民通行证的证件号码须为9位');
} else if (!this.gtFlag2) { } else if (!this.gtFlag2) {
this.$toast('证件类型为港澳居民通行证的,证件号码首位字母为"H"/"M",证件号码第2位至第9位为阿拉伯数字') this.$toast('证件类型为港澳居民通行证的,证件号码首位字母为"H"/"M",证件号码第2位至第9位为阿拉伯数字');
} }
} else if (!this.twPass) { } else if (!this.twPass) {
this.$toast('证件类型为台湾居民通行证的证件号码须为8位数字') this.$toast('证件类型为台湾居民通行证的证件号码须为8位数字');
} }
} }
} else { } else {
this.$toast(this.$validator.errors.all()[0]) this.$toast(this.$validator.errors.all()[0]);
} }
}) });
}, },
save() { save() {
let that = this let that = this;
that.$toast.loading({ that.$toast.loading({
duration: 0, // 持续展示 toast duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击 forbidClick: true, // 禁用背景点击
loadingType: 'spinner', loadingType: 'spinner',
message: '加载中……' message: '加载中……'
}) });
let params = { let params = {
entryType: 'CUSTOMER_RELATION', entryType: 'CUSTOMER_RELATION',
ebizRelationDtoLst: {} ebizRelationDtoLst: {}
} };
params.ebizRelationDtoLst = that.userInfo params.ebizRelationDtoLst = that.userInfo;
saveOrUpdateInfo(params).then(res => { saveOrUpdateInfo(params).then(res => {
that.$toast.clear() that.$toast.clear();
if (res.result == '0') { if (res.result == '0') {
this.$jump({ this.$jump({
flag: 'h5', flag: 'h5',
@@ -342,35 +436,89 @@ export default {
routerInfo: { routerInfo: {
path: `/agentEenter/AgentEenterBasicImage` path: `/agentEenter/AgentEenterBasicImage`
} }
}) });
} else { } else {
this.$toast(res.resultMessage) this.$toast(res.resultMessage);
} }
}) });
}, },
// 删除
deletelist(i) { /**
this.userInfo.splice(i, 1) * @Description: 勾选‘无此直系亲属’选项时,执行的方法
* @Description: 判断当前的操作行为是勾选‘无此直系亲属’选项,还是将已经选中的‘无此直系亲属’选项进行取消勾选
* @params: 当前勾选项所对应的数据对象
* @author:zhangqi
* @Date:2021-07-21
*/
notHaveImmediateFamilyFunc(item) {
if (item.requiredType) {
// 当前requiredType属性为true时执行此操作要勾选无此直系亲属选项。表示不存在亲属关系勾选无此直系亲属选项时要将输入项重置
item.name = ''; // 将对应数据对象中的姓名设置为空
item.sex = 0; // 将对应数据对象中的性别设置为默认的‘男’
item.idType = ''; // 将对应数据对象中的证件类型设置为空
item.idNo = ''; // 将对应数据对象中的证件号码设置为空
item.birthday = ''; // 将对应数据对象中的出生日期设置为空
item.mobile = ''; // 将对应数据对象中的联系号码设置为空
item.requiredType = immediateFamilyEnum.nonExistent; // 将对应数据对象中的是否必填设置为false表示设置输入项为非必填
} else {
// 当前requiredType属性为false时执行此操作要将已经选中的无此直系亲属选项进行取消勾选表示存在亲属关系
item.name = ''; // 将对应数据对象中的姓名设置为空
item.sex = 0; // 将对应数据对象中的性别设置为默认的‘男’
item.idType = ''; // 将对应数据对象中的证件类型设置为空
item.idNo = ''; // 将对应数据对象中的证件号码设置为空
item.birthday = ''; // 将对应数据对象中的出生日期设置为空
item.mobile = ''; // 将对应数据对象中的联系号码设置为空
item.requiredType = immediateFamilyEnum.existence; // 将对应数据对象中的是否必填设置为true表示输入项都是要必填
}
}, },
// add新增
/**
* @Description: 点击页面底部,新增按钮执行的方法
* @author:zhangqi
* @Date:2021-07-21
*/
add() { add() {
this.userInfo.push({ sex: '0' }) this.userInfo.push({
relationType: '3', // 关系
name: '', // 姓名
sex: '0', // 性别
idType: '', // 证件类型的枚举
idNo: '', // 证件号码
birthday: '', // 出生日期
mobile: '', // 联系电话
requiredType: immediateFamilyEnum.existence // 是否必填
});
} }
} }
} };
</script> </script>
<style lang="scss" scoped> <style lang='scss' scoped>
.insured-info-container { .insured-info-container {
.referrerW { .referrerW {
/deep/.van-cell__title { /deep/ .van-cell__title {
width: 110px; width: 110px;
} }
} }
.add-btn { .add-btn {
width: 80%; width: 80%;
margin: 20px auto; margin: 20px auto;
border: 1px dashed #999; border: 1px dashed #999;
} }
.mv8 {
margin-top: unset !important;
margin-bottom: unset !important;
/deep/ .van-checkbox {
.van-checkbox__label {
color: #ff0000;
font-weight: bold;
font-size: 14px;
}
}
}
.bg-gray { .bg-gray {
background: #f1f2f4 !important; background: #f1f2f4 !important;
} }

View File

@@ -1,290 +1,302 @@
<template> <template>
<div class="insured-info-container pb50 "> <div class='insured-info-container pb50 '>
<!-- 基本信息 --> <!-- 基本信息 -->
<van-cell-group> <van-cell-group>
<RsTop :active="['1']"></RsTop> <RsTop :active="['1']"></RsTop>
<p style="border-bottom: 1px solid #ebedf0" class=" fs15 fwb pl10 pv12">基本信息</p> <p style='border-bottom: 1px solid #ebedf0' class=' fs15 fwb pl10 pv12'>基本信息</p>
<van-field v-model="userInfo.name" label="姓名" name="姓名" placeholder="请输入" v-validate="'required|name'" maxlength="6" required clearable /> <van-field v-model='userInfo.name' label='姓名' name='姓名' placeholder='请输入' v-validate="'required|name'"
<select-radio :radios="sexRadio" label="性别" name="性别" v-validate="'required'" required :value.sync="userInfo.sex"></select-radio> maxlength='6' required clearable />
<select-radio :radios='sexRadio' label='性别' name='性别' v-validate="'required'" required
:value.sync='userInfo.sex'></select-radio>
<FieldDatePicter <FieldDatePicter
v-validate="'required'" v-validate="'required'"
label="出生日期" label='出生日期'
name="出生日期" name='出生日期'
:value.sync="userInfo.birthday" :value.sync='userInfo.birthday'
type="date" type='date'
:flag="true" :flag='true'
@confirm="onDateConfirm($event, '2')" @confirm="onDateConfirm($event, '2')"
ref="birthday" ref='birthday'
:maxDate="maxDate" :maxDate='maxDate'
required required
></FieldDatePicter> ></FieldDatePicter>
<van-field <van-field
:value="userInfo.nativePlace | idToText('rsnativePlace')" :value="userInfo.nativePlace | idToText('rsnativePlace')"
label="籍贯" label='籍贯'
name="籍贯" name='籍贯'
v-validate="'required'" v-validate="'required'"
readonly readonly
right-icon="arrow" right-icon='arrow'
placeholder="请选择" placeholder='请选择'
@click="toSelect('14')" @click="toSelect('14')"
required required
/> />
<van-field <van-field
:value="userInfo.ethnic | idToText('nationType')" :value="userInfo.ethnic | idToText('nationType')"
label="民族" label='民族'
name="民族" name='民族'
v-validate="'required'" v-validate="'required'"
readonly readonly
right-icon="arrow" right-icon='arrow'
placeholder="请选择" placeholder='请选择'
@click="toSelect('1')" @click="toSelect('1')"
required required
/> />
<van-field <van-field
:value="userInfo.rgtAddress | idToText('rsnativePlace')" :value="userInfo.rgtAddress | idToText('rsnativePlace')"
label="户口所在地" label='户口所在地'
name="户口所在地" name='户口所在地'
v-validate="'required'" v-validate="'required'"
readonly readonly
right-icon="arrow" right-icon='arrow'
placeholder="请选择" placeholder='请选择'
@click="toSelect('10')" @click="toSelect('10')"
maxlength="20" maxlength='20'
required required
/> />
<van-field v-model="userInfo.title" label="职称" name="职称" placeholder="请输入" /> <van-field v-model='userInfo.title' label='职称' name='职称' placeholder='请输入' />
<van-field <van-field
:value="userInfo.marriage | idToText('rsmarriage')" :value="userInfo.marriage | idToText('rsmarriage')"
label="婚姻状况" label='婚姻状况'
name="婚姻状况" name='婚姻状况'
v-validate="'required'" v-validate="'required'"
readonly readonly
right-icon="arrow" right-icon='arrow'
placeholder="请选择" placeholder='请选择'
@click="toSelect('4')" @click="toSelect('4')"
required required
/> />
<van-field <van-field
:value="userInfo.political | idToText('rspoliticsStatus')" :value="userInfo.political | idToText('rspoliticsStatus')"
label="政治面貌" label='政治面貌'
name="政治面貌" name='政治面貌'
v-validate="'required'" v-validate="'required'"
readonly readonly
right-icon="arrow" right-icon='arrow'
placeholder="请选择" placeholder='请选择'
@click="toSelect('5')" @click="toSelect('5')"
required required
/> />
<van-field <van-field
:value="userInfo.degree | idToText('rsdegree')" :value="userInfo.degree | idToText('rsdegree')"
label="学历" label='学历'
name="学历" name='学历'
v-validate="'required'" v-validate="'required'"
readonly readonly
right-icon="arrow" right-icon='arrow'
placeholder="请选择" placeholder='请选择'
@click="toSelect('6')" @click="toSelect('6')"
required required
/> />
<van-field v-model="userInfo.school" label="毕业院校" name="毕业院校" placeholder="请输入" v-validate="'required'" clearable required /> <van-field v-model='userInfo.school' label='毕业院校' name='毕业院校' placeholder='请输入' v-validate="'required'" clearable
required />
<van-field <van-field
v-model="userInfo.discipline" v-model='userInfo.discipline'
label="所学专业" label='所学专业'
name="所学专业" name='所学专业'
placeholder="请输入" placeholder='请输入'
:required="isDegreeRequired(userInfo.degree) === 'required'" :required="isDegreeRequired(userInfo.degree) === 'required'"
v-validate="isDegreeRequired(userInfo.degree)" v-validate='isDegreeRequired(userInfo.degree)'
clearable clearable
/> />
<van-field v-model="userInfo.mobile" label="手机" name="手机" required readonly /> <van-field v-model='userInfo.mobile' label='手机' name='手机' required readonly />
<van-field :value="userInfo.idType | idToText('idType')" v-validate="'required'" label="证件类型" name="证件类型" required readonly /> <van-field :value="userInfo.idType | idToText('idType')" v-validate="'required'" label='证件类型' name='证件类型' required
<van-field v-model="userInfo.idNo" label="证件号码" readonly /> readonly />
<van-field v-model="userInfo.address" label="联系地址" name="联系地址" placeholder="请输入" v-validate="'required'" required clearable /> <van-field v-model='userInfo.idNo' label='证件号码' readonly />
<van-field v-model="userInfo.zip" label="邮政编码" name="邮政编码" placeholder="请输入" v-validate="'zipCode'" clearable /> <van-field v-model='userInfo.address' label='联系地址' name='联系地址' placeholder='请输入' v-validate="'required'" required
clearable />
<van-field v-model='userInfo.zip' label='邮政编码' name='邮政编码' placeholder='请输入' v-validate="'zipCode'" clearable />
<van-field <van-field
placeholder="请选择" placeholder='请选择'
@click="islistShow = true" @click='islistShow = true'
v-model="bankName" v-model='bankName'
label="开户银行" label='开户银行'
name="开户银行" name='开户银行'
v-validate="'required'" v-validate="'required'"
required required
readonly readonly
/> />
<van-field <van-field
v-model="areaName" v-model='areaName'
readonly readonly
label="开户地" label='开户地'
name="开户地" name='开户地'
required required
right-icon="arrow" right-icon='arrow'
placeholder="请选择" placeholder='请选择'
v-validate="'required'" v-validate="'required'"
@click="areaShow = true" @click='areaShow = true'
/> />
<van-field v-model="bankJoint" readonly label="网点名称" name="网点名称" right-icon="arrow" placeholder="请选择" @click="isBankListShow = true" /> <van-field v-model='bankJoint' readonly label='网点名称' name='网点名称' right-icon='arrow' placeholder='请选择'
<van-field v-model="userInfo.accountName" label="开户姓名" name="开户姓名" placeholder="请输入" v-validate="'required'" required clearable /> @click='isBankListShow = true' />
<van-field v-model='userInfo.accountName' label='开户姓名' name='开户姓名' placeholder='请输入' v-validate="'required'"
required clearable />
<van-field <van-field
v-model="userInfo.bankCode" v-model='userInfo.bankCode'
maxlength="19" maxlength='19'
label="银行卡号" label='银行卡号'
name="银行卡号" name='银行卡号'
placeholder="请输入" placeholder='请输入'
required required
clearable clearable
v-validate="'required|bankCard'" v-validate="'required|bankCard'"
> >
<van-button slot="button" size="small" type="danger" round @click="cardScanning('0')">银行卡扫描</van-button> <van-button slot='button' size='small' type='danger' round @click="cardScanning('0')">银行卡扫描</van-button>
</van-field> </van-field>
<van-field <van-field
v-model="bankCode" v-model='bankCode'
maxlength="19" maxlength='19'
label="确认银行卡号" label='确认银行卡号'
name="银行卡号" name='银行卡号'
placeholder="请再次输入银行卡号" placeholder='请再次输入银行卡号'
required required
clearable clearable
v-validate="'required|bankCard'" v-validate="'required|bankCard'"
> >
</van-field> </van-field>
<van-field <van-field
v-model="userInfo.perationPeriod" v-model='userInfo.perationPeriod'
type="digit" type='digit'
label="从业年限" label='从业年限'
name="从业年限" name='从业年限'
placeholder="请输入整数" placeholder='请输入整数'
v-validate="'onlyInteger'" v-validate="'onlyInteger'"
clearable clearable
/> />
<van-field v-model="userInfo.oldCompany" label="原工作单位" name="原工作单位" placeholder="请输入" required v-validate="'required'" clearable /> <van-field v-model='userInfo.oldCompany' label='原工作单位' name='原工作单位' placeholder='请输入' required
v-validate="'required'" clearable />
<van-field <van-field
:value="userInfo.oldOccupation | idToText('oldOccupation')" :value="userInfo.oldOccupation | idToText('oldOccupation')"
label="原职业" label='原职业'
name="原职业" name='原职业'
v-validate="'required'" v-validate="'required'"
readonly readonly
required required
right-icon="arrow" right-icon='arrow'
placeholder="请选择" placeholder='请选择'
@click="toSelect('11')" @click="toSelect('11')"
/> />
<van-field <van-field
:value="userInfo.sameTrade | idToText('rshealthCondition')" :value="userInfo.sameTrade | idToText('rshealthCondition')"
label="是否同业" label='是否同业'
name="是否同业" name='是否同业'
v-validate="'required'" v-validate="'required'"
readonly readonly
required required
right-icon="arrow" right-icon='arrow'
placeholder="请选择" placeholder='请选择'
@click="toSelect('3')" @click="toSelect('3')"
/> />
<van-field <van-field
:value="userInfo.nationality | idToText('rsnativeplace')" :value="userInfo.nationality | idToText('rsnativeplace')"
label="国籍/地区" label='国籍/地区'
name="国籍/地区" name='国籍/地区'
v-validate="'required'" v-validate="'required'"
readonly readonly
required required
right-icon="arrow" right-icon='arrow'
placeholder="请选择" placeholder='请选择'
@click="toSelect('12')" @click="toSelect('12')"
/> />
<van-field <van-field
:value="userInfo.foreigners | idToText('rshealthCondition')" :value="userInfo.foreigners | idToText('rshealthCondition')"
label="是否境外人员" label='是否境外人员'
name="是否境外人员" name='是否境外人员'
v-validate="'required'" v-validate="'required'"
readonly readonly
required required
right-icon="arrow" right-icon='arrow'
placeholder="请选择" placeholder='请选择'
@click="toSelect('15')" @click="toSelect('15')"
/> />
<van-field <van-field
:value="userInfo.applGrade | idToText('applGrade')" :value="userInfo.applGrade | idToText('applGrade')"
right-icon="arrow" right-icon='arrow'
placeholder="请选择" placeholder='请选择'
@click="toSelect('13')" @click="toSelect('13')"
label="拟聘职级" label='拟聘职级'
name="拟聘职级" name='拟聘职级'
readonly readonly
required required
v-validate="'required'" v-validate="'required'"
/> />
</van-cell-group> </van-cell-group>
<van-cell-group class="" :border="false"> <van-cell-group class='' :border='false'>
<p style=" border-bottom: 1px solid #ebedf0" class="fs15 fwb pl10 mt10 pv12">推荐人信息</p> <p style=' border-bottom: 1px solid #ebedf0' class='fs15 fwb pl10 mt10 pv12'>推荐人信息</p>
<van-field class="referrerW" v-model="ebiz_referrer.referCode" label="推荐人工号" name="推荐人工号" readonly /> <van-field class='referrerW' v-model='ebiz_referrer.referCode' label='推荐人工号' name='推荐人工号' readonly />
<van-field class="referrerW" v-model="ebiz_referrer.referName" label="推荐人姓名" name="推荐人姓名" readonly /> <van-field class='referrerW' v-model='ebiz_referrer.referName' label='推荐人姓名' name='推荐人姓名' readonly />
<van-field class="referrerW" v-model="ebiz_referrer.teamManger" label="营业组主管工号" name="营业组主管工号" readonly /> <van-field class='referrerW' v-model='ebiz_referrer.teamManger' label='营业组主管工号' name='营业组主管工号' readonly />
<van-field class="referrerW" v-model="ebiz_referrer.teamMangerName" label="营业组主管姓名" name="营业组主管姓名" readonly /> <van-field class='referrerW' v-model='ebiz_referrer.teamMangerName' label='营业组主管姓名' name='营业组主管姓名' readonly />
<van-field class="referrerW" v-model="ebiz_referrer.officeManger" label="营业部经理工号" name="营业部经理工号" readonly /> <van-field class='referrerW' v-model='ebiz_referrer.officeManger' label='营业部经理工号' name='营业部经理工号' readonly />
<van-field class="referrerW" v-model="ebiz_referrer.officeMangerName" label="营业部经理姓名" name="营业部经理姓名" readonly /> <van-field class='referrerW' v-model='ebiz_referrer.officeMangerName' label='营业部经理姓名' name='营业部经理姓名' readonly />
<van-field class="referrerW" v-model="ebiz_referrer.areaManger" label=" 总监工号" name=" 总监工号" readonly /> <van-field class='referrerW' v-model='ebiz_referrer.areaManger' label=' 总监工号' name=' 总监工号' readonly />
<van-field class="referrerW" v-model="ebiz_referrer.areaMangerName" label="总监姓名" name="总监姓名" readonly /> <van-field class='referrerW' v-model='ebiz_referrer.areaMangerName' label='总监姓名' name='总监姓名' readonly />
</van-cell-group> </van-cell-group>
<van-button type="danger" class="bottom-btn" @click="nextStep" v-no-more-click="1000">下一步</van-button> <van-button type='danger' class='bottom-btn' @click='nextStep' v-no-more-click='1000'>下一步</van-button>
<!-- 字段选择 --> <!-- 字段选择 -->
<van-popup v-model="popupShow" position="bottom"> <van-popup v-model='popupShow' position='bottom'>
<van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false" /> <van-picker show-toolbar :columns='columns' @confirm='onConfirm' @cancel='popupShow = false' />
</van-popup> </van-popup>
<!-- 地区选择 --> <!-- 地区选择 -->
<van-popup v-model="areaShow" position="bottom"> <van-popup v-model='areaShow' position='bottom'>
<van-area :area-list="areaList" :columns-num="2" value="110101" @confirm="setBankArea($event)" @cancel="areaShow = false" /> <van-area :area-list='areaList' :columns-num='2' value='110101' @confirm='setBankArea($event)'
@cancel='areaShow = false' />
</van-popup> </van-popup>
<!-- 家庭地址选择 --> <!-- 家庭地址选择 -->
<van-popup v-model="homeShow" position="bottom"> <van-popup v-model='homeShow' position='bottom'>
<van-area :area-list="areaList" value="110101" @confirm="sureArea($event, '2')" @cancel="homeShow = false" /> <van-area :area-list='areaList' value='110101' @confirm="sureArea($event, '2')" @cancel='homeShow = false' />
</van-popup> </van-popup>
<!-- 户籍选择 --> <!-- 户籍选择 -->
<van-popup v-model="censusShow" position="bottom"> <van-popup v-model='censusShow' position='bottom'>
<van-area :area-list="areaList" value="110101" :columns-num="2" @confirm="sureArea($event, '3')" @cancel="censusShow = false" /> <van-area :area-list='areaList' value='110101' :columns-num='2' @confirm="sureArea($event, '3')"
@cancel='censusShow = false' />
</van-popup> </van-popup>
<!--身份证扫描 --> <!--身份证扫描 -->
<van-popup v-model="isScan" position="bottom"> <van-popup v-model='isScan' position='bottom'>
<IdentityCardScan @getScanInfo="getIdentityInfo"></IdentityCardScan> <IdentityCardScan @getScanInfo='getIdentityInfo'></IdentityCardScan>
</van-popup> </van-popup>
<!--身份证扫描 --> <!--身份证扫描 -->
<van-popup v-model="isScan" style="height:100vh" position="bottom"> <van-popup v-model='isScan' style='height:100vh' position='bottom'>
<BankCardScan :scanShow="isScan" @getScanInfo="getBankCardInfo" :clear="isClear"></BankCardScan> <BankCardScan :scanShow='isScan' @getScanInfo='getBankCardInfo' :clear='isClear'></BankCardScan>
</van-popup> </van-popup>
<!-- 二次输入银行卡号校验弹出 --> <!-- 二次输入银行卡号校验弹出 -->
<van-dialog id="card" v-model="checkShow" show-cancel-button @confirm="bankCodeConfirm(bankCode)"> <van-dialog id='card' v-model='checkShow' show-cancel-button @confirm='bankCodeConfirm(bankCode)'>
<p class="p10 fs16 text-center green mt5">请再次输入银行卡号</p> <p class='p10 fs16 text-center green mt5'>请再次输入银行卡号</p>
<van-cell-group class="flex align-items-c pr5 mb15"> <van-cell-group class='flex align-items-c pr5 mb15'>
<van-field label="银行卡号:" name="银行卡号" maxlength="19" v-model="bankCode" clearable placeholder="请输入银行卡号" required /> <van-field label='银行卡号:' name='银行卡号' maxlength='19' v-model='bankCode' clearable placeholder='请输入银行卡号'
required />
</van-cell-group> </van-cell-group>
<p class="fs14 mt5 ml5">是否确认提交一旦提交在人管审批之前无法再次进行修改</p> <p class='fs14 mt5 ml5'>是否确认提交一旦提交在人管审批之前无法再次进行修改</p>
</van-dialog> </van-dialog>
<!--开户银行选择--> <!--开户银行选择-->
<SelectBankName :inputShow="inputShow" :listShow.sync="islistShow" :operateType="'enter_bank_type'" @getBank="getBank"></SelectBankName> <SelectBankName :inputShow='inputShow' :listShow.sync='islistShow' :operateType="'enter_bank_type'"
@getBank='getBank'></SelectBankName>
<!-- 联行号选择 --> <!-- 联行号选择 -->
<van-popup v-model="isBankListShow" position="bottom"> <van-popup v-model='isBankListShow' position='bottom'>
<van-picker show-toolbar :columns="bankJointNames" @confirm="setBankNum" @cancel="isBankListShow = false" /> <van-picker show-toolbar :columns='bankJointNames' @confirm='setBankNum' @cancel='isBankListShow = false' />
</van-popup> </van-popup>
</div> </div>
</template> </template>
<script> <script>
import { Field, CellGroup, Checkbox, Popup, Picker, Area, RadioGroup, Radio, List, Cell } from 'vant' import { Field, CellGroup, Checkbox, Popup, Picker, Area, RadioGroup, Radio, List, Cell, Dialog } from 'vant';
import SelectRadio from '@/components/ebiz/SelectRadio' import SelectRadio from '@/components/ebiz/SelectRadio';
import FieldDatePicter from '@/components/ebiz/FieldDatePicter' import FieldDatePicter from '@/components/ebiz/FieldDatePicter';
import OccupationPicker from '@/components/ebiz/occipation/OccupationPicker' import OccupationPicker from '@/components/ebiz/occipation/OccupationPicker';
import CustomerPicker from '@/components/ebiz/customer/CustomerPicker' import CustomerPicker from '@/components/ebiz/customer/CustomerPicker';
import BankCardScan from '@/components/ebiz/sale/BankCardScan' import BankCardScan from '@/components/ebiz/sale/BankCardScan';
import areaList from '@/assets/js/utils/area' import areaList from '@/assets/js/utils/area';
import idNoCheck from '@/assets/js/utils/idNoCheck' import idNoCheck from '@/assets/js/utils/idNoCheck';
import IdentityCardScan from '@/components/ebiz/sale/IdentityCardScan' import IdentityCardScan from '@/components/ebiz/sale/IdentityCardScan';
import beforeDate from '@/assets/js/utils/getBeforeDate.js' import beforeDate from '@/assets/js/utils/getBeforeDate.js';
import RsTop from '@/components/ebiz/agentEenter/RsTop' import RsTop from '@/components/ebiz/agentEenter/RsTop';
import { saveOrUpdateInfo, agentAll, getBankJoints } from '@/api/ebiz/agentEenter/agentEenter.js' import { saveOrUpdateInfo, agentAll, getBankJoints, checkBankCodeUrl } from '@/api/ebiz/agentEenter/agentEenter.js';
import { idToData } from '@/views/ebiz/customer/js/verification' import { idToData } from '@/views/ebiz/customer/js/verification';
import SelectBankName from '@/components/ebiz/account/SelectBankName' import SelectBankName from '@/components/ebiz/account/SelectBankName';
import { getChildBank, getBankName } from '@/components/ebiz/account/getBankName' import { getChildBank, getBankName } from '@/components/ebiz/account/getBankName';
import { getBankList } from '@/api/ebiz/sale/sale' import { getBankList } from '@/api/ebiz/sale/sale';
import MinXin from '@/components/ebiz/account/mixins' import MinXin from '@/components/ebiz/account/mixins';
import { import {
selectComp, selectComp,
chooseOccupation, chooseOccupation,
@@ -296,7 +308,7 @@ import {
getIdentityInfo, getIdentityInfo,
getCode, getCode,
effectiveDataTypeChange effectiveDataTypeChange
} from './js/methods' } from './js/methods';
export default { export default {
name: 'insuredInfo', name: 'insuredInfo',
@@ -429,214 +441,227 @@ export default {
areaCode: '--', areaCode: '--',
areaName: '--' areaName: '--'
} }
} };
}, },
computed: { computed: {
bankJointNames() { bankJointNames() {
const names = [] const names = [];
this.bankJointsList.forEach(item => { this.bankJointsList.forEach(item => {
names.push(item.banknames) names.push(item.banknames);
}) });
return names return names;
} }
}, },
created() { created() {
this.getBankList() this.getBankList();
}, },
mounted() { mounted() {
// 筛选按钮的点击事件 // 筛选按钮的点击事件
window.appCallBack = this.appCallBack window.appCallBack = this.appCallBack;
this.agentAll() this.agentAll();
}, },
watch: { watch: {
code() { code() {
if (this.userInfo.bankCity) { if (this.userInfo.bankCity) {
this.queryBankJoints() this.queryBankJoints();
} }
} }
}, },
methods: { methods: {
changeMarriage() {
debugger
},
isDegreeRequired(degree) { isDegreeRequired(degree) {
degree = Number(degree) degree = Number(degree);
if (degree === 11 || degree === 10 || degree <= 4) return 'required' if (degree === 11 || degree === 10 || degree <= 4) return 'required';
return '' return '';
}, },
setBankNum(bankJoint) { setBankNum(bankJoint) {
this.isBankListShow = false this.isBankListShow = false;
this.bankJoint = bankJoint this.bankJoint = bankJoint;
for (let name of this.bankJointsList) { for (let name of this.bankJointsList) {
if (name.banknames === bankJoint) { if (name.banknames === bankJoint) {
this.userInfo.bankJoint = name.bankjoint this.userInfo.bankJoint = name.bankjoint;
return return;
} }
} }
}, },
setBankArea(area) { setBankArea(area) {
const [province, city] = [...area] const [province, city] = [...area];
this.userInfo.bankAddress = `${province.name}-${city.name}` this.userInfo.bankAddress = `${province.name}-${city.name}`;
this.userInfo.bankProvince = province.code this.userInfo.bankProvince = province.code;
this.userInfo.bankCity = city.code.slice(0, 4) this.userInfo.bankCity = city.code.slice(0, 4);
this.areaName = this.userInfo.bankAddress this.areaName = this.userInfo.bankAddress;
this.areaShow = false this.areaShow = false;
this.queryBankJoints() this.queryBankJoints();
}, },
async queryBankJoints() { async queryBankJoints() {
let param = { let param = {
bankcode: this.code, bankcode: this.code,
citycode: this.userInfo.bankCity citycode: this.userInfo.bankCity
} };
this.bankJointsList.splice(0) this.bankJointsList.splice(0);
let res = await getBankJoints(param) let res = await getBankJoints(param);
if (res.result === '0') { if (res.result === '0') {
if (!res.content.length) { if (!res.content.length) {
param.citycode = this.userInfo.bankProvince.slice(0, 4) param.citycode = this.userInfo.bankProvince.slice(0, 4);
let res = await getBankJoints(param) let res = await getBankJoints(param);
if (res.result === '0') { if (res.result === '0') {
this.bankJointsList.push(...res.content) this.bankJointsList.push(...res.content);
} else { } else {
this.$toast(res.resultMessage) this.$toast(res.resultMessage);
} }
} else { } else {
this.bankJointsList.push(...res.content) this.bankJointsList.push(...res.content);
} }
} else { } else {
this.$toast(res.resultMessage) this.$toast(res.resultMessage);
} }
}, },
// 获取银行卡列表 // 获取银行卡列表
getBankList() { getBankList() {
let data = { let data = {
operateType: 'enter_bank_type' operateType: 'enter_bank_type'
} };
getBankList(data).then(res => { getBankList(data).then(res => {
if (res.result == '0') { if (res.result == '0') {
this.bankList = res.content this.bankList = res.content;
} else { } else {
this.$toast(res.resultMessage) this.$toast(res.resultMessage);
} }
}) });
}, },
getBank(bank) { getBank(bank) {
//获取银行名称 //获取银行名称
this.bankName = bank.bankName ? bank.bankName.trim() : '' this.bankName = bank.bankName ? bank.bankName.trim() : '';
this.code = bank.code ? bank.code.trim() : '' this.code = bank.code ? bank.code.trim() : '';
this.$set(this.userInfo, 'bankName', bank.code ? bank.code.trim() : '') this.$set(this.userInfo, 'bankName', bank.code ? bank.code.trim() : '');
}, },
//获取推荐人信息 //获取推荐人信息
agentAll() { agentAll() {
let data = {} let data = {};
this.$toast.loading({ this.$toast.loading({
duration: 0, // 持续展示 toast duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击 forbidClick: true, // 禁用背景点击
loadingType: 'spinner', loadingType: 'spinner',
message: '加载中……' message: '加载中……'
}) });
agentAll(data).then(res => { agentAll(data).then(res => {
if (res.result == '0') { if (res.result == '0') {
this.$toast.clear() this.$toast.clear();
this.userInfo = res.content.ebizEnterCustomerDto this.userInfo = res.content.ebizEnterCustomerDto;
this.bankCode = this.userInfo.bankCode this.bankCode = this.userInfo.bankCode;
this.ebiz_referrer = res.content.ebizReferrerDto this.ebiz_referrer = res.content.ebizReferrerDto;
if (this.userInfo.idType == '1') { if (this.userInfo.idType == '1') {
this.effectiveDateTypeAble = idToData(this.userInfo.idNo).age < 45 this.effectiveDateTypeAble = idToData(this.userInfo.idNo).age < 45;
this.userInfo.birthday = idToData(this.userInfo.idNo).birthday this.userInfo.birthday = idToData(this.userInfo.idNo).birthday;
this.userInfo.age = idToData(this.userInfo.idNo).age this.userInfo.age = idToData(this.userInfo.idNo).age;
this.userInfo.sex = idToData(this.userInfo.idNo).sex this.userInfo.sex = idToData(this.userInfo.idNo).sex;
} }
if (this.userInfo.bankName) { if (this.userInfo.bankName) {
// 主行code // 主行code
this.code = this.userInfo.bankName this.code = this.userInfo.bankName;
// 主行名称 // 主行名称
this.bankName = getBankName(this.userInfo.bankName) this.bankName = getBankName(this.userInfo.bankName);
} }
if (this.userInfo.bankJoint) { if (this.userInfo.bankJoint) {
let bank = getChildBank(this.userInfo.bankName, this.userInfo.bankJoint) let bank = getChildBank(this.userInfo.bankName, this.userInfo.bankJoint);
this.$nextTick(() => { this.$nextTick(() => {
this.bankJoint = bank.name this.bankJoint = bank.name;
}) });
} }
this.areaName = this.userInfo.bankAddress this.areaName = this.userInfo.bankAddress;
this.userInfo.nationality = 'CHN' this.userInfo.nationality = 'CHN';
} }
}) });
}, },
selectClick(index) { selectClick(index) {
selectComp(this, index, '1') selectComp(this, index, '1');
}, },
chooseOccupation() { chooseOccupation() {
chooseOccupation(this, '1') chooseOccupation(this, '1');
}, },
//弹框选择 //弹框选择
toSelect(pickerType, valueKey) { toSelect(pickerType, valueKey) {
toSelect(this, pickerType, valueKey, '1') toSelect(this, pickerType, valueKey, '1');
}, },
//确认选择字段 //确认选择字段
onConfirm(value) { onConfirm(value) {
onConfirm(this, value, '1') onConfirm(this, value, '1');
}, },
//证件起始截止日期 //证件起始截止日期
onDateConfirm(val, type) { onDateConfirm(val, type) {
onDateConfirm(this, val, type) onDateConfirm(this, val, type);
}, },
//选择客户 //选择客户
chooseCustomer(data) { chooseCustomer(data) {
chooseCustomer(this, data, '1') chooseCustomer(this, data, '1');
}, },
// 点击下一步 // 点击下一步
nextStep() { nextStep() {
this.$validator.validate().then(valid => { this.$validator.validate().then(valid => {
if (valid == true) { if (valid == true) {
if (this.userInfo.bankCode !== this.bankCode) { if (this.userInfo.bankCode !== this.bankCode) {
return this.$toast('两次输入的银行卡号不一致!') return this.$toast('两次输入的银行卡号不一致!');
} }
if (this.userInfo.idType == '1') { if (this.userInfo.idType == '1') {
//身份证 //身份证
if (!idNoCheck.isIdno(this.userInfo.idNo)) { if (!idNoCheck.isIdno(this.userInfo.idNo)) {
return this.$toast('请录入正确的身份证') return this.$toast('请录入正确的身份证');
} }
if (this.userInfo.idNo.length == '18') { if (this.userInfo.idNo.length == '18') {
//18位身份证第17位是性别位, 奇男偶女 //18位身份证第17位是性别位, 奇男偶女
let sexSign = this.userInfo.idNo.substr(16, 1) let sexSign = this.userInfo.idNo.substr(16, 1);
if ((parseInt(sexSign) % 2 == 0 && this.userInfo.sex != 1) || (parseInt(sexSign) % 2 != 0 && this.userInfo.sex != 0)) { if ((parseInt(sexSign) % 2 == 0 && this.userInfo.sex != 1) || (parseInt(sexSign) % 2 != 0 && this.userInfo.sex != 0)) {
return this.$toast('性别录入与身份证不符') return this.$toast('性别录入与身份证不符');
} }
//18位身份证第7-14位是生日位, 年月日 //18位身份证第7-14位是生日位, 年月日
let birthSign = this.userInfo.idNo.substr(6, 8) let birthSign = this.userInfo.idNo.substr(6, 8);
if ( if (
this.userInfo.birthday.substr(0, 4) != birthSign.substr(0, 4) || this.userInfo.birthday.substr(0, 4) != birthSign.substr(0, 4) ||
this.userInfo.birthday.substr(5, 2) != birthSign.substr(4, 2) || this.userInfo.birthday.substr(5, 2) != birthSign.substr(4, 2) ||
this.userInfo.birthday.substr(8, 2) != birthSign.substr(6, 2) this.userInfo.birthday.substr(8, 2) != birthSign.substr(6, 2)
) { ) {
return this.$toast('生日录入与身份证不符') return this.$toast('生日录入与身份证不符');
} }
} }
} }
if (this.userInfo.name != this.userInfo.accountName) { if (this.userInfo.name != this.userInfo.accountName) {
return this.$toast('姓名与开户名要一致') return this.$toast('姓名与开户名要一致');
} }
const degree = Number(this.userInfo.degree) const degree = Number(this.userInfo.degree);
// 学历为初中、小学、其他、文盲阻断入司 // 学历为初中、小学、其他、文盲阻断入司
if (degree == 13 || degree == 12 || degree == 8) { if (degree == 13 || degree == 12 || degree == 8) {
return this.$toast('您的学历不符合入司要求,不允许入司。') return this.$toast('您的学历不符合入司要求,不允许入司。');
} }
this.bankCodeConfirm() this.bankCodeConfirm();
} else { } else {
this.$toast(this.errors.all()[0]) this.$toast(this.errors.all()[0]);
} }
}) });
}, },
/**
* @Description: 判断当前的银行卡是否已经存在的方法
* @author:zhangqi
* @Date:2021-07-22
*/
checkBankCodeFunc() {
},
save() { save() {
let data = { let data = {
entryType: 'CUSTOMER_BASE', entryType: 'CUSTOMER_BASE',
ebizEnterCustomerDto: { ...this.userInfo, isRevoke: 0 } ebizEnterCustomerDto: { ...this.userInfo, isRevoke: 0 }
} };
saveOrUpdateInfo(data).then(res => { saveOrUpdateInfo(data).then(res => {
if (res.result == '0') { if (res.result == '0') {
this.$toast.clear() this.$toast.clear();
localStorage.agentSex = this.userInfo.sex localStorage.agentSex = this.userInfo.sex;
this.$jump({ this.$jump({
flag: 'h5', flag: 'h5',
extra: { extra: {
@@ -645,50 +670,50 @@ export default {
routerInfo: { routerInfo: {
path: `/agentEenter/AgentEnterGuarantor` path: `/agentEenter/AgentEnterGuarantor`
} }
}) });
} else { } else {
this.$toast(res.resultMessage) this.$toast(res.resultMessage);
} }
}) });
}, },
//区域选择 //区域选择
sureArea(area, type) { sureArea(area, type) {
sureArea(this, area, type) sureArea(this, area, type);
}, },
//设为联系地址 //设为联系地址
setAddress() { setAddress() {
//上面是0下面是1 //上面是0下面是1
if (this.homeDefault) { if (this.homeDefault) {
this.userInfo.addressStatus = 1 this.userInfo.addressStatus = 1;
} }
if (this.companyDefault) { if (this.companyDefault) {
this.userInfo.addressStatus = 0 this.userInfo.addressStatus = 0;
} }
}, },
//获取验证码 //获取验证码
getCode() { getCode() {
getCode(this, '1') getCode(this, '1');
}, },
//长期状态改变时 //长期状态改变时
effectiveDataTypeChange(val) { effectiveDataTypeChange(val) {
if (val) { if (val) {
this.userInfo.dateEnd = '9999-01-01' this.userInfo.dateEnd = '9999-01-01';
} else { } else {
this.userInfo.dateEnd = '' this.userInfo.dateEnd = '';
} }
effectiveDataTypeChange(this, val) effectiveDataTypeChange(this, val);
}, },
//获取身份证扫描信息 //获取身份证扫描信息
getIdentityInfo(data) { getIdentityInfo(data) {
getIdentityInfo(this, data, '1') getIdentityInfo(this, data, '1');
}, },
// 银行卡扫描 // 银行卡扫描
cardScanning(cardScanningType) { cardScanning(cardScanningType) {
window.localStorage.setItem('cardScanningType', cardScanningType) window.localStorage.setItem('cardScanningType', cardScanningType);
document.body.style.backgroundColor = '#F5F5F5' document.body.style.backgroundColor = '#F5F5F5';
let title = '' let title = '';
this.isclear = false this.isclear = false
;[this.isScan, title] = [true, '银行卡扫描'] ;[this.isScan, title] = [true, '银行卡扫描'];
setTimeout(() => { setTimeout(() => {
this.$jump({ this.$jump({
flag: 'navigation', flag: 'navigation',
@@ -696,9 +721,9 @@ export default {
title, title,
hiddenLeft: '1' hiddenLeft: '1'
} }
}) });
this.closeBtn() this.closeBtn();
}, 400) }, 400);
}, },
closeBtn() { closeBtn() {
// 筛选按钮的显示 // 筛选按钮的显示
@@ -712,7 +737,7 @@ export default {
} }
] ]
} }
}) });
}, },
appCallBack() { appCallBack() {
// 筛选按钮的点击事件 // 筛选按钮的点击事件
@@ -722,12 +747,12 @@ export default {
title: '入司基本信息', title: '入司基本信息',
hiddenRight: '1' hiddenRight: '1'
} }
}) });
this.isScan = false this.isScan = false;
}, },
//获取银行卡扫描信息 //获取银行卡扫描信息
getBankCardInfo(data) { getBankCardInfo(data) {
this.userInfo.bankCode = data.name this.userInfo.bankCode = data.name;
this.$jump({ this.$jump({
flag: 'navigation', flag: 'navigation',
@@ -735,41 +760,62 @@ export default {
title: '入司基本信息', title: '入司基本信息',
hiddenRight: '1' hiddenRight: '1'
} }
}) });
this.isScan = false this.isScan = false;
}, },
bankCodeConfirm() { bankCodeConfirm() {
this.save() // 定义参数格式
let params = { ebizEnterCustomerDto: { bankCode: this.userInfo.bankCode } };
// 调用校验银行卡是否已经存在的接口,验证数据
checkBankCodeUrl(params).then(res => {
if (res.result == '0') {
// 调用点击下一步时,执行的保存方法
this.save();
} else {
Dialog.alert({
title: '提示',
message: '当前银行卡已存在,请更换银行卡!',
confirmButtonColor: '#ee0a24'
});
}
}).catch(err => {
this.$toast(err.resultMessage);
});
} }
}, },
beforeDestroy() { beforeDestroy() {
//清理计时器 //清理计时器
window.clearInterval(this.timeId) window.clearInterval(this.timeId);
this.timeId = null this.timeId = null;
this.countDown = 60 this.countDown = 60;
this.codeDisabled = false this.codeDisabled = false;
} }
} };
</script> </script>
<style lang="scss" scoped> <style lang='scss' scoped>
.insured-info-container { .insured-info-container {
/deep/.van-checkbox { /deep/ .van-checkbox {
margin-left: auto; margin-left: auto;
} }
/deep/.van-radio {
/deep/ .van-radio {
margin-left: auto; margin-left: auto;
} }
.referrerW { .referrerW {
/deep/.van-cell__title { /deep/ .van-cell__title {
width: 120px; width: 120px;
} }
} }
#card { #card {
/deep/.van-cell__value { /deep/ .van-cell__value {
border-bottom: 2px solid #e9332e; border-bottom: 2px solid #e9332e;
} }
} }
} }
/deep/ .van-field__label { /deep/ .van-field__label {
display: flex; display: flex;
align-items: center; align-items: center;

View File

@@ -1,67 +1,73 @@
<template> <template>
<div class="guarant-info-container pb50"> <div class='guarant-info-container pb50'>
<!-- 基本信息 --> <!-- 基本信息 -->
<van-cell-group> <van-cell-group>
<RsTop :active="['1', '2']"></RsTop> <RsTop :active="['1', '2']"></RsTop>
<p class="fs15 fwb pl10 pv12">担保人信息</p> <p class='fs15 fwb pl10 pv12'>担保人信息</p>
<!-- start --> <!-- start -->
<van-field <van-field
:value="userInfo.relation | idToText('guarantRelationType')" :value="userInfo.relation | idToText('guarantRelationType')"
v-validate="'required'" v-validate="'required'"
readonly readonly
label="关系" label='关系'
name="关系" name='关系'
right-icon="arrow" right-icon='arrow'
placeholder="请选择" placeholder='请选择'
@click="toSelect('1')" @click="toSelect('1')"
required required
/> />
<van-field :value="userInfo.type | idToText('classification')" v-validate="'required'" readonly label="类别" name="类别" disabled /> <van-field :value="userInfo.type | idToText('classification')" v-validate="'required'" readonly label='类别'
<van-field label="姓名" type="text" name="姓名" placeholder="请输入" v-validate="'required|name'" clearable v-model="userInfo.name" required /> name='类别' disabled />
<select-radio :radios="sexRadio" label="性别" name="性别" v-validate="'required'" required :value.sync="userInfo.sex"></select-radio> <van-field label='姓名' type='text' name='姓名' placeholder='请输入' v-validate="'required|name'" clearable
v-model='userInfo.name' required />
<select-radio :radios='sexRadio' label='性别' name='性别' v-validate="'required'" required
:value.sync='userInfo.sex'></select-radio>
<van-field <van-field
label="身份证号码" label='身份证号码'
type="text" type='text'
name="身份证号码" name='身份证号码'
placeholder="请输入" placeholder='请输入'
clearable clearable
v-model="userInfo.idNo" v-model='userInfo.idNo'
v-validate="'required'" v-validate="'required'"
required required
maxlength="18" maxlength='18'
/> />
<van-field label="单位" type="text" name="单位" placeholder="请输入" clearable v-model="userInfo.company" /> <van-field label='单位' type='text' name='单位' placeholder='请输入' clearable v-model='userInfo.company' />
<van-field label="家庭地址" type="text" name="家庭地址" placeholder="请输入" clearable v-model="userInfo.homeAdress" /> <van-field label='家庭地址' type='text' name='家庭地址' placeholder='请输入' clearable v-model='userInfo.homeAdress' />
<van-field <van-field
v-model="userInfo.mobile" v-model='userInfo.mobile'
label="手机号码" label='手机号码'
name="手机号码" name='手机号码'
placeholder="请输入" placeholder='请输入'
v-validate="'required|mobile'" v-validate="'required|mobile'"
maxlength="11" maxlength='11'
clearable clearable
required required
/> />
<!-- end --> <!-- end -->
<div class="flex justify-content-s bottom-btn bg-white"> <div class='flex justify-content-s bottom-btn bg-white'>
<van-button class=" bottom0 left0" square plain type="danger" @click="goBack" size="large">上一步</van-button> <van-button class=' bottom0 left0' square plain type='danger' @click='goBack' size='large'>上一步</van-button>
<van-button class=" bottom0 left0" square type="danger" size="large" @click.native="nextStep" v-no-more-click="1000">下一步</van-button> <van-button class=' bottom0 left0' square type='danger' size='large' @click.native='nextStep'
v-no-more-click='1000'>下一步
</van-button>
</div> </div>
</van-cell-group> </van-cell-group>
<!-- 字段选择 --> <!-- 字段选择 -->
<van-popup v-model="popupShow" position="bottom"> <van-popup v-model='popupShow' position='bottom'>
<van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false" /> <van-picker show-toolbar :columns='columns' @confirm='onConfirm' @cancel='popupShow = false' />
</van-popup> </van-popup>
</div> </div>
</template> </template>
<script> <script>
import { Field, CellGroup, Button, col, popup, picker, Dialog, Cell } from 'vant' import { Field, CellGroup, Button, col, popup, picker, Dialog, Cell } from 'vant';
import FieldDatePicter from '@/components/ebiz/FieldDatePicter' import FieldDatePicter from '@/components/ebiz/FieldDatePicter';
import SelectRadio from '@/components/ebiz/SelectRadio' import SelectRadio from '@/components/ebiz/SelectRadio';
import DataDictionary from '@/assets/js/utils/data-dictionary' import DataDictionary from '@/assets/js/utils/data-dictionary';
import RsTop from '@/components/ebiz/agentEenter/RsTop' import RsTop from '@/components/ebiz/agentEenter/RsTop';
import idNoCheck from '@/assets/js/utils/idNoCheck' import idNoCheck from '@/assets/js/utils/idNoCheck';
import { saveOrUpdateInfo, agentAll } from '@/api/ebiz/agentEenter/agentEenter' import { saveOrUpdateInfo, agentAll, checkGuarantorUrl } from '@/api/ebiz/agentEenter/agentEenter';
export default { export default {
name: 'AgentEenterBasicFamily', name: 'AgentEenterBasicFamily',
components: { components: {
@@ -102,19 +108,19 @@ export default {
value: '1' value: '1'
} }
] ]
} };
}, },
mounted() { mounted() {
Dialog.alert({ Dialog.alert({
message: '请如实填写下列各项内容担保人为年满18岁的中国公民。如有不实后果自负。' message: '请如实填写下列各项内容担保人为年满18岁的中国公民。如有不实后果自负。'
}).then(() => { }).then(() => {
this.agentAll() this.agentAll();
}) });
document.body.style.backgroundColor = '#fff' document.body.style.backgroundColor = '#fff';
}, },
beforeRouteLeave(to, from, next) { beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = '' document.body.style.backgroundColor = '';
next() next();
}, },
methods: { methods: {
goBack() { goBack() {
@@ -129,55 +135,55 @@ export default {
index: -1, index: -1,
path: '/agentEenter/agentEenterBasicInfor' path: '/agentEenter/agentEenterBasicInfor'
} }
}) });
}, },
//信息返显 //信息返显
agentAll() { agentAll() {
let data = {} let data = {};
this.$toast.loading({ this.$toast.loading({
duration: 0, // 持续展示 toast duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击 forbidClick: true, // 禁用背景点击
loadingType: 'spinner', loadingType: 'spinner',
message: '加载中……' message: '加载中……'
}) });
agentAll(data).then(res => { agentAll(data).then(res => {
this.$toast.clear() this.$toast.clear();
if (res.content.ebizGuarantorDto.length != 0) { if (res.content.ebizGuarantorDto.length != 0) {
this.userInfo = res.content.ebizGuarantorDto this.userInfo = res.content.ebizGuarantorDto;
//性别返显 //性别返显
if (res.content.ebizGuarantorDto.sex == null) { if (res.content.ebizGuarantorDto.sex == null) {
this.userInfo.sex = '0' this.userInfo.sex = '0';
} else { } else {
this.userInfo.sex = String(res.content.ebizGuarantorDto.sex) //性别 this.userInfo.sex = String(res.content.ebizGuarantorDto.sex); //性别
} }
//担保人类别 //担保人类别
if (res.content.ebizGuarantorDto.type == null) { if (res.content.ebizGuarantorDto.type == null) {
this.userInfo.type = '1' this.userInfo.type = '1';
} else { } else {
this.userInfo.type = String(res.content.ebizGuarantorDto.type) //性别 this.userInfo.type = String(res.content.ebizGuarantorDto.type); //性别
} }
} }
}) });
}, },
toSelect(pickerType, index, valueKey) { toSelect(pickerType, index, valueKey) {
//pickerType 1、关系类型 2、类别 //pickerType 1、关系类型 2、类别
;[this.popupShow, this.pickerType] = [true, pickerType] ;[this.popupShow, this.pickerType] = [true, pickerType];
if (valueKey) this.valueKey = valueKey if (valueKey) this.valueKey = valueKey;
this.enterIndex = index this.enterIndex = index;
if (pickerType == '1') { if (pickerType == '1') {
this.columns = DataDictionary.guarantRelationType this.columns = DataDictionary.guarantRelationType;
} }
if (pickerType == '2') { if (pickerType == '2') {
this.columns = DataDictionary.classification this.columns = DataDictionary.classification;
} }
}, },
onConfirm(value) { onConfirm(value) {
this.popupShow = false this.popupShow = false;
if (this.pickerType == '1') { if (this.pickerType == '1') {
this.userInfo.relation = value.id this.userInfo.relation = value.id;
} }
if (this.pickerType == '2') { if (this.pickerType == '2') {
this.userInfo.type = value.id this.userInfo.type = value.id;
} }
}, },
// 下一步 // 下一步
@@ -187,35 +193,60 @@ export default {
if (true === valid) { if (true === valid) {
//身份证 //身份证
if (!idNoCheck.isIdno(this.userInfo.idNo)) { if (!idNoCheck.isIdno(this.userInfo.idNo)) {
return this.$toast('您填写的证件号码有误') return this.$toast('您填写的证件号码有误');
} }
if (this.userInfo.idNo.length == '18') { if (this.userInfo.idNo.length == '18') {
//18位身份证第17位是性别位, 奇男偶女 //18位身份证第17位是性别位, 奇男偶女
let sexSign = this.userInfo.idNo.substr(16, 1) let sexSign = this.userInfo.idNo.substr(16, 1);
if ((parseInt(sexSign) % 2 == 0 && this.userInfo.sex != 1) || (parseInt(sexSign) % 2 != 0 && this.userInfo.sex != 0)) { if ((parseInt(sexSign) % 2 == 0 && this.userInfo.sex != 1) || (parseInt(sexSign) % 2 != 0 && this.userInfo.sex != 0)) {
return this.$toast('性别录入与身份证不符') return this.$toast('性别录入与身份证不符');
} }
} }
this.save() // 调用校验是否已经是担保人的方法
this.checkGuarantorFunc();
} else { } else {
this.$toast(this.$validator.errors.all()[0]) this.$toast(this.$validator.errors.all()[0]);
} }
}) });
}, },
/**
* @Description: 校验是否已经是担保人的方法
* @author:zhangqi
* @Date:2021-07-21
*/
checkGuarantorFunc() {
let params = { ebizGuarantorDto: { idNo: this.userInfo.idNo } };
checkGuarantorUrl(params).then(res => {
if (res.result == '0') {
// 调用点击下一步时,执行的保存方法
this.save();
} else {
Dialog.alert({
title: '提示',
message: '此人已是其他代理人的担保人,请更换担保人!',
confirmButtonColor: '#ee0a24'
});
}
}).catch(err => {
this.$toast(err.resultMessage);
});
},
save() { save() {
this.$toast.loading({ this.$toast.loading({
duration: 0, // 持续展示 toast duration: 0, // 持续展示 toast
forbidClick: true, // 禁用背景点击 forbidClick: true, // 禁用背景点击
loadingType: 'spinner', loadingType: 'spinner',
message: '加载中……' message: '加载中……'
}) });
let params = { let params = {
entryType: 'CUSTOMER_GUARANTOR', entryType: 'CUSTOMER_GUARANTOR',
ebizGuarantorDto: {} ebizGuarantorDto: {}
} };
params.ebizGuarantorDto = this.userInfo params.ebizGuarantorDto = this.userInfo;
saveOrUpdateInfo(params).then(res => { saveOrUpdateInfo(params).then(res => {
this.$toast.clear() this.$toast.clear();
if (res.result == '0') { if (res.result == '0') {
this.$jump({ this.$jump({
flag: 'h5', flag: 'h5',
@@ -225,28 +256,31 @@ export default {
routerInfo: { routerInfo: {
path: `/agentEenter/agentEenterBasicFamily` path: `/agentEenter/agentEenterBasicFamily`
} }
}) });
} else { } else {
this.$toast(res.resultMessage) this.$toast(res.resultMessage);
} }
}) });
} }
} }
} };
</script> </script>
<style lang="scss" scoped> <style lang='scss' scoped>
.guarant-info-container { .guarant-info-container {
/deep/ .van-cell__value { /deep/ .van-cell__value {
text-align: left; text-align: left;
} }
/deep/ .van-cell__title { /deep/ .van-cell__title {
width: 20%; width: 20%;
} }
.add-btn { .add-btn {
width: 80%; width: 80%;
margin: 20px auto; margin: 20px auto;
border: 1px dashed #999; border: 1px dashed #999;
} }
.bg-gray { .bg-gray {
background: #f1f2f4 !important; background: #f1f2f4 !important;
} }