投被保人信息添加字段

This commit is contained in:
l
2021-04-02 13:47:30 +08:00
parent 174096a7f6
commit dcba366cda

View File

@@ -5,47 +5,169 @@
<template #boxTitle>
<span class="title">投保人信息</span>
</template>
<InfoCell label="姓名">{{userInfo.name}}</InfoCell>
<InfoCell label="证件类型">{{userInfo.idType | idToText('insuredIdType')}}</InfoCell>
<InfoCell label="出生日期">{{userInfo.birthday}}</InfoCell>
<InfoCell label="证件截止日期">{{userInfo.certiexpiredate}}</InfoCell>
<select-radio v-validate="'required'" label="性别" name="性别" required :radios="sexRadio" :value.sync="userInfo.sex"
:disabled="true"></select-radio>
<InfoCell label="国籍">{{userInfo.nativeplace | idToText('nativeplace')}}</InfoCell>
<van-field :value="userInfo.marriageStatus" required label="婚姻状况" name="婚姻状况" v-validate="'required'" right-icon="arrow"
placeholder="请选择" @click="toSelect('10','','appntDTO')" @focus="noBomBox" />
<InfoCell label="职业类别">{{userInfo.occupationName}}</InfoCell>
<InfoCell label="移动电话">{{userInfo.mobile}}</InfoCell>
<InfoCell label="电子邮箱">{{userInfo.email}}</InfoCell>
<InfoCell label="姓名">{{ userInfo.name }}</InfoCell>
<InfoCell label="证件类型">{{ userInfo.idType | idToText('insuredIdType') }}</InfoCell>
<InfoCell label="出生日期">{{ userInfo.birthday }}</InfoCell>
<InfoCell label="证件截止日期">{{ userInfo.certiexpiredate }}</InfoCell>
<select-radio v-validate="'required'" label="性别" name="性别" required :radios="sexRadio" :value.sync="userInfo.sex" :disabled="true"></select-radio>
<InfoCell label="国籍">{{ userInfo.nativeplace | idToText('nativeplace') }}</InfoCell>
<van-field
:value="userInfo.marriageStatus"
required
label="婚姻状况"
name="婚姻状况"
v-validate="'required'"
right-icon="arrow"
placeholder="请选择"
@click="toSelect('10', '', 'appntDTO')"
@focus="noBomBox"
/>
<InfoCell label="职业类别">{{ userInfo.occupationName }}</InfoCell>
<InfoCell label="移动电话">{{ userInfo.mobile }}</InfoCell>
<InfoCell label="电子邮箱">{{ userInfo.email }}</InfoCell>
<!-- <InfoCell label="有无社保">
<van-button class="mr10" size="small" type="danger" round></van-button>
<van-button plain size="small" type="danger" round></van-button>
</InfoCell> -->
<select-radio v-validate="'required'" :radios="medicalRadio" label="有无社保" name="有无社保" required :value.sync="userInfo.medical"
:disabled="true"></select-radio>
<InfoCell label="税收居民身份">{{userInfo.taxResidentId | idToText('taxIdentity')}}</InfoCell>
<InfoCell label="联系地址">{{homeName}}</InfoCell>
<InfoCell label="详细联系地址">{{userInfo.homeAddress}}</InfoCell>
<select-radio
v-validate="'required'"
:radios="medicalRadio"
label="有无社保"
name="有无社保"
required
:value.sync="userInfo.medical"
:disabled="true"
></select-radio>
<InfoCell label="税收居民身份">{{ userInfo.taxResidentId | idToText('taxIdentity') }}</InfoCell>
<InfoCell label="联系地址">{{ homeName }}</InfoCell>
<InfoCell label="详细联系地址">{{ userInfo.homeAddress }}</InfoCell>
<van-field
v-model="userInfo.stature"
label="身高(cm)"
name="身高"
required
placeholder="请输入单位cm"
v-validate="'required|onlyNumber|stature'"
clearable
@blur="checkStature(userInfo.stature)"
maxlength="5"
/>
<van-field
v-model="userInfo.avoirdupois"
label="体重(kg)"
name="体重"
required
placeholder="请输入单位kg"
v-validate="'required|onlyNumber|avoirdupois'"
clearable
@blur="checkAvoirdupois(userInfo.avoirdupois)"
/>
<van-field
:value="userInfo.salarySource | idToText('salarySource')"
readonly
label="收入来源"
name="收入来源"
required
right-icon="arrow"
placeholder="请选择"
v-validate="'required'"
@click="toSelect('8', '1')"
/>
<van-field
v-model="userInfo.averageAnnualIncome"
label="固定年收入(万元)"
name="固定年收入"
required
placeholder="请输入,单位万元"
v-validate="'required|onlyNumber'"
clearable
maxlength="5"
/>
</DropdownBox>
<DropdownBox>
<template #boxTitle>
<span class="title">被保险人信息</span>
</template>
<InfoCell label="姓名">{{insuredPersonInfo.name}}</InfoCell>
<InfoCell label="证件类型">{{userInfo.idType | idToText('idType')}}</InfoCell>
<InfoCell label="证件号码">{{insuredPersonInfo.idNo}}</InfoCell>
<InfoCell label="出生日期">{{insuredPersonInfo.birthday}}</InfoCell>
<select-radio required :radios="sexRadio" label="性别" name="性别" v-validate="'required'" :value.sync="insuredPersonInfo.sex"
:disabled="true"></select-radio>
<InfoCell label="国籍">{{insuredPersonInfo.nativeplace | idToText('nativeplace')}}</InfoCell>
<van-field :value="insuredPersonInfo.marriageStatus" required label="婚姻状况" name="婚姻状况" v-validate="'required'"
right-icon="arrow" placeholder="请选择" @click="toSelect('10','','insuredDTOs')" @focus="noBomBox" />
<InfoCell label="职业类别">{{insuredPersonInfo.occupationCode}}</InfoCell>
<select-radio :radios="medicalRadio" label="有无社保" name="有无社保" v-validate="'required'" required :value.sync="insuredPersonInfo.medical"
:disabled="true"></select-radio>
<InfoCell label="税收居民身份">{{insuredPersonInfo.name}}</InfoCell>
<InfoCell label="联系地址">{{insuredHomeName}}</InfoCell>
<InfoCell label="详细地址">{{insuredPersonInfo.homeAddress}}</InfoCell>
<InfoCell label="姓名">{{ insuredPersonInfo.name }}</InfoCell>
<InfoCell label="证件类型">{{ insuredPersonInfo.idType | idToText('idType') }}</InfoCell>
<InfoCell label="证件号码">{{ insuredPersonInfo.idNo }}</InfoCell>
<InfoCell label="出生日期">{{ insuredPersonInfo.birthday }}</InfoCell>
<select-radio
required
:radios="sexRadio"
label="性别"
name="性别"
v-validate="'required'"
:value.sync="insuredPersonInfo.sex"
:disabled="true"
></select-radio>
<InfoCell label="国籍">{{ insuredPersonInfo.nativeplace | idToText('nativeplace') }}</InfoCell>
<van-field
:value="insuredPersonInfo.marriageStatus"
required
label="婚姻状况"
name="婚姻状况"
v-validate="'required'"
right-icon="arrow"
placeholder="请选择"
@click="toSelect('10', '', 'insuredDTOs')"
@focus="noBomBox"
/>
<InfoCell label="职业类别">{{ insuredPersonInfo.occupationCode }}</InfoCell>
<select-radio
:radios="medicalRadio"
label="有无社保"
name="有无社保"
v-validate="'required'"
required
:value.sync="insuredPersonInfo.medical"
:disabled="true"
></select-radio>
<InfoCell label="税收居民身份">{{ insuredPersonInfo.name }}</InfoCell>
<InfoCell label="联系地址">{{ insuredHomeName }}</InfoCell>
<InfoCell label="详细地址">{{ insuredPersonInfo.homeAddress }}</InfoCell>
<van-field
v-model="insuredPersonInfo.stature"
label="身高(cm)"
name="身高"
required
placeholder="请输入单位cm"
v-validate="'required|onlyNumber|stature'"
clearable
@blur="checkStature(insuredPersonInfo.stature)"
maxlength="5"
/>
<van-field
v-model="insuredPersonInfo.avoirdupois"
label="体重(kg)"
name="体重"
required
placeholder="请输入单位kg"
v-validate="'required|onlyNumber|avoirdupois'"
clearable
@blur="checkAvoirdupois(insuredPersonInfo.avoirdupois)"
/>
<van-field
:value="insuredPersonInfo.salarySource | idToText('salarySource')"
readonly
label="收入来源"
name="收入来源"
required
right-icon="arrow"
placeholder="请选择"
v-validate="'required'"
@click="toSelect('8', '2')"
/>
<van-field
v-model="insuredPersonInfo.averageAnnualIncome"
label="固定年收入(万元)"
name="固定年收入"
required
placeholder="请输入,单位万元"
v-validate="'required|onlyNumber'"
clearable
maxlength="5"
/>
</DropdownBox>
<DropdownBox>
<template #boxTitle>
@@ -59,24 +181,67 @@
<InfoCell label="受益类型">指定受益人</InfoCell>
<InfoCell label="是被保险人的">{{ item.relationToInsured | idToText('relationToAppnt') }}</InfoCell>
<InfoCell label="姓名">{{ item.name }}</InfoCell>
<InfoCell label="证件类型">{{item.idType | idToText('insuredIdType')}}</InfoCell>
<InfoCell label="证件截止日期">{{item.certiexpiredate}}</InfoCell>
<InfoCell label="证件类型">{{ item.idType | idToText('insuredIdType') }}</InfoCell>
<InfoCell label="证件截止日期">{{ item.certiexpiredate }}</InfoCell>
<!-- <InfoCell label="性别">
<van-button class="mr10" size="small" type="danger" round></van-button>
<van-button plain size="small" type="danger" round></van-button>
</InfoCell> -->
<select-radio required :disabled="true" :radios="sexRadio" label="性别" name="性别" v-validate="'required'"
:value.sync="item.sex"></select-radio>
<van-field :value="item.nativeplace | idToText('nativeplace')" label="国籍" name="国籍" required v-validate="'required'"
right-icon="arrow" placeholder="请选择" @click="toSelect('1','','bnfDTOs',index)" @focus="noBomBox" />
<van-field :value="item.marriageStatus" required label="婚姻状况" name="婚姻状况" v-validate="'required'" right-icon="arrow"
placeholder="请选择" @click="toSelect('10','','bnfDTOs',index)" @focus="noBomBox" />
<van-field v-model="item.mobile" clearable label="移动电话" name="移动电话" required placeholder="请输入" v-validate="'required|mobileLength11|mobileStartWith1|mobile'"
maxlength="11" />
<van-field v-model="bnfHomeName[index]" readonly label="联系地址" name="联系地址" required right-icon="arrow"
placeholder="请选择" v-validate="'required|contactAdderss'" @click="areaChoose('2','bnfDTOs',index)" />
<van-field v-model="item.homeAddress" label="" name="详细地址" placeholder="具体到街道、门牌号、楼号、单元号、室号" v-validate="'required|homeAddressNum|homeAddressCh'"
clearable maxlength="30" :readonly="false" style="font-size: 3.5vw;" />
<select-radio required :disabled="true" :radios="sexRadio" label="性别" name="性别" v-validate="'required'" :value.sync="item.sex"></select-radio>
<van-field
:value="item.nativeplace | idToText('nativeplace')"
label="国籍"
name="国籍"
required
v-validate="'required'"
right-icon="arrow"
placeholder="请选择"
@click="toSelect('1', '', 'bnfDTOs', index)"
@focus="noBomBox"
/>
<van-field
:value="item.marriageStatus"
required
label="婚姻状况"
name="婚姻状况"
v-validate="'required'"
right-icon="arrow"
placeholder="请选择"
@click="toSelect('10', '', 'bnfDTOs', index)"
@focus="noBomBox"
/>
<van-field
v-model="item.mobile"
clearable
label="移动电话"
name="移动电话"
required
placeholder="请输入"
v-validate="'required|mobileLength11|mobileStartWith1|mobile'"
maxlength="11"
/>
<van-field
v-model="bnfHomeName[index]"
readonly
label="联系地址"
name="联系地址"
required
right-icon="arrow"
placeholder="请选择"
v-validate="'required|contactAdderss'"
@click="areaChoose('2', 'bnfDTOs', index)"
/>
<van-field
v-model="item.homeAddress"
label=""
name="详细地址"
placeholder="具体到街道、门牌号、楼号、单元号、室号"
v-validate="'required|homeAddressNum|homeAddressCh'"
clearable
maxlength="30"
:readonly="false"
style="font-size: 3.5vw"
/>
<van-field @click="openOccupation(index)" label="职业类别" name="职业类别" :value="item.occupationName" right-icon="arrow" />
<InfoCell label="受益顺序"></InfoCell>
<InfoCell label="受益比例">{{ item.bnfLot }}%</InfoCell>
@@ -87,9 +252,9 @@
<template #boxTitle>
<span class="title">账户信息</span>
</template>
<InfoCell label="账户名称">{{accountPersonInfo.accountName}}</InfoCell>
<InfoCell label="开户银行">{{accountPersonInfo.bankName}}</InfoCell>
<InfoCell label="银行账号">{{accountPersonInfo.cardBookCode}}</InfoCell>
<InfoCell label="账户名称">{{ accountPersonInfo.accountName }}</InfoCell>
<InfoCell label="开户银行">{{ accountPersonInfo.bankName }}</InfoCell>
<InfoCell label="银行账号">{{ accountPersonInfo.cardBookCode }}</InfoCell>
</DropdownBox>
<!-- <van-field :value="userInfo.idType | idToText('insuredIdType')" v-validate="'required'" required label="证件类型" name="证件类型"
placeholder="请选择" /> -->
@@ -142,8 +307,18 @@ export default {
bnfHomeName: [], //受益人联系地址
isSpecialRead: false,
active: 0,
userInfo: {}, //投保人信息
insuredPersonInfo: {}, //被投保人信息
userInfo: {
averageAnnualIncome: '',
salarySource: '',
stature: '',
avoirdupois: ''
}, //投保人信息
insuredPersonInfo: {
averageAnnualIncome: '',
salarySource: '',
stature: '',
avoirdupois: ''
}, //被投保人信息
bnfPersonInfo: {}, //受益人信息
accountPersonInfo: {}, //账户信息
sexRadio: [
@@ -190,6 +365,30 @@ export default {
window.appCallBack = this.appCallBack
},
methods: {
//校验身高
checkStature(val) {
if (val.trim().length == 0) {
return this.$toast('身高不能为空')
}
let res = /^[0-9]{0,3}([.]{1}[0-9]{1})?$/.test(val) && val < 300 && val > 10
if (!res) {
this.userInfo.stature = ''
return this.$toast('身高输入有误')
}
},
//校验体重
checkAvoirdupois(val) {
if (val.trim().length == 0) {
return this.$toast('体重不能为空')
}
let res = /^[0-9]+([.]{1}[0-9]{1})?$/.test(val) && val > 0.1
if (!res) {
this.userInfo.avoirdupois = ''
return this.$toast('体重输入有误')
}
},
appCallBack(data) {
if (data.trigger == 'left_button_click') {
this.$jump({
@@ -231,7 +430,7 @@ export default {
// 被投保人信息
this.insuredPersonInfo = res.orderDTO.insuredDTOs[0]
this.setInsuredCustomerMarriage(this.insuredPersonInfo.marriage)
this.setInsuredCustomerMarriage(this.insuredPersonInfo.marriage)
if (this.insuredPersonInfo.homeProvince.length) {
this.insuredHomeName = getAreaName([
{ code: this.insuredPersonInfo.homeProvince },
@@ -250,7 +449,7 @@ export default {
//设置婚姻文字显示
for (let status of DataDictionary.marriage) {
if (status.id == item.marriage) {
item.marriageStatus = status.text
item.marriageStatus = status.text
}
}
})
@@ -261,7 +460,7 @@ export default {
// 账户信息
this.accountPersonInfo = res.orderDTO.orderAccountDTO
this.accountPersonInfo.bankCode = this.accountPersonInfo.bankName
dataDic['edorBankType'].some(item => {
dataDic['edorBankType'].some((item) => {
if (item.id == this.accountPersonInfo.bankName) {
this.accountPersonInfo.bankName = item.text
}
@@ -307,7 +506,10 @@ export default {
this.columns = DataDictionary.insuredIdType
break
case '4':
this.columns = [{ id: 0, text: '有' }, { id: 1, text: '无' }]
this.columns = [
{ id: 0, text: '有' },
{ id: 1, text: '无' }
]
break
case '5':
this.columns = DataDictionary.taxIdentity
@@ -318,7 +520,7 @@ export default {
case '9':
this.productCodes.length = 0
this.productCodes.push('GFRS_M0024')
getCompany({ productCodes: this.productCodes }).then(res => {
getCompany({ productCodes: this.productCodes }).then((res) => {
if (res.result == 0) {
this.columns = res.content
} else {
@@ -385,7 +587,11 @@ export default {
} */ else if (
this.pickerType == '8'
) {
this.userInfo.salarySource = value.id
if (this.valueKey == '1') {
this.userInfo.salarySource = value.id
} else {
this.insuredPersonInfo.salarySource = value.id
}
} else if (this.pickerType == '9') {
this.userInfo.workcompany = value
} else if (this.pickerType === '10') {