Merge branch 'feature/GFRS-2301【需求】健康险渠道国富无忧卡金掌桂开发的需求' into dev

This commit is contained in:
liyuetong
2021-05-18 09:50:43 +08:00
3 changed files with 3591 additions and 70 deletions

View File

@@ -40,6 +40,21 @@
> >
<van-button v-if="userInfo.idType == 1" slot="button" size="small" type="danger" round @click="selectClick('3', '', '1')">证件扫描</van-button> <van-button v-if="userInfo.idType == 1" slot="button" size="small" type="danger" round @click="selectClick('3', '', '1')">证件扫描</van-button>
</van-field> </van-field>
<FieldDatePicter
:v-validate="{ required: certiexpiredateRequired }"
required
label="证件截止日期"
name="证件截止日期"
:value.sync="userInfo.certiexpiredate"
type="date"
@confirm="onDateConfirm($event, '1')"
ref="certiexpiredate"
:flag="true"
:readonly="idLimit"
></FieldDatePicter>
<div class="border-bt relative fs14 p10 flex justify-content-fe">
<van-checkbox v-model="userInfo.effectiveDateType" :disabled="effectiveDateTypeAble" @change="effectiveDataTypeChange">长期</van-checkbox>
</div>
<select-radio required :radios="sexRadio" label="性别" name="性别" v-validate="'required'" :value.sync="userInfo.sex"></select-radio> <select-radio required :radios="sexRadio" label="性别" name="性别" v-validate="'required'" :value.sync="userInfo.sex"></select-radio>
<FieldDatePicter <FieldDatePicter
v-validate="'required'" v-validate="'required'"
@@ -76,6 +91,16 @@
:value="userInfo.occupationName" :value="userInfo.occupationName"
right-icon="arrow" right-icon="arrow"
/> />
<van-field
v-model="userInfo.averageAnnualIncome"
label="平均年收入(万元)"
name="平均年收入"
required
placeholder="请输入,单位万元"
v-validate="'required|onlyNumber'"
clearable
maxlength="5"
/>
<van-field <van-field
v-validate="'required'" v-validate="'required'"
:value="userInfo.nativeplace | idToText('nativeplace')" :value="userInfo.nativeplace | idToText('nativeplace')"
@@ -161,6 +186,23 @@
> >
<van-button v-if="insuredInfo.idType == 1" slot="button" size="small" type="danger" round @click="selectClick('3', '', '2')">证件扫描</van-button> <van-button v-if="insuredInfo.idType == 1" slot="button" size="small" type="danger" round @click="selectClick('3', '', '2')">证件扫描</van-button>
</van-field> </van-field>
<FieldDatePicter
:v-validate="{ required: certiexpiredateRequiredInsured }"
required
label="证件截止日期"
name="证件截止日期"
:value.sync="insuredInfo.certiexpiredate"
type="date"
@confirm="onDateConfirm($event, '7')"
ref="certiexpiredate"
:flag="true"
:readonly="idLimit"
></FieldDatePicter>
<div class="border-bt relative fs14 p10 flex justify-content-fe">
<van-checkbox v-model="insuredInfo.effectiveDateType" :disabled="effectiveDateTypeAbleInsured" @change="effectiveDataTypeChangeInsured"
>长期</van-checkbox
>
</div>
<select-radio required :radios="sexRadio" label="性别" name="性别" v-validate="'required'" :value.sync="insuredInfo.sex"></select-radio> <select-radio required :radios="sexRadio" label="性别" name="性别" v-validate="'required'" :value.sync="insuredInfo.sex"></select-radio>
<FieldDatePicter <FieldDatePicter
label="出生日期" label="出生日期"
@@ -193,6 +235,16 @@
:value="insuredInfo.occupationName" :value="insuredInfo.occupationName"
right-icon="arrow" right-icon="arrow"
/> />
<van-field
v-model="insuredInfo.averageAnnualIncome"
label="平均年收入(万元)"
name="平均年收入"
required
placeholder="请输入,单位万元"
v-validate="'required|onlyNumber'"
clearable
maxlength="5"
/>
<van-field <van-field
:value="insuredInfo.nativeplace | idToText('nativeplace')" :value="insuredInfo.nativeplace | idToText('nativeplace')"
readonly readonly
@@ -250,6 +302,19 @@
placeholder="请输入" placeholder="请输入"
clearable clearable
/> />
<FieldDatePicter
required
label="证件截止日期"
name="证件截止日期"
:value.sync="userInfo.certiexpiredate"
type="date"
ref="certiexpiredate"
:flag="true"
readonly
></FieldDatePicter>
<div class="border-bt relative fs14 p10 flex justify-content-fe">
<van-checkbox v-model="userInfo.effectiveDateType" disabled="false">长期</van-checkbox>
</div>
<select-radio required :disabled="true" :radios="sexRadio" label="性别" name="性别" v-validate="'required'" :value.sync="userInfo.sex"></select-radio> <select-radio required :disabled="true" :radios="sexRadio" label="性别" name="性别" v-validate="'required'" :value.sync="userInfo.sex"></select-radio>
<FieldDatePicter <FieldDatePicter
v-validate="'required'" v-validate="'required'"
@@ -272,9 +337,21 @@
placeholder="请输入" placeholder="请输入"
v-validate="'required|mobile'" v-validate="'required|mobile'"
maxlength="11" maxlength="11"
readonly
/> />
<van-field v-model="userInfo.email" required label="邮箱" name="邮箱" placeholder="请输入" v-validate="'required|email'" clearable /> <van-field v-model="userInfo.email" readonly required label="邮箱" name="邮箱" placeholder="请输入" v-validate="'required|email'" clearable />
<van-field readonly required label="职业类别" name="职业类别" :value="userInfo.occupationName" right-icon="arrow" /> <van-field readonly required label="职业类别" name="职业类别" :value="userInfo.occupationName" right-icon="arrow" />
<van-field
v-model="userInfo.averageAnnualIncome"
label="平均年收入(万元)"
name="平均年收入"
required
readonly
placeholder="请输入,单位万元"
v-validate="'required|onlyNumber'"
clearable
maxlength="5"
/>
<van-field <van-field
:value="userInfo.nativeplace | idToText('nativeplace')" :value="userInfo.nativeplace | idToText('nativeplace')"
readonly readonly
@@ -423,7 +500,9 @@ import Vue from 'vue'
import { GoodsAction, GoodsActionIcon, GoodsActionButton } from 'vant' import { GoodsAction, GoodsActionIcon, GoodsActionButton } from 'vant'
DataDictionary.relationToAppnt = DataDictionary.relationToAppnt.slice(0, 4) DataDictionary.relationToAppnt = DataDictionary.relationToAppnt.slice(0, 4)
Vue.use(Checkbox).use(CheckboxGroup) Vue.use(Checkbox).use(CheckboxGroup)
Vue.use(GoodsAction).use(GoodsActionIcon).use(GoodsActionButton) Vue.use(GoodsAction)
.use(GoodsActionIcon)
.use(GoodsActionButton)
export default { export default {
name: 'insuredInfo', name: 'insuredInfo',
components: { components: {
@@ -440,10 +519,14 @@ export default {
[RadioGroup.name]: RadioGroup, [RadioGroup.name]: RadioGroup,
[Radio.name]: Radio, [Radio.name]: Radio,
[IdentityCardScan.name]: IdentityCardScan, [IdentityCardScan.name]: IdentityCardScan,
OccupationForLoop, OccupationForLoop
}, },
data() { data() {
return { return {
certiexpiredateRequired: true, //证件截止日期是否需要校验
certiexpiredateRequiredInsured: true, //证件截止日期是否需要校验--被保人
effectiveDateTypeAble: false, //长期按钮是否禁用
effectiveDateTypeAbleInsured: false, //长期按钮是否禁用--被保人
proScheme: '', //保障方案 proScheme: '', //保障方案
proSchemeCode: '', proSchemeCode: '',
productDate: '', //保险期间 productDate: '', //保险期间
@@ -458,26 +541,26 @@ export default {
sexRadio: [ sexRadio: [
{ {
label: '男', label: '男',
value: '0', value: '0'
}, },
{ {
label: '女', label: '女',
value: '1', value: '1'
}, }
], ],
medicalRadio: [ medicalRadio: [
{ {
label: '有', label: '有',
value: '0', value: '0'
}, },
{ {
label: '无', label: '无',
value: '1', value: '1'
}, }
], ],
maxDate: beforeDate.getBeforeYear(18), //投保人出生日期可选最大值 maxDate: beforeDate.getBeforeYear(18), //投保人出生日期可选最大值
insuredMaxDate: beforeDate.getBeforeDays(28), //被保人出生日期可选最大值 insuredMaxDate: beforeDate.getBeforeDays(28), //被保人出生日期可选最大值
filterMaxDate:beforeDate.getBeforeYear(-2), filterMaxDate: beforeDate.getBeforeYear(-2),
popupShow: false, popupShow: false,
areaShow: false, //省级联动 areaShow: false, //省级联动
homeShow: false, //家庭地址联动 homeShow: false, //家庭地址联动
@@ -499,8 +582,11 @@ export default {
relationToInsured: '1', relationToInsured: '1',
idType: '1', //证件类型 idType: '1', //证件类型
idNo: '', //证件号码 idNo: '', //证件号码
certiexpiredate: '', //证件到期时间
effectiveDateType: false, //是否长期
occupationCode: '', //职业代码 occupationCode: '', //职业代码
occupationName: '', //职业名称 occupationName: '', //职业名称
averageAnnualIncome: '', //平均年收入
lifeGrade: '', //寿险等级 lifeGrade: '', //寿险等级
healthGrade: '', //健康等级 healthGrade: '', //健康等级
nativeplace: '1', //国家地区 nativeplace: '1', //国家地区
@@ -511,7 +597,7 @@ export default {
homeName: '', //联系地址 homeName: '', //联系地址
homeAddress: '', //详细地址 homeAddress: '', //详细地址
mobile: '', //移动电话 mobile: '', //移动电话
email: '', //电子邮箱 email: '' //电子邮箱
// effectiveDate: '' //指定生效日期 // effectiveDate: '' //指定生效日期
}, },
//被保人信息 //被保人信息
@@ -519,10 +605,13 @@ export default {
name: '', // 被保人姓名 name: '', // 被保人姓名
idType: '1', //被保人证件类型 idType: '1', //被保人证件类型
idNo: '', //被保人证件号码 idNo: '', //被保人证件号码
certiexpiredate: '', //证件到期时间
effectiveDateType: false, //是否长期
sex: '0', //被保人性别 sex: '0', //被保人性别
birthday: '', //被保人出生日期 birthday: '', //被保人出生日期
occupationCode: '', //职业代码 occupationCode: '', //职业代码
occupationName: '', //职业名称 occupationName: '', //职业名称
averageAnnualIncome: '', //平均年收入
lifeGrade: '', //寿险等级 lifeGrade: '', //寿险等级
healthGrade: '', //健康等级 healthGrade: '', //健康等级
nativeplace: '', //国家地区 nativeplace: '', //国家地区
@@ -533,7 +622,7 @@ export default {
homeName: '', //联系地址 homeName: '', //联系地址
homeAddress: '', //详细地址 homeAddress: '', //详细地址
mobile: '', //移动电话 mobile: '', //移动电话
email: '', //电子邮箱 email: '' //电子邮箱
}, },
selectUser: '', selectUser: '',
areaList: areaList, areaList: areaList,
@@ -550,7 +639,7 @@ export default {
areaCode: '450101', areaCode: '450101',
occupationCode: '', occupationCode: '',
occupationName: '', occupationName: '',
itemProductDTOS: JSON.parse(CacheUtils.getLocItem('itemProductDTOS')), // itemProductDTOS: JSON.parse(CacheUtils.getLocItem('itemProductDTOS')) //
} }
}, },
created() { created() {
@@ -591,6 +680,25 @@ export default {
} }
}, },
methods: { methods: {
//长期状态改变时
effectiveDataTypeChange(val) {
//勾选长期状态时,证件截止日期置空
if (val) {
this.userInfo.certiexpiredate = ''
this.certiexpiredateRequired = false
} else {
this.certiexpiredateRequired = true
}
},
//长期状态改变时--被保人
effectiveDataTypeChangeInsured(val) {
if (val) {
this.insuredInfo.certiexpiredate = ''
this.certiexpiredateRequiredInsured = false
} else {
this.certiexpiredateRequiredInsured = true
}
},
/** /**
* @description: * @description:
* @param {*} data * @param {*} data
@@ -602,8 +710,8 @@ export default {
flag: 'navigation', flag: 'navigation',
extra: { extra: {
title: '职业类别', title: '职业类别',
hiddenRight: '1', hiddenRight: '1'
}, }
}) })
this.occupationShowPicker = false this.occupationShowPicker = false
if (this.insureType === '1') { if (this.insureType === '1') {
@@ -644,11 +752,11 @@ export default {
type: '1', type: '1',
orderDTO: { orderDTO: {
orderInfoDTO: { orderInfoDTO: {
orderNo: orderNo, orderNo: orderNo
}, }
}, }
} }
underWrite(data).then((res) => { underWrite(data).then(res => {
if (res.result == '0') { if (res.result == '0') {
this.$toast.clear() this.$toast.clear()
window.localStorage.setItem('underWriteData', JSON.stringify(res)) window.localStorage.setItem('underWriteData', JSON.stringify(res))
@@ -665,11 +773,11 @@ export default {
flag: 'h5', flag: 'h5',
extra: { extra: {
url: location.origin + `/#/cardList/pay`, url: location.origin + `/#/cardList/pay`,
forbidSwipeBack: 1, forbidSwipeBack: 1
}, },
routerInfo: { routerInfo: {
path: `/cardList/pay`, path: `/cardList/pay`
}, }
}) })
} else { } else {
window.localStorage.setItem('uwResult', res.uwResult) window.localStorage.setItem('uwResult', res.uwResult)
@@ -678,11 +786,11 @@ export default {
flag: 'h5', flag: 'h5',
extra: { extra: {
url: location.origin + '/#/cardList/result', url: location.origin + '/#/cardList/result',
backToFirst: '1', backToFirst: '1'
}, },
routerInfo: { routerInfo: {
path: '/cardList/result', path: '/cardList/result'
}, }
}) })
} }
return true return true
@@ -701,11 +809,11 @@ export default {
extra: { extra: {
title: name, title: name,
// url: 'http://47.96.143.111/pdfjs/web/viewer.html?file=' + url //测试代码 // url: 'http://47.96.143.111/pdfjs/web/viewer.html?file=' + url //测试代码
url: location.origin + '/#/cardList/ShowPDF', url: location.origin + '/#/cardList/ShowPDF'
}, },
routerInfo: { routerInfo: {
path: '/cardList/ShowPDF', path: '/cardList/ShowPDF'
}, }
}) })
}, },
//监听名字变化 //监听名字变化
@@ -754,8 +862,8 @@ export default {
flag: 'navigation', flag: 'navigation',
extra: { extra: {
title: '投被保人信息', title: '投被保人信息',
hiddenRight: '1', hiddenRight: '1'
}, }
}) })
if (this.currentPopupIndex == 1) { if (this.currentPopupIndex == 1) {
if (this.selectUser == '1') { if (this.selectUser == '1') {
@@ -786,7 +894,7 @@ export default {
} else if (pickerType == '4') { } else if (pickerType == '4') {
this.columns = [ this.columns = [
{ id: 0, text: '有' }, { id: 0, text: '有' },
{ id: 1, text: '无' }, { id: 1, text: '无' }
] ]
} else if (pickerType == '5') { } else if (pickerType == '5') {
this.columns = DataDictionary.taxIdentity this.columns = DataDictionary.taxIdentity
@@ -807,16 +915,16 @@ export default {
this.pickerIndex = this.insuredInfo.nativeplace - 1 > 0 ? this.insuredInfo.nativeplace - 1 : 0 this.pickerIndex = this.insuredInfo.nativeplace - 1 > 0 ? this.insuredInfo.nativeplace - 1 : 0
} else if (pickerType == '10') { } else if (pickerType == '10') {
this.columns = [] this.columns = []
this.trialList.forEach((item) => { this.trialList.forEach(item => {
if (item.productCode === 'GFRS_M0022') { if (item.productCode === 'GFRS_M0022') {
this.columns.push({ this.columns.push({
id: this.proSchemeCode, id: this.proSchemeCode,
text: this.proScheme, text: this.proScheme
}) })
} else { } else {
this.columns.push({ this.columns.push({
id: item.proSchemeCode, id: item.proSchemeCode,
text: item.proScheme, text: item.proScheme
}) })
} }
}) })
@@ -826,17 +934,21 @@ export default {
}, },
//确认选择字段 //确认选择字段
onConfirm(value) { onConfirm(value) {
console.log(value, 'value')
this.popupShow = false this.popupShow = false
if (this.pickerType == '1') { if (this.pickerType == '1') {
this.userInfo.nativeplace = value.id this.userInfo.nativeplace = value.id
} else if (this.pickerType == '2') { } else if (this.pickerType == '2') {
// //身份证以外的证件类型可以使用长期 //身份证以外的证件类型可以使用长期
// if (value.id != '1') { //value.id 1 居民身份证 todo
// this.effectiveDateTypeAble = false if (value.id != '1') {
// } else { this.effectiveDateTypeAble = false
// let age = utilsAge.getAge(this.userInfo.birthday, new Date()) } else {
// this.effectiveDateTypeAble = !(age >= 45) if (this.userInfo.birthday) {
// } let age = utilsAge.getAge(this.userInfo.birthday, new Date())
this.effectiveDateTypeAble = !(age >= 45)
}
}
this.userInfo.idType = value.id this.userInfo.idType = value.id
} else if (this.pickerType == '3') { } else if (this.pickerType == '3') {
this.userInfo.degree = value.id this.userInfo.degree = value.id
@@ -868,6 +980,16 @@ export default {
} }
} }
} else if (this.pickerType == '22') { } else if (this.pickerType == '22') {
//身份证以外的证件类型可以使用长期
//value.id 1 居民身份证 todo
if (value.id != '1') {
this.effectiveDateTypeAbleInsured = false
} else {
if (this.userInfo.birthday) {
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
this.effectiveDateTypeAbleInsured = !(age >= 45)
}
}
this.insuredInfo.idType = value.id this.insuredInfo.idType = value.id
} }
}, },
@@ -904,6 +1026,7 @@ export default {
this.$refs.certiexpiredate.date = '' this.$refs.certiexpiredate.date = ''
return return
} }
this.userInfo.effectiveDateType = false
//如果录入日期早于当前日期 //如果录入日期早于当前日期
if (Date.parse(val) < Date.parse(new Date())) { if (Date.parse(val) < Date.parse(new Date())) {
this.userInfo.certiexpiredate = '' this.userInfo.certiexpiredate = ''
@@ -992,6 +1115,26 @@ export default {
this.productDate = currentData + '0时至' + productDateTime + '24时止' this.productDate = currentData + '0时至' + productDateTime + '24时止'
} }
break break
case '7':
{
console.log('证件截止日期')
//被保人--证件截止日期
//如果已经勾选了长期
if (this.insuredInfo.effectiveDateType) {
//清空数据并返回
this.insuredInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
return
}
this.insuredInfo.effectiveDateType = false
//如果录入日期早于当前日期
if (Date.parse(val) < Date.parse(new Date())) {
this.insuredInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
return this.$toast('您的证件已过期')
}
}
break
} }
}, },
//选择客户 //选择客户
@@ -1010,8 +1153,8 @@ export default {
flag: 'navigation', flag: 'navigation',
extra: { extra: {
title: '投被保人信息', title: '投被保人信息',
hiddenRight: '1', hiddenRight: '1'
}, }
}) })
if (this.selectUser == '0') { if (this.selectUser == '0') {
let { customerName, customerSex } = data let { customerName, customerSex } = data
@@ -1023,6 +1166,11 @@ export default {
this.userInfo.idType = data.customerIdType //证件类型 this.userInfo.idType = data.customerIdType //证件类型
this.userInfo.idNo = data.customerIdNumber //证件类别 this.userInfo.idNo = data.customerIdNumber //证件类别
} }
if (data.idEffectEndDate == '9999-01-01') {
this.userInfo.effectiveDateType = true //是否长期
} else {
this.userInfo.certiexpiredate = data.idEffectEndDate //证件截止日期
}
this.userInfo.email = data.email //邮箱 this.userInfo.email = data.email //邮箱
this.userInfo.mobile = data.customerPhone //移动电话 this.userInfo.mobile = data.customerPhone //移动电话
@@ -1039,10 +1187,10 @@ export default {
this.userInfo.healthGrade = data.healthGrade this.userInfo.healthGrade = data.healthGrade
this.userInfo.nativeplace = data.country this.userInfo.nativeplace = data.country
this.userInfo.marriage = data.marryStatus this.userInfo.marriage = data.marryStatus
// 计算年龄 // 计算年龄
// let age = utilsAge.getAge(this.userInfo.birthday, new Date()) let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
this.effectiveDateTypeAble = age <= 45
this.getRelatedData(this.userInfo.idNo, '1') this.getRelatedData(this.userInfo.idNo, '1')
} else if (this.selectUser == '1') { } else if (this.selectUser == '1') {
let { customerName, customerSex } = data let { customerName, customerSex } = data
@@ -1054,7 +1202,11 @@ export default {
this.insuredInfo.idType = data.customerIdType //证件类型 this.insuredInfo.idType = data.customerIdType //证件类型
this.insuredInfo.idNo = data.customerIdNumber //证件类别 this.insuredInfo.idNo = data.customerIdNumber //证件类别
} }
if (data.idEffectEndDate == '9999-01-01') {
this.insuredInfo.effectiveDateType = true //是否长期
} else {
this.insuredInfo.certiexpiredate = data.idEffectEndDate //证件截止日期
}
this.insuredInfo.email = data.email //邮箱 this.insuredInfo.email = data.email //邮箱
this.insuredInfo.mobile = data.customerPhone //移动电话 this.insuredInfo.mobile = data.customerPhone //移动电话
this.insuredInfo.homeProvince = data.homeProvince //家庭省 this.insuredInfo.homeProvince = data.homeProvince //家庭省
@@ -1071,11 +1223,9 @@ export default {
this.insuredInfo.nativeplace = data.country this.insuredInfo.nativeplace = data.country
this.insuredInfo.marriage = data.marryStatus this.insuredInfo.marriage = data.marryStatus
// 计算年龄 // 计算年龄
// let age = utilsAge.getAge(this.userInfo.birthday, new Date()) let age = utilsAge.getAge(this.insuredInfo.birthday, new Date())
// 长期按钮是否禁用
// 计算年龄 this.effectiveDateTypeAbleInsured = age <= 45
// let age = utilsAge.getAge(this.userInfo.birthday, new Date())
this.getRelatedData(this.insuredInfo.idNo, '2') this.getRelatedData(this.insuredInfo.idNo, '2')
} }
// console.log(data, val) // console.log(data, val)
@@ -1088,7 +1238,7 @@ export default {
if (this.userInfo.relationToInsured == 1) { if (this.userInfo.relationToInsured == 1) {
Object.assign(this.insuredInfo, this.userInfo) Object.assign(this.insuredInfo, this.userInfo)
} }
this.$validator.validate().then((valid) => { this.$validator.validate().then(valid => {
if (true === valid) { if (true === valid) {
// localStorage.chooseProductCodesNew = localStorage.chooseProductCodes // localStorage.chooseProductCodesNew = localStorage.chooseProductCodes
//投保人校验 //投保人校验
@@ -1181,9 +1331,19 @@ export default {
console.log('证件号码校验有误') console.log('证件号码校验有误')
return this.$toast('您填写的证件号码有误') return this.$toast('您填写的证件号码有误')
} }
if (age < 46 && this.userInfo.effectiveDateType == true) {
return this.$toast('证件有效期错误年龄小于46周岁的公民身份证有效期不能为长期')
}
// 年龄在 16-25 周岁之间 // 年龄在 16-25 周岁之间
if (age >= 16 && age <= 25) { if (age <= 15) {
if (Date.parse(this.userInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1975-01-01')) {
this.userInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
// this.effectiveDateTypeAble = true
return this.$toast('证件有效期错误未满16周岁的公民身份证有效期应小于等于5年')
}
//年龄在 16-25 周岁之间
} else if (age >= 16 && age <= 25) {
console.log('年龄在16-25周岁之间') console.log('年龄在16-25周岁之间')
if (Date.parse(this.userInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1980-01-01')) { if (Date.parse(this.userInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1980-01-01')) {
this.userInfo.certiexpiredate = '' this.userInfo.certiexpiredate = ''
@@ -1247,14 +1407,25 @@ export default {
console.log('证件号码校验有误') console.log('证件号码校验有误')
return this.$toast('您填写的证件号码有误') return this.$toast('您填写的证件号码有误')
} }
if (age < 46 && this.insuredInfo.effectiveDateType == true) {
return this.$toast('证件有效期错误年龄小于46周岁的公民身份证有效期不能为长期')
}
// 年龄在 16-25 周岁之间 // 年龄在 16-25 周岁之间
if (insuredAge >= 16 && insuredAge <= 25) { if (insuredAge <= 15) {
if (Date.parse(this.insuredInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1975-01-01')) {
this.insuredInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
// this.effectiveDateTypeAble = true
return this.$toast('证件有效期错误未满16周岁的公民身份证有效期应小于等于5年')
}
//年龄在 16-25 周岁之间
} else if (insuredAge >= 16 && insuredAge <= 25) {
console.log('年龄在16-25周岁之间') console.log('年龄在16-25周岁之间')
if (Date.parse(this.insuredInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1980-01-01')) { if (Date.parse(this.insuredInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1980-01-01')) {
this.insuredInfo.certiexpiredate = '' this.insuredInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = '' this.$refs.certiexpiredate.date = ''
this.effectiveDateTypeAble = true this.certiexpiredateRequiredInsured = true
return this.$toast('证件有效期不正常16周岁至25周岁公民身份证有效期应小于等于10年') return this.$toast('证件有效期不正常16周岁至25周岁公民身份证有效期应小于等于10年')
} }
//年龄在 26-45 周岁之间 //年龄在 26-45 周岁之间
@@ -1262,7 +1433,7 @@ export default {
if (Date.parse(this.insuredInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1990-01-01')) { if (Date.parse(this.insuredInfo.certiexpiredate) - Date.parse(new Date()) > Date.parse('1990-01-01')) {
this.insuredInfo.certiexpiredate = '' this.insuredInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = '' this.$refs.certiexpiredate.date = ''
this.effectiveDateTypeAble = true this.certiexpiredateRequiredInsured = true
return this.$toast('证件有效期不正常26周岁至45周岁公民身份证有效期应小于等于20年') return this.$toast('证件有效期不正常26周岁至45周岁公民身份证有效期应小于等于20年')
} }
} }
@@ -1349,11 +1520,11 @@ export default {
orderDTO: { orderDTO: {
orderInfoDTO: { orderInfoDTO: {
bnfFlag: '0', bnfFlag: '0',
supportBank: '0', supportBank: '0'
}, },
appntDTO: this.userInfo, appntDTO: this.userInfo,
insuredDTOs: [this.insuredInfo], insuredDTOs: [this.insuredInfo]
}, }
} }
//组装险种提交数据 //组装险种提交数据
@@ -1380,7 +1551,7 @@ export default {
proScheme: this.proScheme, proScheme: this.proScheme,
proSchemeCode: this.proSchemeCode, proSchemeCode: this.proSchemeCode,
insuYear: insuYearDate.insuYear, insuYear: insuYearDate.insuYear,
insuYearFlag: insuYearDate.insuYearFlag, insuYearFlag: insuYearDate.insuYearFlag
} }
if (item.hasPredictTransferPrem && item.hasPredictTransferPrem === '0') { if (item.hasPredictTransferPrem && item.hasPredictTransferPrem === '0') {
//增加万能险 预计转入保费校验 //增加万能险 预计转入保费校验
@@ -1497,7 +1668,7 @@ export default {
} }
//如果证件校验不通过,恢复默认值 //如果证件校验不通过,恢复默认值
if (idToData(val).text) { if (idToData(val).text) {
;[this.userInfo.idNo, this.userInfo.sex, this.userInfo.birthday] = ['', '0', ''] ;[this.userInfo.idNo, this.userInfo.sex, this.userInfo.birthday, this.effectiveDateTypeAble] = ['', '0', '', false]
return this.$toast(idToData(val).text) return this.$toast(idToData(val).text)
} }
this.userInfo.birthday = idToData(val).birthday this.userInfo.birthday = idToData(val).birthday
@@ -1509,13 +1680,13 @@ export default {
} }
//如果证件校验不通过,恢复默认值 //如果证件校验不通过,恢复默认值
if (idToData(val).text) { if (idToData(val).text) {
;[this.insuredInfo.idNo, this.insuredInfo.sex, this.insuredInfo.birthday] = ['', '0', ''] ;[this.insuredInfo.idNo, this.insuredInfo.sex, this.insuredInfo.birthday, this.effectiveDateTypeAbleInsured] = ['', '0', '', false]
return this.$toast(idToData(val).text) return this.$toast(idToData(val).text)
} }
this.insuredInfo.birthday = idToData(val).birthday this.insuredInfo.birthday = idToData(val).birthday
this.insuredInfo.sex = idToData(val).sex this.insuredInfo.sex = idToData(val).sex
} }
}, }
}, },
// beforeDestroy() { // beforeDestroy() {
// //清理计时器 // //清理计时器
@@ -1550,7 +1721,7 @@ export default {
homeName: '', //联系地址 homeName: '', //联系地址
homeAddress: '', //详细地址 homeAddress: '', //详细地址
mobile: '', //移动电话 mobile: '', //移动电话
email: '', //电子邮箱 email: '' //电子邮箱
} }
if (newV === 2) { if (newV === 2) {
this.userInfo.sex === '0' ? (this.insuredInfo.sex = '1') : (this.insuredInfo.sex = '0') this.userInfo.sex === '0' ? (this.insuredInfo.sex = '1') : (this.insuredInfo.sex = '0')
@@ -1558,7 +1729,7 @@ export default {
} }
}, },
immediate: true, immediate: true,
deep: true, deep: true
}, },
'userInfo.sex': { 'userInfo.sex': {
handler(newV) { handler(newV) {
@@ -1567,9 +1738,9 @@ export default {
} }
}, },
immediate: true, immediate: true,
deep: true, deep: true
}, }
}, }
} }
</script> </script>
<style lang="scss"> <style lang="scss">

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff