Merge branch 'dev_1220' into release/1226

# Conflicts:
#	src/views/ebiz/common/CalculatePremium.vue
#	src/views/ebiz/sale/AccountInformation.vue
#	src/views/ebiz/sale/SignatureConfirmation.vue
This commit is contained in:
皮伟
2019-12-25 13:55:11 +08:00
19 changed files with 1454 additions and 814 deletions

View File

@@ -0,0 +1,134 @@
export default {
province_list: {
450000: '广西壮族自治区'
},
city_list: {
450100: '南宁市',
450200: '柳州市',
450300: '桂林市',
450400: '梧州市',
450500: '北海市',
450600: '防城港市',
450700: '钦州市',
450800: '贵港市',
450900: '玉林市',
451000: '百色市',
451100: '贺州市',
451200: '河池市',
451300: '来宾市',
451400: '崇左市'
},
county_list: {
450102: '兴宁区',
450103: '青秀区',
450105: '江南区',
450107: '西乡塘区',
450108: '良庆区',
450109: '邕宁区',
450110: '武鸣区',
450123: '隆安县',
450124: '马山县',
450125: '上林县',
450126: '宾阳县',
450127: '横县',
450202: '城中区',
450203: '鱼峰区',
450204: '柳南区',
450205: '柳北区',
450206: '柳江区',
450222: '柳城县',
450223: '鹿寨县',
450224: '融安县',
450225: '融水苗族自治县',
450226: '三江侗族自治县',
450302: '秀峰区',
450303: '叠彩区',
450304: '象山区',
450305: '七星区',
450311: '雁山区',
450312: '临桂区',
450321: '阳朔县',
450323: '灵川县',
450324: '全州县',
450325: '兴安县',
450326: '永福县',
450327: '灌阳县',
450328: '龙胜各族自治县',
450329: '资源县',
450330: '平乐县',
450332: '恭城瑶族自治县',
450381: '荔浦市',
450403: '万秀区',
450405: '长洲区',
450406: '龙圩区',
450421: '苍梧县',
450422: '藤县',
450423: '蒙山县',
450481: '岑溪市',
450502: '海城区',
450503: '银海区',
450512: '铁山港区',
450521: '合浦县',
450602: '港口区',
450603: '防城区',
450621: '上思县',
450681: '东兴市',
450702: '钦南区',
450703: '钦北区',
450721: '灵山县',
450722: '浦北县',
450802: '港北区',
450803: '港南区',
450804: '覃塘区',
450821: '平南县',
450881: '桂平市',
450902: '玉州区',
450903: '福绵区',
450921: '容县',
450922: '陆川县',
450923: '博白县',
450924: '兴业县',
450981: '北流市',
451002: '右江区',
451021: '田阳县',
451022: '田东县',
451023: '平果县',
451024: '德保县',
451026: '那坡县',
451027: '凌云县',
451028: '乐业县',
451029: '田林县',
451030: '西林县',
451031: '隆林各族自治县',
451081: '靖西市',
451102: '八步区',
451103: '平桂区',
451121: '昭平县',
451122: '钟山县',
451123: '富川瑶族自治县',
451202: '金城江区',
451203: '宜州区',
451221: '南丹县',
451222: '天峨县',
451223: '凤山县',
451224: '东兰县',
451225: '罗城仫佬族自治县',
451226: '环江毛南族自治县',
451227: '巴马瑶族自治县',
451228: '都安瑶族自治县',
451229: '大化瑶族自治县',
451302: '兴宾区',
451321: '忻城县',
451322: '象州县',
451323: '武宣县',
451324: '金秀瑶族自治县',
451381: '合山市',
451402: '江州区',
451421: '扶绥县',
451422: '宁明县',
451423: '龙州县',
451424: '大新县',
451425: '天等县',
451481: '凭祥市'
}
}

View File

@@ -583,7 +583,7 @@ export default {
},
{
id: '16',
text: '待手动承保'
text: '等待出单'
},
{
id: '17',
@@ -704,6 +704,42 @@ export default {
{
id: '46',
text: '自核不通过待转人核'
},
{
id: '47',
text: '核心系统繁忙,请稍后重试'
},
{
id: '48',
text: '修改账户信息'
},
{
id: '49',
text: '修改银行影像信息'
},
{
id: '50',
text: '待人核'
},
{
id: '51',
text: '人工核保中'
},
{
id: '52',
text: '问题件处理中'
},
{
id: '53',
text: '待收费'
},
{
id: '54',
text: '延期'
},
{
id: '55',
text: '支付失败'
}
],
// 产品编码

View File

@@ -1,5 +1,6 @@
// 获取省市区名称
import area from '@/assets/js/utils/area'
import areaNew from '@/assets/js/utils/areaNew'
/**
* 获取省市区名称
@@ -13,9 +14,13 @@ import area from '@/assets/js/utils/area'
// return area.province_list[provinceCode] + '-' + area.city_list[cityCode] + '-' + area.county_list[areaCode]
// }
export default function getAreaName(data) {
export default function getAreaName(data, from) {
if (data.length == 3) {
if (from == 'new') {
return areaNew.province_list[data[0].code] + '-' + areaNew.city_list[data[1].code] + '-' + areaNew.county_list[data[2].code]
} else {
return area.province_list[data[0].code] + '-' + area.city_list[data[1].code] + '-' + area.county_list[data[2].code]
}
} else {
return area.province_list[data[0].code] + '-' + area.city_list[data[1].code]
}

View File

@@ -190,7 +190,7 @@
</van-popup>
<!-- 家庭地址选择 -->
<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="areaLists" value="450000" @confirm="sureArea($event, '2')" @cancel="homeShow = false" />
</van-popup>
<!-- 户籍选择 -->
<van-popup v-model="censusShow" position="bottom">
@@ -206,6 +206,7 @@ import FieldDatePicter from '@/components/ebiz/FieldDatePicter'
import DataDictionary from '@/assets/js/utils/data-dictionary'
import OccupationPicker from '@/components/ebiz/occipation/OccupationPicker'
import areaList from '@/assets/js/utils/area'
import areaLists from '@/assets/js/utils/areaNew'
import utilsAge from '@/assets/js/utils/age'
import getAreaName from '@/assets/js/utils/get-area-name'
import idNoCheck from '@/assets/js/utils/idNoCheck'
@@ -248,6 +249,7 @@ export default {
homeName: '', //家庭地址
marriage: '',
areaList: areaList,
areaLists: areaLists,
customerType: '',
customerSource: '',
age: '',
@@ -546,7 +548,7 @@ export default {
this.areaShow = false
break
case '2': //家庭地址
this.homeName = getAreaName(area)
this.homeName = getAreaName(area, 'new')
;[this.userInfo.homeProvince, this.userInfo.homeCity, this.userInfo.homeArea] = [area[0].code, area[1].code, area[2].code]
this.homeShow = false
break

View File

@@ -11,31 +11,24 @@ let apiDomain, imgDomain, assetsUrl, mainUrl, payUrl // 保融支付的收银台
console.log('环境:', process.env.VUE_APP_FLAG)
switch (process.env.VUE_APP_FLAG) {
case 'dev':
// apiDomain = 'http://47.96.143.111:7000/api/v1'
apiDomain = 'http://139.199.50.151:7000/api/v1' // 国富api
// apiDomain = 'http://10.11.2.247004/'
// imgDomain = 'http://10.10.100.98:7012/updown' // dev
imgDomain = 'http://211.159.248.123:7012/updown' // dev
// 静态服务资源
assetsUrl = 'http://139.199.50.151:8000/app/'
mainUrl = 'http://139.199.50.151'
// payUrl = 'http://10.10.100.84:7003/s3-modules-gateway/embed/gateway.action'
payUrl = 'http://funduat.e-guofu.com/s3-modules-gateway/embed/gateway.action'
break
case 'uat':
apiDomain = ''
imgDomain = ''
apiDomain = 'http://115.159.235.59:7000/api/v1' // 国富api
imgDomain = 'http://139.199.50.145:7012/updown'
// 静态服务资源
assetsUrl = ''
mainUrl = ''
payUrl = ''
assetsUrl = 'http://115.159.235.59:8000/app/'
mainUrl = 'http://115.159.235.59'
payUrl = 'http://funduat.e-guofu.com/s3-modules-gateway/embed/gateway.action'
break
case 'prd':
apiDomain = 'https://iagentsales.e-guofu.com/api/v1'
imgDomain = 'https://iagentsales-ud.e-guofu.com:8553/updown'
// imgDomain = 'http://10.10.100.98:7012/updown' // 上生产前
// 静态服务资源
// assetsUrl = 'http://211.159.248.138:7001/' // 上生产前
assetsUrl = 'https://iagentsales-sr.e-guofu.com:8443/'
mainUrl = 'https://iagentsales.e-guofu.com'
payUrl = 'https://uns3.e-guofu.com/s3-modules-gateway/embed/gateway.action'

View File

@@ -21,16 +21,18 @@
<div v-if="item.isRemit == 1">
<div v-for="(riskFactor, riskFactorIndex) in item.calFactorLst" :key="riskFactorIndex">
<div class="flex justify-content-s pv10 border-bottom" v-if="riskFactor.type == 1">
<div class="flex">
<div class="flex align-items-c">
<span v-if="riskFactor.suffix" class="fs14"> {{ riskFactor.name + '(' + riskFactor.suffix + ')' }} </span>
<span v-else class="fs14"> {{ riskFactor.name }} &nbsp;&nbsp; &nbsp;&nbsp;</span>
<!-- {{riskFactorIndex}} -->
<van-stepper
v-model="item.calFactorLst[riskFactorIndex].defaultValue"
v-model="defalutAmt"
:min="riskFactor.minAmt || riskFactor.minPrem"
:max="riskFactor.maxAmt || riskFactor.maxPrem"
class="ml10"
@change="stepperChange(item.calFactorLst[riskFactorIndex].defaultValue, index, riskFactorIndex)"
:show-plus="false"
:show-minus="false"
class="ml30"
@change="stepperChange(item.calFactorLst[riskFactorIndex].defaultValue, index, riskFactorIndex, (riskFactor.minAmt || riskFactor.minPrem), (riskFactor.maxAmt || riskFactor.maxPrem) )"
input-width="100"
:integer="false"
/>
@@ -60,6 +62,8 @@
v-model="dutyItem.defaultDutyAmt"
:min="dutyItem.minDutyAmt"
:max=" dutyItem.maxDutyAmt"
:show-plus="false"
:show-minus="false"
class="ml10 mr10"
@focus="focusStep"
@blur="blurStep"
@@ -74,7 +78,7 @@
dutyItem.maxDutyAmt
)
"
input-width="100"
input-width="200"
:integer="false"
/>
<van-checkbox
@@ -144,7 +148,8 @@ export default {
[Picker.name]: Picker,
[Stepper.name]: Stepper,
[Field.name]: Field,
[Checkbox.name]: Checkbox
[Checkbox.name]: Checkbox,
[Dialog.name]: Dialog
},
data() {
return {
@@ -169,7 +174,9 @@ export default {
policyNo: '',
// 份数
mult: '',
isFrom: ''
isFrom: '',
// 默认钱数
defalutAmt: ''
}
},
mounted() {
@@ -204,11 +211,14 @@ export default {
if (item.mainRiskCode == 'GFRS_M0006') {
item.isHidden = true
}
if(item.mainRiskCode != 'GFRS_M0008') {
item.calFactorLst.map(i => {
if (i.defaultValue) {
this.mult = i.defaultValue
}
this.defalutAmt = i.displayAmount
console.log(i.displayAmount)
console.log(i.defaultValue)
this.mult = Number(i.displayAmount) / Number(i.defaultValue)
})
}
})
// this.influenceAddRiskCodes
@@ -226,12 +236,23 @@ export default {
},
// 责任保额份数变化
dutyStepperChange(value, productIndex, calFactorIndex, dutyItemIndex, isChecked, min, max) {
let currentEle = this.chooseProducts[productIndex].calFactorLst[calFactorIndex].rules[dutyItemIndex]
if (value < min || value > max) {
this.nextStepFlag = true
this.changeFlag = false
this.$toast(localStorage.hint)
} else {
this.changeFlag = true
}
if ((Number(value) * 10000) % (Number(currentEle.limit) * 10000) != 0) {
Dialog.alert({
message: localStorage.hint
}).then(()=> {
currentEle.defaultDutyAmt = currentEle.minDutyAmt
})
// this.$toast(localStorage.hint)
} else {
// this.mainRiskInfluenceAddRisk()
// currentEle['amt'] = Number(currentEle.defaultValue) * Number(currentEle.moneyUnit)
// this.getTrial()
if (isChecked) {
;[this.productIndex, this.calFactorIndex] = [productIndex, calFactorIndex]
let currentEle = this.chooseProducts[productIndex].calFactorLst[calFactorIndex].rules
@@ -247,6 +268,10 @@ export default {
item.amt = Number(item.minDutyAmt) * Number(item.moneyUnit)
})
}
}
}
},
//弹框选择
toSelect(index, index1, columns) {
@@ -623,9 +648,9 @@ export default {
}
} else if (factor.type == 1) {
if (factor.code == 'inputPrem') {
trialInfo['prem'] = Number(factor.defaultValue) * Number(factor.moneyUnit)
trialInfo['prem'] = Number(this.defalutAmt) * Number(factor.moneyUnit)
} else {
trialInfo['amt'] = Number(factor.defaultValue) * Number(factor.moneyUnit)
trialInfo['amt'] = Number(this.defalutAmt) * Number(factor.moneyUnit)
}
} else if (factor.type == 2) {
trialInfo.jobLevel = this.saleInsuredPersonInfo[factor.code]
@@ -707,24 +732,29 @@ export default {
})
},
//保额份数变化
stepperChange(value, productIndex, calFactorIndex) {
stepperChange(defalutValue, productIndex, calFactorIndex, min, max ) {
// debugger
let currentEle = this.chooseProducts[productIndex].calFactorLst[calFactorIndex]
if (Number(this.defalutAmt) < Number(min) || Number(this.defalutAmt) > Number(max)) {
this.$toast(localStorage.hint)
this.nextStepFlag = true
} else {
if ((Number(this.defalutAmt) * 10000) % (Number(currentEle.limit) * 10000) != 0) {
// this.defalutAmt = currentEle.rules[productIndex].displayAmount
this.$toast(localStorage.hint)
this.nextStepFlag = true
} else {
this.mainRiskInfluenceAddRisk()
currentEle['amt'] = Number(this.defalutAmt) * Number(currentEle.moneyUnit)
this.getTrial()
}
}
// let currentEle = this.chooseProducts[this.productIndex].calFactorLst[this.calFactorIndex]
// currentEle.defaultValue = value
console.log('进来几次')
this.mult = value
let currentEle = this.chooseProducts[productIndex].calFactorLst[calFactorIndex]
if ((Number(value) * 10000) % (Number(currentEle.limit) * 10000) != 0) {
Dialog.alert({
message: localStorage.hint
}).then(() => {
currentEle.defaultValue = currentEle.rules[productIndex].defaultValue
// this.nextStepFlag = true
})
} else {
this.mainRiskInfluenceAddRisk()
currentEle['amt'] = Number(currentEle.defaultValue) * Number(currentEle.moneyUnit)
this.getTrial()
}
this.mult = Number(this.defalutAmt) / Number(defalutValue)
},
//下一步
async nextStep() {

View File

@@ -380,6 +380,7 @@ export default {
insuredDTOs = formatRiskList(insuredDTOs, 'insuredDTOs', 'riskDTOLst')
this.insuredDTOs = insuredDTOs[0].insuredDTOs
this.insuredDTOs = relevance(this.insuredDTOs, insuredLabelResult, insuredResult, insuredInfoResult, this.amtFormat, this.dutyLst) //进行数据关联
// console.log('insuredDTOs',insuredDTOs)
this.getWXTitle(this.insuredDTOs) //获取微信标题
let active = this.insuredDTOs.length //默认展开项
this.activeNames = [active]

View File

@@ -2,7 +2,7 @@
<div class="accountInformation-container">
<div class="aaountInfomation-content" v-if="!isScan">
<van-radio-group v-model="radio" class="flex pl30 pr30 pt15 pb15 justify-content-s bg-white mt10">
<van-radio name="0" class="fs14" @click="clickRadio(saleInsuredInfo.name)">{{ `投保人${saleInsuredInfo.name}` }}</van-radio>
<van-radio name="0" class="fs14" @click="clickRadio(saleInsuredInfo.name)" v-if="!changeCard">{{ `投保人${saleInsuredInfo.name}` }}</van-radio>
<!-- <van-radio name="1" class="fs14" v-if="relationToAppnt != '1'" @click="clickRadio(saleInsuredPersonInfo.name)">{{
`被保人${saleInsuredPersonInfo.name}`
}}</van-radio> -->
@@ -22,10 +22,12 @@
v-validate="'required|bankCard'"
data-vv-name="银行卡号"
/>
<van-button type="danger" size="small" class="bankCard mr10 w110 h20" @click="cardScanning('0')" v-no-more-click="1000">银行卡扫描</van-button>
<van-button type="danger" size="small" class="bankCard mr10 w110 h20" @click="cardScanning('0')" v-no-more-click="1000" v-if="!changeCard"
>银行卡扫描</van-button
>
</van-cell-group>
<van-cell-group class="flex align-items-c" v-if="isAutoPay == '0'">
<van-cell-group class="flex align-items-c" v-if="isAutoPay == '0' && !changeCard">
<van-switch-cell v-model="checked" title="是否自动垫交" active-color="#E9332E" inactive-color="#fff" class="ml15 pr30" />
<van-icon
name="question-o"
@@ -39,7 +41,7 @@
"
/>
</van-cell-group>
<van-cell-group class="flex align-items-c" v-if="isRenew == '0'">
<van-cell-group class="flex align-items-c" v-if="isRenew == '0' && !changeCard">
<van-switch-cell v-model="isChecked" title="自动续保" active-color="#E9332E" inactive-color="#fff" class="ml15 pr30" />
</van-cell-group>
<div class="fs12 mt10 ml20 w250 h15">
@@ -140,7 +142,8 @@ export default {
// 是否显示自动垫交
isAutoPay: '',
// 是否显示自动续保
isRenew: ''
isRenew: '',
changeCard: localStorage.changeCard
}
},
methods: {
@@ -238,8 +241,27 @@ export default {
that.$validator.validate().then(valid => {
if (valid === true) {
let data = {}
//支付失败换卡
if (localStorage.changeCard) {
data = {
orderType: 'ACCOUNTNEW_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
},
orderAccountDTO: {
bankName: that.bank,
bankCode: that.bankCode,
cvv2Code: '0',
cardBookCode: that.bankId
}
}
}
} else {
// 垫付
if (that.checked == true) {
// 续保
if (this.isChecked == true) {
data = {
orderType: 'ACCOUNT_ORDER',
@@ -261,6 +283,7 @@ export default {
}
}
} else {
// 垫付不续保
data = {
orderType: 'ACCOUNT_ORDER',
@@ -282,6 +305,7 @@ export default {
}
}
} else {
// 不垫付 续保
if (this.isChecked == true) {
data = {
orderType: 'ACCOUNT_ORDER',
@@ -303,6 +327,7 @@ export default {
}
}
} else {
// 不垫付 不续保
data = {
orderType: 'ACCOUNT_ORDER',
@@ -324,6 +349,7 @@ export default {
}
}
}
}
saveInformation(data).then(res => {
if (res.result == '0') {

View File

@@ -62,7 +62,7 @@
ref="birthday"
:readonly="isInsured"
></FieldDatePicter>
<FieldDatePicter
<!-- <FieldDatePicter
v-validate="'required'"
label="证件起始日期"
name="证件起始日期"
@@ -74,12 +74,12 @@
ref="certificateValidate"
:flag="true"
:readonly="isInsured || idLimit"
></FieldDatePicter>
></FieldDatePicter> -->
<FieldDatePicter
:v-validate="{ required: certiexpiredateRequired }"
label="证件截止日期"
name="证件截止日期"
required
:required="isRequired"
:defaultDate="new Date()"
:value.sync="userInfo.certiexpiredate"
type="date"
@@ -104,7 +104,7 @@
placeholder="请选择"
@click="toSelect('1')"
/>
<van-field
<!-- <van-field
v-model="userInfo.mobile"
clearable
label="联系电话"
@@ -114,8 +114,8 @@
v-validate="'required|mobile'"
maxlength="11"
:readonly="isInsured"
/>
<van-field
/> -->
<!-- <van-field
v-model="areaName"
readonly
label="联系地址"
@@ -125,8 +125,8 @@
placeholder="请选择"
v-validate="'required'"
@click="chooseArea"
/>
<van-field
/> -->
<!-- <van-field
v-model="userInfo.village"
label=""
name="详细地址"
@@ -135,12 +135,12 @@
clearable
maxlength="30"
:readonly="isInsured"
/>
/> -->
<div class="relative border-bt fs14 p10 flex align-center">
<van-checkbox v-model="userInfo.asAppntAddress" @change="asAppntAddress" :disabled="isInsured">同投保人</van-checkbox>
</div>
<van-field v-model="userInfo.email" required label="电子邮箱" name="电子邮箱" placeholder="请输入" v-validate="'required|email'" clearable :readonly="isInsured" />
<occupation-picker
<!-- <van-field v-model="userInfo.email" required label="电子邮箱" name="电子邮箱" placeholder="请输入" v-validate="'required|email'" clearable :readonly="isInsured" /> -->
<!-- <occupation-picker
:value.sync="userInfo.occupationCode"
:chooseName.sync="userInfo.occupationName"
:lifeGrade.sync="userInfo.lifeGrade"
@@ -154,8 +154,17 @@
:parentShowPicker.sync="occupationShowPicker"
@on-click="selectClick('2')"
@on-choose="chooseOccupation"
/> -->
<van-field
v-model="userInfo.bnfOrder"
required
readonly
label="受益顺序"
name="受益顺序"
placeholder="请输入"
v-validate="'required|onlyNumber'"
maxlength="1"
/>
<van-field v-model="userInfo.bnfOrder" required readonly label="受益顺序" name="受益顺序" placeholder="请输入" v-validate="'required|onlyNumber'" maxlength="1" />
<van-field
v-model="userInfo.bnfLot"
label="受益比例(%)"
@@ -180,9 +189,9 @@
<van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false" />
</van-popup>
<!-- 地区选择 -->
<van-popup v-model="areaShow" position="bottom">
<!-- <van-popup v-model="areaShow" position="bottom">
<van-area :area-list="areaList" :value="areaValue" @confirm="sureArea($event, '1')" @cancel="areaShow = false" />
</van-popup>
</van-popup> -->
</div>
</template>
@@ -202,7 +211,8 @@ import CustomerPicker from '@/components/ebiz/customer/CustomerPicker'
import idNoCheck from '@/assets/js/utils/idNoCheck'
import { idToData } from './js/verification'
import { selectComp } from './js/methods'
let relationToInsured = [{ id: 2, text: '配偶' }, { id: 3, text: '父母' }, { id: 4, text: '子女' }, { id: 5, text: '其他' }]
// let relationToInsured = [{ id: 2, text: '配偶' }, { id: 3, text: '父母' }, { id: 4, text: '子女' }, { id: 5, text: '其他' }]
let relationToInsured = [{ id: 2, text: '配偶' }, { id: 3, text: '父母' }, { id: 4, text: '子女' }]
export default {
name: 'insuredInfo',
@@ -250,6 +260,7 @@ export default {
certiexpiredateRequired: true, //证件截止日期是否需要校验
certiexpiredateShow: true, //证件截止日期是否可以选择
marriage: '',
isRequired: '', //长期前是否有*
userInfo: {
name: '',
sex: '0',
@@ -257,20 +268,20 @@ export default {
birthday: '',
idType: '1', //证件类型
idNo: '', //证件号码
certificateValidate: '', //证件起始日期
// certificateValidate: '', //证件起始日期
certiexpiredate: '', //证件到期时间
effectiveDateType: false, //是否长期
asAppntAddress: false, //同投保人地址
occupationCode: '',
occupationName: '',
mobile: '',
// mobile: '',
workcompany: '', //工作单位
village: '',
province: '',
city: '',
area: '',
// province: '',
// city: '',
// area: '',
fIncome: '',
email: '',
// email: '',
bnfOrder: '1', //受益顺序
bnfLot: '', //受益比例
bnfFlag: '',
@@ -395,7 +406,8 @@ export default {
;[this.userInfo.nativeplace, this.nativeplace] = [value.id, value.text]
} else if (this.pickerType == '2') {
this.idLimit = false
this.userInfo.idNo = this.userInfo.certificateValidate = this.userInfo.certiexpiredate = this.userInfo.birthday = ''
// this.userInfo.idNo = this.userInfo.certificateValidate = this.userInfo.certiexpiredate = this.userInfo.birthday = ''
this.userInfo.idNo = this.userInfo.certiexpiredate = this.userInfo.birthday = ''
this.userInfo.sex = '0'
this.effectiveDateTypeAble = false
console.log(value.id)
@@ -435,10 +447,10 @@ export default {
console.log(this.userInfo)
setTimeout(() => {
this.userInfo.city = insuredInfo.homeCity //家庭市
this.userInfo.area = insuredInfo.homeArea //家庭区
this.userInfo.province = insuredInfo.homeProvince //家庭省
this.areaName = getAreaName([{ code: insuredInfo.homeProvince }, { code: insuredInfo.homeCity }, { code: insuredInfo.homeArea }]) //家庭地址
// this.userInfo.city = insuredInfo.homeCity //家庭市
// this.userInfo.area = insuredInfo.homeArea //家庭区
// this.userInfo.province = insuredInfo.homeProvince //家庭省
// this.areaName = getAreaName([{ code: insuredInfo.homeProvince }, { code: insuredInfo.homeCity }, { code: insuredInfo.homeArea }]) //家庭地址
this.userInfo.village = insuredInfo.homeAddress //家庭详细地址
}, 0)
@@ -481,24 +493,24 @@ export default {
//证件起始截止日期
onDateConfirm(val, type) {
switch (type) {
case '0':
{
//证件起始日期
//如果录入日期早于出生日期或晚于当前日期
if (Date.parse(val) > Date.parse(new Date()) || Date.parse(val) < Date.parse(this.userInfo.birthday)) {
this.userInfo.certificateValidate = ''
this.$refs.certificateValidate.date = ''
return this.$toast('证件起始日期填写错误')
}
// case '0':
// {
// //证件起始日期
// //如果录入日期早于出生日期或晚于当前日期
// if (Date.parse(val) > Date.parse(new Date()) || Date.parse(val) < Date.parse(this.userInfo.birthday)) {
// this.userInfo.certificateValidate = ''
// this.$refs.certificateValidate.date = ''
// return this.$toast('证件起始日期填写错误')
// }
// 计算年龄
// 长期按钮是否禁用
if (this.userInfo.idType == '1') {
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
this.effectiveDateTypeAble = age <= 45
}
}
break
// // 计算年龄
// // 长期按钮是否禁用
// if (this.userInfo.idType == '1') {
// let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// this.effectiveDateTypeAble = age <= 45
// }
// }
// break
case '1':
{
//证件截止日期
@@ -576,22 +588,22 @@ export default {
this.userInfo.birthday = data.birthday //出生日期
this.userInfo.idType = data.customerIdType //证件类型
this.userInfo.idNo = data.customerIdNumber //证件号码
this.userInfo.certificateValidate = data.idEffectStartDate //证件起始日期
// this.userInfo.certificateValidate = data.idEffectStartDate //证件起始日期
this.userInfo.certiexpiredate = data.idEffectEndDate //证件截止日期
this.userInfo.effectiveDateType = data.idEffectEndDate == '9999-01-01' //是否长期
this.userInfo.occupationCode = data.occupationCode //职业类别编码
this.userInfo.occupationName = data.occupationName //职业类别名称
this.userInfo.lifeGrade = data.lifeGrade //寿险等级
this.userInfo.healthGrade = data.healthGrade //健康等级
this.userInfo.mobile = data.customerPhone //移动电话
this.userInfo.email = data.email //电子邮箱
// this.userInfo.mobile = data.customerPhone //移动电话
// this.userInfo.email = data.email //电子邮箱
this.userInfo.province = data.homeProvince //家庭省
this.userInfo.city = data.homeCity //家庭市
this.userInfo.area = data.homeArea //家庭区
this.userInfo.village = data.homeAddress //家庭详细地址
if (data.homeProvince.length) {
this.areaName = getAreaName([{ code: data.homeProvince }, { code: data.homeCity }, { code: data.homeArea }]) //家庭地址
}
// if (data.homeProvince.length) {
// this.areaName = getAreaName([{ code: data.homeProvince }, { code: data.homeCity }, { code: data.homeArea }]) //家庭地址
// }
//计算年龄
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
@@ -841,16 +853,20 @@ export default {
//勾选长期状态时,证件截止日期置空
if (val) {
this.userInfo.certiexpiredate = ''
this.isRequired = false
this.idLimit = true
this.certiexpiredateRequired = false
} else {
this.certiexpiredateRequired = true
this.isRequired = true
this.idLimit = false
}
},
//获取身份证扫描信息
getIdentityInfo(data) {
console.log(data)
if (data.name && data.name != '待识别') {
this.userInfo.certificateValidate = data.startDate
// this.userInfo.certificateValidate = data.startDate
this.userInfo.certiexpiredate = data.endDate
this.userInfo.name = data.name
this.userInfo.idNo = data.idNo
@@ -891,6 +907,16 @@ export default {
this.effectiveDateTypeAble = idToData(val).age < 45
this.userInfo.birthday = idToData(val).birthday
this.userInfo.sex = idToData(val).sex
if (idToData(val).age >= 45) {
this.idLimit = true
this.isRequired = false
this.userInfo.effectiveDateType = true
this.effectiveDateTypeAble = true
} else {
this.idLimit = false
this.isRequired = true
this.userInfo.effectiveDateType = false
}
//如果选择户口本
// if (this.userInfo.idType == '2') {
// let exipreDate = Date.parse(this.userInfo.birthday) + Date.parse('1985-12-31')

View File

@@ -1,6 +1,25 @@
<template>
<div>
<div class=" pb80">
<div v-if="changeCard">
<div class="flex p10 align-items-c bg-white mt10">
<span>投保人附件</span>
</div>
<van-cell-group>
<van-field required label="银行卡账户" disabled />
</van-cell-group>
<div @click="test('fileListBank', saleInsuredInfo.idType)">
<van-uploader
name="fileListBank"
v-model="fileListBank"
:after-read="afterRead"
@delete="deleteImg"
:before-delete="beforeDelete"
class="mt10 ml20"
:max-count="1"
/>
</div>
</div>
<div v-else>
<div>
<div class="flex p10 align-items-c bg-white mt10">
<!-- <div class="attachmentManagement-block"></div> -->
@@ -120,7 +139,7 @@
:max-count="1"
/>
</div>
<van-cell-group>
<!-- <van-cell-group>
<van-field required label="银行卡反面" disabled />
</van-cell-group>
<div @click="test('fileListBankBack', saleInsuredInfo.idType)">
@@ -133,7 +152,7 @@
class="mt10 ml20"
:max-count="1"
/>
</div>
</div> -->
</div>
</div>
</div>
@@ -199,7 +218,7 @@
</div>
</div>
<!-- 受益人类型 -->
<div v-if="typebeneficiary == true">
<!-- <div v-if="typebeneficiary == true">
<div class="flex bg-white p10 align-items-c">
<span>受益人附件</span>
</div>
@@ -219,14 +238,14 @@
/>
</div>
</div>
</div>
</div> -->
<!-- 受益人类型end -->
<div>
<div class="flex bg-white p10 align-items-c">
<!-- <div> -->
<!-- <div class="flex bg-white p10 align-items-c"> -->
<!-- <div class="attachmentManagement-block"></div> -->
<span>其他</span>
</div>
<div class="m20 bg-white">
<!-- <span>其他</span>
</div> -->
<!-- <div class="m20 bg-white">
<div @click="test('fileListOther', saleInsuredPersonInfo.idType)" class="flex">
<van-uploader
name="fileListOtherOne"
@@ -257,14 +276,13 @@
/>
</div>
</div>
</div> -->
</div>
<div class="ml30 mt30">
<div class="ml30 mt30 mb80">
<van-radio-group v-model="radio">
<van-radio name="1">销售人员已见证各证件原件并拍照上传</van-radio>
</van-radio-group>
</div>
</div>
<div class="bg-white bottom-btn">
<van-button type="danger" class="attachmentManagement-next" size="large" :disabled="isDisabled" @click="next" v-no-more-click="1000">下一步</van-button>
</div>
@@ -297,7 +315,7 @@ export default {
// 银行卡正面
fileListBank: [],
//银行卡反面
fileListBankBack: [],
// fileListBankBack: [],
// 被保人身份证正面
fileListIdFrontInsured: [],
// 被保人身份证反面
@@ -307,12 +325,12 @@ export default {
// 被保人其他类型页面
fileLIstImgInsured: [],
// 受益人
fileListtypebeneficiary: [],
// fileListtypebeneficiary: [],
// fileLIstImgInsrued
// 其他
fileListOtherOne: [],
fileListOtherTwo: [],
fileListOtherThree: [],
// fileListOtherOne: [],
// fileListOtherTwo: [],
// fileListOtherThree: [],
// 单选框
radio: '',
// 是否可以点击下一步
@@ -337,7 +355,8 @@ export default {
// 是哪个证件类型
id: '',
// 投保人被保人是否是一个人 1为同一个人
relationToAppnt: ''
relationToAppnt: '',
changeCard: localStorage.changeCard
}
},
created() {
@@ -362,6 +381,9 @@ export default {
}
},
mounted() {
if (this.changeCard) {
document.body.style.backgroundColor = '#fff'
}
let that = this
// 投被保人是否同人
that.relationToAppnt = JSON.parse(window.localStorage.getItem('saleInsuredPersonInfo')).relationToAppnt
@@ -507,8 +529,8 @@ export default {
this.fileLIstImg = []
} else if (detail.name == 'fileListBank') {
this.fileListBank = []
} else if (detail.name == 'fileListBankBack') {
this.fileListBankBack = []
// } else if (detail.name == 'fileListBankBack') {
// this.fileListBankBack = []
} else if (detail.name == 'fileListIdFrontInsured') {
this.fileListIdFrontInsured = []
} else if (detail.name == 'fileListIdBackInsured') {
@@ -517,24 +539,24 @@ export default {
this.fileListBankInsured = []
} else if (detail.name == 'fileLIstImgInsured') {
this.fileLIstImgInsured = []
} else if (detail.name == 'fileListOtherOne') {
this.fileListOtherOne = []
} else if (detail.name == 'fileListOtherTwo') {
this.fileListOtherTwo = []
} else if (detail.name == 'fileListOtherThree') {
this.fileListOtherThree = []
// } else if (detail.name == 'fileListOtherOne') {
// this.fileListOtherOne = []
// } else if (detail.name == 'fileListOtherTwo') {
// this.fileListOtherTwo = []
// } else if (detail.name == 'fileListOtherThree') {
// this.fileListOtherThree = []
} else if (detail.name == 'saleInsuredInfoOther') {
this.saleInsuredInfoOther = []
} else if (detail.name == 'saleInsuredPersonInfoOther') {
this.saleInsuredPersonInfoOther = []
} else if (detail.name == 'fileListtypebeneficiary') {
that.fileListtypebeneficiary.map((item, index, array) => {
if (item.content == file.content) {
array.splice(index, 1)
} else {
return
}
})
// } else if (detail.name == 'fileListtypebeneficiary') {
// that.fileListtypebeneficiary.map((item, index, array) => {
// if (item.content == file.content) {
// array.splice(index, 1)
// } else {
// return
// }
// })
}
this.deleteImg(file)
})
@@ -555,9 +577,9 @@ export default {
case 'fileListBank':
that.type = type
break
case 'fileListBankBack':
that.type = type
break
// case 'fileListBankBack':
// that.type = type
// break
case 'fileListOther':
that.type = type
break
@@ -642,7 +664,7 @@ export default {
that.type == 'fileListIdBack' ||
that.type == 'fileLIstImg' ||
that.type == 'fileListBank' ||
that.type == 'fileListBankBack' ||
// that.type == 'fileListBankBack' ||
that.type == 'saleInsuredInfoOther'
) {
// 是投保人
@@ -718,9 +740,9 @@ export default {
} else if (that.type == 'fileListBank') {
//银行卡正面
imageInfoType = '3'
} else if (that.type == 'fileListBankBack') {
//银行卡反面
imageInfoType = '19'
// } else if (that.type == 'fileListBankBack') {
// //银行卡反面
// imageInfoType = '19'
}
let obj = {
businessNo: that.orderNo,
@@ -804,21 +826,20 @@ export default {
}
that.list.push(obj)
} else if (that.type == 'fileListtypebeneficiary') {
// 是受益人
let type = '3'
let obj = {
businessNo: that.orderNo,
businessType: '',
imageInfoType: '21',
rgssUrl: encodeURI(res.path).replace(/\+/g, '%2B'),
subBusinessType: type,
subBusinessNo: '',
fileName: that.imgName
// } else if (that.type == 'fileListtypebeneficiary') {
// // 是受益人
// let type = '3'
// let obj = {
// businessNo: that.orderNo,
// businessType: '',
// imageInfoType: '21',
// rgssUrl: encodeURI(res.path).replace(/\+/g, '%2B'),
// subBusinessType: type,
// subBusinessNo: '',
// fileName: that.imgName
// }
// that.list.push(obj)
}
that.list.push(obj)
}
} else {
switch (that.type) {
case 'fileListIdFront':
@@ -833,9 +854,9 @@ export default {
case 'fileListBank':
that.fileListBank = []
break
case 'fileListBankBack':
that.fileListBankBack = []
break
// case 'fileListBankBack':
// that.fileListBankBack = []
// break
case 'fileListOther':
that.fileListOther = []
break
@@ -900,17 +921,16 @@ export default {
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo'),
productCode: JSON.parse(localStorage.trialList)[0].productCode
productCode: this.$route.query.edit ? localStorage.productCode : JSON.parse(localStorage.trialList)[0].productCode
},
appntDTO: {
relationToInsured: that.saleInsuredPersonInfo.relationToAppnt
},
mediaDTOS: that.list
},
orderType: 'MEDIA_ORDER'
orderType: that.changeCard ? 'MEDIANEW_ORDER' : 'MEDIA_ORDER'
}
saveInformation(data).then(res => {
if (res.result == '0') {
this.$toast.clear()
@@ -972,7 +992,7 @@ export default {
fileListIdFront,
fileListIdBack,
fileListBank,
fileListBankBack,
// fileListBankBack,
radio,
fileLIstImg,
fileListIdFrontInsured,
@@ -980,15 +1000,15 @@ export default {
fileListBankInsured,
fileLIstImgInsured,
saleInsuredPersonInfoOther,
saleInsuredInfoOther,
fileListtypebeneficiary
saleInsuredInfoOther
// fileListtypebeneficiary
} = this
console.log(this)
return {
fileListIdFront,
fileListIdBack,
fileListBank,
fileListBankBack,
// fileListBankBack,
radio,
fileListIdFrontInsured,
fileListIdBackInsured,
@@ -996,25 +1016,33 @@ export default {
fileLIstImgInsured,
fileLIstImg,
saleInsuredPersonInfoOther,
saleInsuredInfoOther,
fileListtypebeneficiary
saleInsuredInfoOther
// fileListtypebeneficiary
}
}
},
watch: {
listenChange(val) {
let that = this
if (this.changeCard) {
//从转账不成功跳过来的
if (val.fileListBank.length != '0' && val.radio !== '') {
that.isDisabled = false
} else {
that.isDisabled = true
}
} else {
if (
(val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.fileListBank.length != '0' &&
val.fileListBankBack.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.radio !== '') ||
(val.fileLIstImg.length != '0' &&
val.fileListBank.length != '0' &&
val.fileListBankBack.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.radio !== '') ||
@@ -1037,11 +1065,11 @@ export default {
(val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.fileListBank.length != '0' &&
val.fileListBankBack.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileLIstImgInsured.length != '0' &&
val.radio !== '') ||
(val.fileListBank.length != '0' &&
val.fileListBankBack.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileLIstImg.length != '0' &&
val.fileLIstImgInsured.length != '0' &&
val.radio !== '') ||
@@ -1049,23 +1077,23 @@ export default {
(val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.fileListBank.length != '0' &&
val.fileListBankBack.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.radio !== '' &&
this.relationToAppnt == '1') ||
(val.fileLIstImg.length != '0' &&
val.fileListBank.length != '0' &&
val.fileListBankBack.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.radio !== '' &&
this.relationToAppnt == '1') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBank.length != '0' &&
val.fileListBankBack.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileListIdFrontInsured.length != '0' &&
val.fileListIdBackInsured.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBank.length != '0' &&
val.fileListBankBack.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileLIstImgInsured.length != '0' &&
val.radio !== '') ||
(val.saleInsuredPersonInfoOther.length != '0' &&
@@ -1075,7 +1103,7 @@ export default {
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBank.length != '0' &&
val.fileListBankBack.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileLIstImg.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
@@ -1085,35 +1113,41 @@ export default {
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.fileListBankInsured.length != '0' && val.fileLIstImg.length != '0' && val.radio !== '') ||
(val.fileListBank.length != '0' &&
val.fileListBankBack.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileListIdFront.length != '0' &&
val.fileListIdBack.length != '0' &&
val.saleInsuredPersonInfoOther.length != '0' &&
val.radio !== '') ||
(val.fileListBank.length != '0' &&
val.fileListBankBack.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.fileLIstImg.length != '0' &&
val.saleInsuredPersonInfoOther.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBank.length != '0' &&
val.fileListBankBack.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.saleInsuredPersonInfoOther.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' && val.saleInsuredPersonInfoOther.length != '0' && val.fileListBankInsured.length != '0' && val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.saleInsuredPersonInfoOther.length != '0' &&
val.fileListBankInsured.length != '0' &&
val.radio !== '') ||
(val.saleInsuredInfoOther.length != '0' &&
val.fileListBank.length != '0' &&
val.fileListBankBack.length != '0' &&
// val.fileListBankBack.length != '0' &&
val.radio !== '' &&
this.relationToAppnt == '1')
) {
if ((that.typebeneficiary && val.fileListtypebeneficiary.length != '0') || (!that.typebeneficiary && val.fileListtypebeneficiary.length == '0')) {
//去掉收益人添加的,有收益人删掉该行显示下面影藏判断
that.isDisabled = false
// if ((that.typebeneficiary && val.fileListtypebeneficiary.length != '0') || (!that.typebeneficiary && val.fileListtypebeneficiary.length == '0')) {
// that.isDisabled = false
// } else {
// that.isDisabled = true
// }
} else {
that.isDisabled = true
}
} else {
that.isDisabled = true
}
}
},

View File

@@ -78,6 +78,7 @@ export default {
if (localStorage.fromAddBeneficiaryInfo) {
this.type = '2'
this.beneficiaries = this.beneficiaries.concat(JSON.parse(localStorage.beneficiaryInfo))
this.type = '2'
console.log(this.beneficiaries)
}
//如果是从编辑进来

View File

@@ -2,6 +2,7 @@
<div class="insuranceInformation-container pb50">
<van-notice-bar :scrollable="false" v-if="!Time" class="notice">{{ `提示阅读时长需在${this.Time ? this.time : this.number}秒以上` }}</van-notice-bar>
<div class="bg-white flex justify-content-c flex-direction-colunm align-it<po>ems-center p20 fs14">
<div v-if="!changeCard">
<h2 style="text-align:center" class="mb20">投保须知</h2>
<p class="mb20">尊敬的客户</p>
<p class="mb20">
@@ -53,6 +54,8 @@
各类保险金将根据权益人授权的银行账号进行转账支付<br />
保单退费款项按客户申请时授权的银行账号进行转账支付<br />
</p>
</div>
<div v-if="!changeCard || changeCard">
<h2 style="text-align:center" class="mb20">转账授权书</h2>
<p>本人授权国富人寿保险股份有限公司以下简称国富人寿及本人指定之银行按下述授权内容进行保险费的划扣及相关权益的给付</p>
<p>本人声明</p>
@@ -74,10 +77,12 @@
</p>
<p>7对于一年期以上的产品国富人寿可在保险费约定支付日之前及时通知本人交纳续期保险费</p>
</div>
</div>
<van-radio-group v-model="radio" class="pb10 pb20 pl30">
<van-radio name="1" @click="click" class="fs14">
本人已详细阅读保险条款并明确以上事项
<span v-if="changeCard">本人已详细阅读转账授权书并明确以上事项</span>
<span v-else>本人已详细阅读保险条款并明确以上事项 </span>
</van-radio>
</van-radio-group>
<div class="bg-white bottom-btn">
@@ -114,6 +119,7 @@ export default {
isDisable: true,
// 是否在微信
isWeixin,
changeCard: localStorage.changeCard, //是否从修改银行卡号进来
productCode: localStorage.productCode //获取产品编号
}
},
@@ -127,6 +133,7 @@ export default {
let that = this
// {{switchFlag.Time?pageVariable.msg:pageVariable.number}}
that.timeOut()
document.title = this.changeCard ? '转账授权书' : '投保须知'
// Notify({
// type: 'warning',
// message: `提示:阅读时长需在${this.Time ? this.time : this.number}秒以上`,
@@ -193,6 +200,7 @@ export default {
let that = this
if (that.signVal == '0' || that.signVal == '2') {
if (!that.changeCard) {
that.appntSign.map(item => {
if (item.documentCode == '1') {
that.appntSign.signId = item.signId
@@ -200,8 +208,10 @@ export default {
that.appntSign.documentType = item.documentType
}
})
}
let data = {
orderType: 'SIGN_ORDER',
orderType: that.changeCard ? 'SIGNNEW_ORDER' : 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
@@ -236,7 +246,33 @@ export default {
// console.log(res)
// })
//GFRS_M0003为万能型产品需要投保人签署产品说明书
let url = this.productCode == 'GFRS_M0003' ? 'productTip' : 'insuranceTip'
let url = ''
if (that.changeCard) {
url = 'SignatureConfirmation'
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/SignatureConfirmation'
},
routerInfo: {
path:
'/sale/signatureConfirmation?orderNo=' +
localStorage.orderNo +
'&token=' +
localStorage.token +
'&saleInsuredInfo=' +
localStorage.saleInsuredInfo +
'&saleInsuredPersonInfo=' +
localStorage.saleInsuredPersonInfo +
'&relationToAppnt=' +
JSON.parse(window.localStorage.getItem('saleInsuredPersonInfo')).relationToAppnt +
'&signInvalid=' +
sessionStorage.getItem('signInvalid') +
'&airSign=1'
}
})
} else {
url = this.productCode == 'GFRS_M0003' ? 'productTip' : 'insuranceTip'
this.$jump({
flag: 'h5',
extra: {
@@ -246,6 +282,7 @@ export default {
path: '/sale/' + url
}
})
}
} else {
that.$toast(res.resultMessage)
}
@@ -322,6 +359,7 @@ export default {
})
// console.log('that.appntSign.signId',that.appntSign,that.appntSign.signId,that.appntSign.documentCode,that.appntSign.documentType)
if (that.signVal == '0' || that.signVal == '2') {
if (!that.changeCard) {
that.appntSign.map(item => {
if (item.documentCode == '1') {
that.appntSign.signId = item.signId
@@ -329,8 +367,9 @@ export default {
that.appntSign.documentType = item.documentType
}
})
}
let data = {
orderType: 'SIGN_ORDER',
orderType: that.changeCard ? 'SIGNNEW_ORDER' : 'SIGN_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
@@ -362,7 +401,12 @@ export default {
// axios.get(url).then(res => {
// console.log(res)
// })
let url = this.productCode == 'GFRS_M0003' ? 'productTip' : 'insuranceTip'
let url = ''
if (that.changeCard) {
url = 'SignatureConfirmation'
} else {
url = this.productCode == 'GFRS_M0003' ? 'productTip' : 'insuranceTip'
}
this.$jump({
flag: 'h5',
extra: {

View File

@@ -26,10 +26,20 @@
@click="toSelect('2')"
/>
<!-- <van-field v-model="userInfo.idNo" v-validate="'required|idNo'" maxlength="18" label="证件号码" name="证件号码" placeholder="请输入" clearable> -->
<van-field v-model="userInfo.idNo" maxlength="18" required label="证件号码" v-validate="'required'" name="证件号码" placeholder="请输入" clearable @blur="getRelatedData(userInfo.idNo)">
<van-field
v-model="userInfo.idNo"
maxlength="18"
required
label="证件号码"
v-validate="'required'"
name="证件号码"
placeholder="请输入"
clearable
@blur="getRelatedData(userInfo.idNo)"
>
<van-button v-if="userInfo.idType == 1" slot="button" size="small" type="danger" round @click="selectClick('3')">证件扫描</van-button>
</van-field>
<FieldDatePicter
<!-- <FieldDatePicter
v-validate="'required'"
label="证件起始日期"
name="证件起始日期"
@@ -39,17 +49,18 @@
@confirm="onDateConfirm($event, '0')"
ref="certificateValidate"
:flag="true"
></FieldDatePicter>
></FieldDatePicter> -->
<FieldDatePicter
:v-validate="{ required: certiexpiredateRequired }"
label="证件截止日期"
name="证件截止日期"
required
:required="isRequired"
: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 align-center">
<van-checkbox v-model="userInfo.effectiveDateType" :disabled="effectiveDateTypeAble" @change="effectiveDataTypeChange">长期</van-checkbox>
@@ -66,7 +77,17 @@
placeholder="请选择"
@click="toSelect('1')"
/>
<van-field :value="census" required readonly label="户籍" name="户籍" v-validate="'required'" right-icon="arrow" placeholder="请选择" @click="censusShow = true" />
<van-field
:value="census"
required
readonly
label="户籍"
name="户籍"
v-validate="'required'"
right-icon="arrow"
placeholder="请选择"
@click="censusShow = true"
/>
<FieldDatePicter
v-validate="'required'"
label="出生日期"
@@ -80,7 +101,16 @@
:maxDate="maxDate"
></FieldDatePicter>
<van-field required v-model="userInfo.mobile" clearable label="移动电话" name="移动电话" placeholder="请输入" v-validate="'required|mobile'" maxlength="11" />
<van-field
required
v-model="userInfo.mobile"
clearable
label="移动电话"
name="移动电话"
placeholder="请输入"
v-validate="'required|mobile'"
maxlength="11"
/>
<van-field v-model="userInfo.authCode" center clearable label name="短信验证码" placeholder="请输入短信验证码" v-validate="'required'" maxlength="6">
<van-button slot="button" size="small" type="danger" @click="getCode" :disabled="codeDisabled" v-no-more-click="1000">
{{ codeDisabled ? `${countDown}s后重新获取` : '发送验证码' }}
@@ -108,15 +138,15 @@
clearable
@blur="checkAvoirdupois(userInfo.avoirdupois)"
/>
<div class="p15 fs14">
<div class="p15 pl8 fs14">
<van-radio-group v-model="isElecCont" class="flex">
<label>保单形式</label>
<label><i class="red pr5">*</i>保单形式</label>
<van-radio name="0" class="ml30">电子</van-radio>
<van-radio name="2" class="ml20">电子+纸质</van-radio>
</van-radio-group>
</div>
</van-cell-group>
<van-radio-group :border="false" v-model="userInfo.addressStatus" v-validate="'required'" label="设置为联系地址" name="设置为联系地址">
<!-- <van-radio-group :border="false" v-model="userInfo.addressStatus" v-validate="'required'" label="设置为联系地址" name="设置为联系地址"> -->
<!-- 工作信息 -->
<van-cell-group :border="false">
<p style=" border-bottom: 1px solid #ebedf0" class="fs15 fwb pl10 mt10 pv12">工作信息</p>
@@ -131,14 +161,7 @@
v-validate="'required'"
@click="toSelect('3')"
/>
<select-radio
:radios="medicalRadio"
v-validate="'required'"
label="有无社保"
name="有无社保"
required
:value.sync="userInfo.medical"
></select-radio>
<select-radio :radios="medicalRadio" v-validate="'required'" label="有无社保" name="有无社保" required :value.sync="userInfo.medical"></select-radio>
<van-field
:value="userInfo.taxResidentId | idToText('taxIdentity')"
readonly
@@ -214,8 +237,17 @@
right-icon="arrow"
@click="toSelect('7')"
/>
<van-field v-model="userInfo.workcompany" required label="工作单位" name="工作单位" placeholder="请输入" v-validate="'required'" maxlength="50" clearable />
<van-field
v-model="userInfo.workcompany"
required
label="工作单位"
name="工作单位"
placeholder="请输入"
v-validate="'required'"
maxlength="50"
clearable
/>
<!-- <van-field
v-model="areaName"
readonly
label="单位地址"
@@ -225,14 +257,14 @@
placeholder="请选择"
v-validate="'required'"
@click="areaShow = true"
/>
<van-field v-model="userInfo.companyAddress" label name="详细地址" placeholder="请输入详细地址" v-validate="'required'" clearable maxlength="30" />
<div class="border-bt relative fs14 p10 flex align-center">
<!-- <van-checkbox v-model="companyDefault" :disabled="homeDefault" class="fr" @change="setAddress">设为联系地址</van-checkbox> -->
/> -->
<!-- <van-field v-model="userInfo.companyAddress" label name="详细地址" placeholder="请输入详细地址" v-validate="'required'" clearable maxlength="30" /> -->
<!-- <div class="border-bt relative fs14 p10 flex align-center">
<van-checkbox v-model="companyDefault" :disabled="homeDefault" class="fr" @change="setAddress">设为联系地址</van-checkbox>
<van-radio name="0">设为联系地址</van-radio>
</div>
<van-field v-model="userInfo.companyZip" required label="邮编" name="邮编" placeholder="请输入" v-validate="'required|zipCode'" maxlength="6" clearable />
<van-field v-model="userInfo.companyPhone" label="单位电话" name="单位电话" placeholder="非必填" maxlength="13" clearable />
</div> -->
<!-- <van-field v-model="userInfo.companyZip" required label="邮编" name="邮编" placeholder="请输入" v-validate="'required|zipCode'" maxlength="6" clearable /> -->
<!-- <van-field v-model="userInfo.companyPhone" label="单位电话" name="单位电话" placeholder="非必填" maxlength="13" clearable /> -->
</van-cell-group>
<!-- 家庭信息 -->
<van-cell-group>
@@ -270,11 +302,11 @@
@click="homeShow = true"
/>
<van-field v-model="userInfo.homeAddress" label name="详细地址" placeholder="请输入详细地址" v-validate="'required'" clearable maxlength="30" />
<div class="border-bt relative fs14 p10 flex align-center">
<!-- <van-checkbox v-model="homeDefault" :disabled="companyDefault" class="fr" @change="setAddress">设为联系地址</van-checkbox> -->
<!-- <div class="border-bt relative fs14 p10 flex align-center">
<van-checkbox v-model="homeDefault" :disabled="companyDefault" class="fr" @change="setAddress">设为联系地址</van-checkbox>
<van-radio name="1">设为联系地址</van-radio>
</div>
<van-field v-model="userInfo.homeZip" required label="邮编" name="邮编" placeholder="请输入" v-validate="'required|zipCode'" maxlength="6" clearable />
</div> -->
<!-- <van-field v-model="userInfo.homeZip" required label="邮编" name="邮编" placeholder="请输入" v-validate="'required|zipCode'" maxlength="6" clearable /> -->
<van-field v-model="userInfo.homePhone" label="家庭电话" name="家庭电话" placeholder="非必填" maxlength="13" clearable />
</van-cell-group>
</van-radio-group>
@@ -285,12 +317,12 @@
<van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false" />
</van-popup>
<!-- 地区选择 -->
<van-popup v-model="areaShow" position="bottom">
<!-- <van-popup v-model="areaShow" position="bottom">
<van-area :area-list="areaList" value="110101" @confirm="sureArea($event, '1')" @cancel="areaShow = false" />
</van-popup>
</van-popup> -->
<!-- 家庭地址选择 -->
<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="areaLists" value="450000" @confirm="sureArea($event, '2')" @cancel="homeShow = false" />
</van-popup>
<!-- 户籍选择 -->
<van-popup v-model="censusShow" position="bottom">
@@ -310,6 +342,7 @@ import OccupationPicker from '@/components/ebiz/occipation/OccupationPicker'
import CustomerPicker from '@/components/ebiz/customer/CustomerPicker'
import DataDictionary from '@/assets/js/utils/data-dictionary'
import areaList from '@/assets/js/utils/area'
import areaLists from '@/assets/js/utils/areaNew'
import { saveOrUpdateOrderInfo, getAuthCode, getOrderDetail } from '@/api/ebiz/sale/sale'
import utilsAge from '@/assets/js/utils/age'
import getAreaName from '@/assets/js/utils/get-area-name'
@@ -364,14 +397,14 @@ export default {
countDown: 60, //倒计时
certiexpiredateRequired: true, //证件截止日期是否需要校验
popupShow: false,
areaShow: false, //省级联动
// areaShow: false, //省级联动
homeShow: false,
censusShow: false, //户籍联动
pickerType: undefined,
columns: [],
valueKey: 'text',
census: '', //户籍
areaName: '', //单位地址
// areaName: '', //单位地址
homeName: '', //家庭地址
companyDefault: false, //设置公司地址为默认地址
homeDefault: false, //设置家庭地址为默认地址
@@ -379,6 +412,7 @@ export default {
sessionId: '', //后台返回的 id
effectiveDateTypeAble: false, //长期按钮是否禁用
isElecCont: '', // 保单类型 0 为电子 2 为纸质加电子
isRequired: '', //长期前是否有*
userInfo: {
name: '', //投保人姓名
sex: '0', //投保人性别
@@ -386,7 +420,7 @@ export default {
birthday: '',
idType: '1', //证件类型
idNo: '', //证件号码
certificateValidate: '', //证件起始日期
// certificateValidate: '', //证件起始日期
certiexpiredate: '', //证件到期时间
effectiveDateType: false, //是否长期
occupationCode: '', //职业类别编码
@@ -413,27 +447,29 @@ export default {
liabilitiesMoney: '', //负债金额
postcode: '', //邮编
officeTel: '', //单位电话
companyProvince: '', //单位省
companyCity: '', //单位市
companyArea: '', //单位区
companyAddress: '', //单位详细地址
companyZip: '', //单位邮编
companyPhone: '', //单位电话
// companyProvince: '', //单位省
// companyCity: '', //单位市
// companyArea: '', //单位区
// companyAddress: '', //单位详细地址
// companyZip: '', //单位邮编
// companyPhone: '', //单位电话
homeProvince: '', //家庭省
homeCity: '', //家庭市
homeArea: '', //家庭区
homeAddress: '', //家庭详细地址
homeZip: '', //家庭邮编
// homeZip: '', //家庭邮编
homePhone: '', //家庭电话
householdProvince: '', //户籍省
householdCity: '', //户籍市
addressStatus: '0', //是否是联系地址
householdCity: '' //户籍市
// addressStatus: '0' //是否是联系地址
},
areaList: areaList,
areaLists: areaLists,
currentPopupIndex: '',
customerShowPicker: false,
occupationShowPicker: false,
timeId: null
timeId: null,
idLimit: false //证件起止日期是否只读
}
},
created() {
@@ -450,7 +486,7 @@ export default {
//有无社保
this.userInfo.medical = '1'
//设为联系地址
this.userInfo.addressStatus = '0'
// this.userInfo.addressStatus = '0'
//证件类型
this.userInfo.idType = '1'
//国家/地区
@@ -555,24 +591,24 @@ export default {
onDateConfirm(val, type) {
console.log(type)
switch (type) {
case '0':
{
//证件起始日期
//如果录入日期早于出生日期或晚于当前日期
if (Date.parse(val) > Date.parse(new Date()) || Date.parse(val) < Date.parse(this.userInfo.birthday)) {
this.userInfo.certificateValidate = ''
this.$refs.certificateValidate.date = ''
return this.$toast('证件起始日期填写错误')
}
// case '0':
// {
// //证件起始日期
// //如果录入日期早于出生日期或晚于当前日期
// if (Date.parse(val) > Date.parse(new Date()) || Date.parse(val) < Date.parse(this.userInfo.birthday)) {
// this.userInfo.certificateValidate = ''
// this.$refs.certificateValidate.date = ''
// return this.$toast('证件起始日期填写错误')
// }
// 计算年龄
if (this.userInfo.idType == '1') {
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
this.effectiveDateTypeAble = age <= 45
}
}
break
// // 计算年龄
// if (this.userInfo.idType == '1') {
// let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// // 长期按钮是否禁用
// this.effectiveDateTypeAble = age <= 45
// }
// }
// break
case '1':
{
console.log('证件截止日期')
@@ -654,7 +690,7 @@ export default {
this.userInfo.birthday = data.birthday //出生日期
this.userInfo.idType = data.customerIdType //证件类型
this.userInfo.idNo = data.customerIdNumber //证件类别
this.userInfo.certificateValidate = data.idEffectStartDate //证件起始日期
// this.userInfo.certificateValidate = data.idEffectStartDate //证件起始日期
this.userInfo.certiexpiredate = data.idEffectEndDate //证件截止日期
this.userInfo.effectiveDateType = data.idEffectEndDate == '9999-01-01' //是否长期
this.userInfo.occupationCode = data.occupationCode //职业类别编码
@@ -676,17 +712,17 @@ export default {
this.userInfo.familyAnnualIncome = data.familyAnnualIncome //家庭年收入
this.userInfo.email = data.email //电子邮箱
this.userInfo.liabilitiesMoney = data.liabilitiesMoney //负债金额
this.userInfo.companyProvince = data.companyProvince //单位省
this.userInfo.companyCity = data.companyCity //单位市
this.userInfo.companyArea = data.companyArea //单位区
this.userInfo.companyAddress = data.companyAddress //单位详细地址
this.userInfo.companyZip = data.companyZip //单位邮编
this.userInfo.companyPhone = data.companyPhone //单位电话
// this.userInfo.companyProvince = data.companyProvince //单位省
// this.userInfo.companyCity = data.companyCity //单位市
// this.userInfo.companyArea = data.companyArea //单位区
// this.userInfo.companyAddress = data.companyAddress //单位详细地址
// this.userInfo.companyZip = data.companyZip //单位邮编
// this.userInfo.companyPhone = data.companyPhone //单位电话
this.userInfo.homeProvince = data.homeProvince //家庭省
this.userInfo.homeCity = data.homeCity //家庭市
this.userInfo.homeArea = data.homeArea //家庭区
this.userInfo.homeAddress = data.homeAddress //家庭详细地址
this.userInfo.homeZip = data.homeZip //家庭邮编
// this.userInfo.homeZip = data.homeZip //家庭邮编
this.userInfo.homePhone = data.homePhone //家庭电话
this.userInfo.householdProvince = data.province //户籍省
this.userInfo.householdCity = data.city //户籍市
@@ -694,9 +730,9 @@ export default {
if (data.province.length) {
this.census = getAreaName([{ code: data.province }, { code: data.city }]) //户籍
}
if (data.companyProvince.length) {
this.areaName = getAreaName([{ code: data.companyProvince }, { code: data.companyCity }, { code: data.companyArea }]) //单位地址
}
// if (data.companyProvince.length) {
// this.areaName = getAreaName([{ code: data.companyProvince }, { code: data.companyCity }, { code: data.companyArea }]) //单位地址
// }
if (data.homeProvince.length) {
this.homeName = getAreaName([{ code: data.homeProvince }, { code: data.homeCity }, { code: data.homeArea }]) //家庭地址
}
@@ -708,7 +744,6 @@ export default {
this.getRelatedData(this.userInfo.idNo)
},
nextStep() {
// console.log(this.userInfo.idType)
// console.log(this.userInfo.salarySource)
// console.log(this.userInfo.otherSalarySource)
@@ -945,13 +980,13 @@ export default {
//区域选择
sureArea(area, type) {
switch (type) {
case '1': //单位地址
this.areaName = getAreaName(area)
;[this.userInfo.companyProvince, this.userInfo.companyCity, this.userInfo.companyArea] = [area[0].code, area[1].code, area[2].code]
this.areaShow = false
break
// case '1': //单位地址
// this.areaName = getAreaName(area)
// ;[this.userInfo.companyProvince, this.userInfo.companyCity, this.userInfo.companyArea] = [area[0].code, area[1].code, area[2].code]
// this.areaShow = false
// break
case '2': //家庭地址
this.homeName = getAreaName(area)
this.homeName = getAreaName(area, 'new')
;[this.userInfo.homeProvince, this.userInfo.homeCity, this.userInfo.homeArea] = [area[0].code, area[1].code, area[2].code]
this.homeShow = false
break
@@ -963,17 +998,17 @@ export default {
}
},
//设为联系地址
setAddress(val) {
console.log(val)
console.log(this.homeDefault)
//上面是0下面是1
if (this.homeDefault) {
this.userInfo.addressStatus = 1
}
if (this.companyDefault) {
this.userInfo.addressStatus = 0
}
},
// setAddress(val) {
// console.log(val)
// console.log(this.homeDefault)
// //上面是0下面是1
// if (this.homeDefault) {
// this.userInfo.addressStatus = 1
// }
// if (this.companyDefault) {
// this.userInfo.addressStatus = 0
// }
// },
//获取验证码
getCode() {
if (this.userInfo.mobile == '') {
@@ -1015,16 +1050,19 @@ export default {
//勾选长期状态时,证件截止日期置空
if (val) {
this.userInfo.certiexpiredate = ''
this.isRequired = false
this.idLimit = true
this.certiexpiredateRequired = false
} else {
this.certiexpiredateRequired = true
this.isRequired = true
this.idLimit = false
}
},
//获取身份证扫描信息
getIdentityInfo(data) {
getIdentityInfo(this, data, '1')
},
//校验身高
checkStature(val) {
console.log(val)
@@ -1063,6 +1101,16 @@ export default {
this.effectiveDateTypeAble = idToData(val).age < 45
this.userInfo.birthday = idToData(val).birthday
this.userInfo.sex = idToData(val).sex
if (idToData(val).age >= 45) {
this.idLimit = true
this.isRequired = false
this.userInfo.effectiveDateType = true
this.effectiveDateTypeAble = true
} else {
this.idLimit = false
this.isRequired = true
this.userInfo.effectiveDateType = false
}
}
},
computed: {

View File

@@ -51,7 +51,8 @@
@blur="getRelatedData(userInfo.idNo)"
>
<van-button v-if="userInfo.idType == 1" slot="button" size="small" type="danger" round @click="selectClick('3')" v-no-more-click="1000"
>证件扫描</van-button>
>证件扫描</van-button
>
</van-field>
<FieldDatePicter
v-validate="'required'"
@@ -66,7 +67,7 @@
:readonly="isAppnt"
:maxDate="currentTime"
></FieldDatePicter>
<FieldDatePicter
<!-- <FieldDatePicter
v-validate="'required'"
label="证件起始日期"
name="证件起始日期"
@@ -78,12 +79,12 @@
@confirm="onDateConfirm($event, '0')"
ref="certificateValidate"
:readonly="isAppnt || idLimit"
></FieldDatePicter>
></FieldDatePicter> -->
<FieldDatePicter
:v-validate="{ required: certiexpiredateRequired }"
label="证件截止日期"
name="证件截止日期"
required
:required="isRequired"
:defaultDate="new Date()"
:value.sync="userInfo.certiexpiredate"
type="date"
@@ -116,7 +117,17 @@
placeholder="请选择"
@click="toSelect('1')"
/>
<van-field :value="census" required readonly label="户籍" name="户籍" v-validate="'required'" right-icon="arrow" placeholder="请选择" @click="areaChoose('1')" />
<van-field
:value="census"
required
readonly
label="户籍"
name="户籍"
v-validate="'required'"
right-icon="arrow"
placeholder="请选择"
@click="areaChoose('1')"
/>
<van-field
v-model="userInfo.mobile"
@@ -129,7 +140,7 @@
maxlength="11"
:readonly="isAppnt"
/>
<van-field
<!-- <van-field
v-if="!isAppnt"
v-model="userInfo.authCode"
center
@@ -143,8 +154,17 @@
<van-button slot="button" size="small" type="danger" :disabled="codeDisabled" @click="getCode" v-no-more-click="1000">{{
codeDisabled ? `${countDown}s后重新获取` : '发送验证码'
}}</van-button>
</van-field>
<van-field v-model="userInfo.email" required label="电子邮箱" name="电子邮箱" placeholder="请输入" v-validate="'required|email'" clearable :readonly="isAppnt" />
</van-field> -->
<van-field
v-model="userInfo.email"
required
label="电子邮箱"
name="电子邮箱"
placeholder="请输入"
v-validate="'required|email'"
clearable
:readonly="isAppnt"
/>
<van-field
v-model="userInfo.stature"
label="身高(cm)"
@@ -241,25 +261,6 @@
clearable
maxlength="30"
/>
<!-- <van-field
:value="userInfo.salarySource | idToText('salarySource')"
readonly
label="收入来源"
name="收入来源"
right-icon="arrow"
placeholder="请选择"
v-validate="'required'"
@click="toSelect('9')"
/>
<van-field
v-show="isShowOthenSalarySource"
v-model="userInfo.otherSalarySource"
label
name="其他来源"
placeholder="请输入其它收入来源"
clearable
maxlength="30"
/> -->
<van-field
v-model="userInfo.averageAnnualIncome"
label="平均年收入(万元)"
@@ -305,7 +306,7 @@
clearable
:readonly="isAppnt"
/>
<van-field
<!-- <van-field
v-model="areaName"
readonly
label="单位地址"
@@ -315,8 +316,8 @@
placeholder="请选择"
v-validate="'required'"
@click="areaChoose('3')"
/>
<van-field
/> -->
<!-- <van-field
v-model="userInfo.companyAddress"
label=""
name="详细地址"
@@ -325,8 +326,8 @@
clearable
maxlength="30"
:readonly="isAppnt"
/>
<van-field
/> -->
<!-- <van-field
v-model="userInfo.companyZip"
label="邮编"
name="邮编"
@@ -336,8 +337,8 @@
maxlength="6"
clearable
:readonly="isAppnt"
/>
<van-field v-model="userInfo.companyPhone" label="单位电话" name="单位电话" placeholder="非必填" maxlength="13" clearable :readonly="isAppnt" />
/> -->
<!-- <van-field v-model="userInfo.companyPhone" label="单位电话" name="单位电话" placeholder="非必填" maxlength="13" clearable :readonly="isAppnt" /> -->
</van-cell-group>
<!-- 家庭信息 -->
<van-cell-group class="mt5" v-if="!isScan">
@@ -385,7 +386,7 @@
maxlength="30"
:readonly="isAppnt"
/>
<van-field
<!-- <van-field
v-model="userInfo.homeZip"
label="邮编"
name="邮编"
@@ -395,7 +396,7 @@
maxlength="6"
clearable
:readonly="isAppnt"
/>
/> -->
<van-field v-model="userInfo.homePhone" label="家庭电话" name="家庭电话" placeholder="非必填" maxlength="13" clearable :readonly="isAppnt" />
</van-cell-group>
<van-button type="danger" class="bottom-btn" @click="nextStep" v-if="!isScan" v-no-more-click="1000">下一步</van-button>
@@ -410,7 +411,7 @@
</van-popup>
<!-- 家庭地址选择 -->
<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="areaLists" value="450000" @confirm="sureArea($event, '2')" @cancel="homeShow = false" />
</van-popup>
<!-- 户籍选择 -->
<van-popup v-model="censusShow" position="bottom">
@@ -433,6 +434,7 @@ import OccupationPicker from '@/components/ebiz/occipation/OccupationPicker'
import CustomerPicker from '@/components/ebiz/customer/CustomerPicker'
import DataDictionary from '@/assets/js/utils/data-dictionary'
import areaList from '@/assets/js/utils/area'
import areaLists from '@/assets/js/utils/areaNew'
import { saveOrUpdateOrderInfo, getAuthCode, getOrderDetail } from '@/api/ebiz/sale/sale'
import utilsAge from '@/assets/js/utils/age'
import getAreaName from '@/assets/js/utils/get-area-name'
@@ -440,7 +442,7 @@ import IdentityCardScan from '@/components/ebiz/sale/IdentityCardScan'
import idNoCheck from '@/assets/js/utils/idNoCheck'
import beforeDate from '@/assets/js/utils/getBeforeDate.js'
import { idToData } from './js/verification'
import { selectComp } from './js/methods'
import { selectComp, getIdentityInfo } from './js/methods'
export default {
name: 'insuredInfo',
@@ -495,8 +497,9 @@ export default {
columns: [],
valueKey: 'text',
census: '', //户籍
areaName: '',
// areaName: '',
homeName: '',
isRequired: '', //长期前是否有*
userInfo: {
name: '',
sex: '0',
@@ -504,7 +507,7 @@ export default {
birthday: '',
idType: '1', //证件类型
idNo: '', //证件号码
certificateValidate: '', //证件起始日期
// certificateValidate: '', //证件起始日期
certiexpiredate: '', //证件到期时间
effectiveDateType: false, //是否长期
occupationCode: '',
@@ -519,7 +522,7 @@ export default {
officeTel: '', //单位电话
stature: '', //身高
avoirdupois: '', //体重
authCode: '', //验证码
// authCode: '', //验证码
degree: '', //文化程度
medical: '1', //有无社保
taxResidentId: '', //税收居民身份
@@ -534,23 +537,24 @@ export default {
familyAnnualIncome: '', //家庭年收入
relationToAppnt: '',
email: '',
companyProvince: '', //单位省
// companyProvince: '', //单位省
companyCity: '', //单位市
companyArea: '', //单位区
companyAddress: '', //单位详细地址
companyZip: '', //单位邮编
companyPhone: '', //单位电话
// companyAddress: '', //单位详细地址
// companyZip: '', //单位邮编
// companyPhone: '', //单位电话
homeProvince: '', //家庭省
homeCity: '', //家庭市
homeArea: '', //家庭区
homeAddress: '', //家庭详细地址
homeZip: '', //家庭邮编
// homeZip: '', //家庭邮编
homePhone: '', //家庭电话
householdProvince: '', //户籍省
householdCity: '', //户籍市
addressStatus: '' //是否是联系地址
householdCity: '' //户籍市
// addressStatus: '' //是否是联系地址
},
areaList: areaList,
areaLists: areaLists,
currentPopupIndex: '',
customerShowPicker: false,
occupationShowPicker: false,
@@ -573,7 +577,7 @@ export default {
let insuredInfo = res.orderDTO.appntDTO
// console.log(insuredInfo)
//清空验证码
insuredInfo.authCode = ''
// insuredInfo.authCode = ''
for (let key in this.userInfo) {
this.userInfo[key] = insuredInfo[key]
}
@@ -581,14 +585,16 @@ export default {
//户籍
this.sureArea([{ code: insuredInfo.householdProvince }, { code: insuredInfo.householdCity }], '3')
//单位地址
this.sureArea([{ code: insuredInfo.companyProvince }, { code: insuredInfo.companyCity }, { code: insuredInfo.companyArea }], '1')
// this.sureArea([{ code: insuredInfo.companyProvince }, { code: insuredInfo.companyCity }, { code: insuredInfo.companyArea }], '1')
//家庭地址
this.sureArea([{ code: insuredInfo.homeProvince }, { code: insuredInfo.homeCity }, { code: insuredInfo.homeArea }], '2')
//是否长期
if (insuredInfo.effectiveDateType == 'false') {
this.userInfo.effectiveDateType = false
this.effectiveDateTypeAble = false
} else {
this.userInfo.effectiveDateType = true
this.effectiveDateTypeAble = true
this.userInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
}
@@ -617,24 +623,24 @@ export default {
//是否长期
this.userInfo.effectiveDateType = insuredPersonInfo.effectiveDateType == 'false' ? false : true
//设为联系地址
this.userInfo.addressStatus = '0'
// this.userInfo.addressStatus = '0'
//证件类型
this.userInfo.idType = '1'
//国家/地区
this.userInfo.nativeplace = '1'
if (this.$route.query.isShow) {
// if (this.$route.query.isShow) {
//户籍
if (insuredPersonInfo.householdProvince.length) {
this.census = getAreaName([{ code: insuredPersonInfo.householdProvince }, { code: insuredPersonInfo.householdCity }])
}
//单位地址
if (insuredPersonInfo.companyProvince.length) {
this.areaName = getAreaName([
{ code: insuredPersonInfo.companyProvince },
{ code: insuredPersonInfo.companyCity },
{ code: insuredPersonInfo.companyArea }
])
}
// if (insuredPersonInfo.companyProvince.length) {
// this.areaName = getAreaName([
// { code: insuredPersonInfo.companyProvince },
// { code: insuredPersonInfo.companyCity },
// { code: insuredPersonInfo.companyArea }
// ])
// }
//家庭地址
if (insuredPersonInfo.homeProvince.length) {
this.homeName = getAreaName([
@@ -658,7 +664,7 @@ export default {
// { code: saleInsuredPersonInfo.homeCity },
// { code: saleInsuredPersonInfo.homeArea }
// ]) //家庭地址
}
// }
}
} else {
return this.$toast(res.resultMessage)
@@ -765,13 +771,13 @@ export default {
this.userInfo.nativeplace = value.id
} else if (this.pickerType == '2') {
this.idLimit = false
this.userInfo.idNo = this.userInfo.certificateValidate = this.userInfo.certiexpiredate = this.userInfo.birthday = ''
// this.userInfo.idNo = this.userInfo.certificateValidate = this.userInfo.certiexpiredate = this.userInfo.birthday = ''
this.userInfo.idNo = this.userInfo.certiexpiredate = this.userInfo.birthday = ''
this.userInfo.sex = '0'
this.effectiveDateTypeAble = false
console.log(value.id)
//身份证以外的证件类型可以使用长期
if (value.id == '1') {
console.log('123')
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
this.effectiveDateTypeAble = age <= 45
} else {
@@ -817,7 +823,7 @@ export default {
let insuredInfo = res.orderDTO.appntDTO
// console.log(insuredInfo)
//清空验证码
insuredInfo.authCode = ''
// insuredInfo.authCode = ''
for (let key in this.userInfo) {
this.userInfo[key] = insuredInfo[key]
}
@@ -833,14 +839,16 @@ export default {
//户籍
this.sureArea([{ code: insuredInfo.householdProvince }, { code: insuredInfo.householdCity }], '3')
//单位地址
this.sureArea([{ code: insuredInfo.companyProvince }, { code: insuredInfo.companyCity }, { code: insuredInfo.companyArea }], '1')
// this.sureArea([{ code: insuredInfo.companyProvince }, { code: insuredInfo.companyCity }, { code: insuredInfo.companyArea }], '1')
//家庭地址
this.sureArea([{ code: insuredInfo.homeProvince }, { code: insuredInfo.homeCity }, { code: insuredInfo.homeArea }], '2')
//是否长期
if (insuredInfo.effectiveDateType == 'false') {
this.userInfo.effectiveDateType = false
this.idLimit = false
} else {
this.userInfo.effectiveDateType = true
this.idLimit = true
this.userInfo.certiexpiredate = ''
this.$refs.certiexpiredate.date = ''
}
@@ -887,24 +895,24 @@ export default {
//证件起始截止日期
onDateConfirm(val, type) {
switch (type) {
case '0':
{
//证件起始日期
//如果录入日期早于出生日期或晚于当前日期
if (Date.parse(val) > Date.parse(new Date()) || Date.parse(val) < Date.parse(this.userInfo.birthday)) {
this.userInfo.certificateValidate = ''
this.$refs.certificateValidate.date = ''
return this.$toast('证件起始日期填写错误')
}
// case '0':
// {
// //证件起始日期
// //如果录入日期早于出生日期或晚于当前日期
// if (Date.parse(val) > Date.parse(new Date()) || Date.parse(val) < Date.parse(this.userInfo.birthday)) {
// this.userInfo.certificateValidate = ''
// this.$refs.certificateValidate.date = ''
// return this.$toast('证件起始日期填写错误')
// }
// 计算年龄
if (this.userInfo.idType == '1') {
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// 长期按钮是否禁用
this.effectiveDateTypeAble = age <= 45
}
}
break
// // 计算年龄
// if (this.userInfo.idType == '1') {
// let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// // 长期按钮是否禁用
// this.effectiveDateTypeAble = age <= 45
// }
// }
// break
case '1':
{
//证件截止日期
@@ -957,10 +965,26 @@ export default {
return this.$toast('出生日期不晚于当日')
}
//长期判断
if (this.userInfo.idType == '1') {
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
if (this.userInfo.idType == '1') {
this.effectiveDateTypeAble = age <= 45
} else {
if (age < 16) {
this.userInfo.salarySource = 4
this.userInfo.otherSalarySource = '无'
this.userInfo.averageAnnualIncome = '0'
this.userInfo.liabilitiesMoney = '0'
this.userInfo.jobStatus = '3'
this.userInfo.marriage = '2'
} else {
// this.userInfo.salarySource = ''
// this.userInfo.averageAnnualIncome = ''
// this.userInfo.liabilitiesMoney = ''
// this.userInfo.jobStatus = ''
// this.userInfo.marriage = ''
}
}
//出生证有效期
// if (this.userInfo.idType == '3') {
// if (Date.parse(this.userInfo.certiexpiredate) - Date.parse(val) > Date.parse('1973-01-01')) {
@@ -993,6 +1017,7 @@ export default {
},
//选择客户
chooseCustomer(data) {
console.log(data)
this.customerShowPicker = false
this.$jump({
flag: 'navigation',
@@ -1012,7 +1037,7 @@ export default {
this.userInfo.birthday = data.birthday //出生日期
this.userInfo.idType = data.customerIdType //证件类型
this.userInfo.idNo = data.customerIdNumber //证件号码
this.userInfo.certificateValidate = data.idEffectStartDate //证件起始日期
// this.userInfo.certificateValidate = data.idEffectStartDate //证件起始日期
this.userInfo.certiexpiredate = data.idEffectEndDate //证件截止日期
this.userInfo.effectiveDateType = data.idEffectEndDate == '9999-01-01' //是否长期
this.userInfo.occupationCode = data.occupationCode //职业类别编码
@@ -1034,26 +1059,26 @@ export default {
this.userInfo.familyAnnualIncome = data.familyAnnualIncome //家庭年收入
this.userInfo.email = data.email //电子邮箱
this.userInfo.liabilitiesMoney = data.liabilitiesMoney //负债金额
this.userInfo.companyProvince = data.companyProvince //单位省
this.userInfo.companyCity = data.companyCity //单位市
this.userInfo.companyArea = data.companyArea //单位区
this.userInfo.companyAddress = data.companyAddress //单位详细地址
this.userInfo.companyZip = data.companyZip //单位邮编
this.userInfo.companyPhone = data.companyPhone //单位电话
// this.userInfo.companyProvince = data.companyProvince //单位省
// this.userInfo.companyCity = data.companyCity //单位市
// this.userInfo.companyArea = data.companyArea //单位区
// this.userInfo.companyAddress = data.companyAddress //单位详细地址
// this.userInfo.companyZip = data.companyZip //单位邮编
// this.userInfo.companyPhone = data.companyPhone //单位电话
this.userInfo.homeProvince = data.homeProvince //家庭省
this.userInfo.homeCity = data.homeCity //家庭市
this.userInfo.homeArea = data.homeArea //家庭区
this.userInfo.homeAddress = data.homeAddress //家庭详细地址
this.userInfo.homeZip = data.homeZip //家庭邮编
// this.userInfo.homeZip = data.homeZip //家庭邮编
this.userInfo.homePhone = data.homePhone //家庭电话
this.userInfo.householdProvince = data.province //户籍省
this.userInfo.householdCity = data.city //户籍市
if (data.province.length) {
this.census = getAreaName([{ code: data.province }, { code: data.city }]) //户籍
}
if (data.companyProvince.length) {
this.areaName = getAreaName([{ code: data.companyProvince }, { code: data.companyCity }, { code: data.companyArea }]) //单位地址
}
// if (data.companyProvince.length) {
// this.areaName = getAreaName([{ code: data.companyProvince }, { code: data.companyCity }, { code: data.companyArea }]) //单位地址
// }
if (data.homeProvince.length) {
this.homeName = getAreaName([{ code: data.homeProvince }, { code: data.homeCity }, { code: data.homeArea }]) //家庭地址
}
@@ -1063,7 +1088,7 @@ export default {
this.effectiveDateTypeAble = age <= 45
//数据是否从客户列表拉取
this.fromCustomer = true
this.getRelatedData(this.userInfo.idNo)
this.getRelatedData(this.userInfo.idNo, 'select')
},
//下一步
nextStep() {
@@ -1267,7 +1292,7 @@ export default {
orderInfoDTO: {
orderNo: localStorage.orderNo
},
smsCodeDTO: { smsId: this.sessionId, code: this.userInfo.authCode },
// smsCodeDTO: { smsId: this.sessionId, code: this.userInfo.authCode },
appntDTO: {}
}
}
@@ -1285,6 +1310,7 @@ export default {
// let age = utilsAge.getAge(this.userInfo.birthday, new Date())
// this.userInfo.age = age
// localStorage.saleInsuredPersonInfo = JSON.stringify(this.userInfo)
localStorage.relationToAppnt = this.userInfo.relationToAppnt
localStorage.isFrom = 'sale'
//清理计时器
window.clearInterval(this.timeId)
@@ -1307,11 +1333,11 @@ export default {
//区域选择
sureArea(area, type) {
switch (type) {
case '1': //单位地址
this.areaName = getAreaName(area)
;[this.userInfo.companyProvince, this.userInfo.companyCity, this.userInfo.companyArea] = [area[0].code, area[1].code, area[2].code]
this.areaShow = false
break
// case '1': //单位地址
// this.areaName = getAreaName(area)
// ;[this.userInfo.companyProvince, this.userInfo.companyCity, this.userInfo.companyArea] = [area[0].code, area[1].code, area[2].code]
// this.areaShow = false
// break
case '2': //家庭地址
this.homeName = getAreaName(area)
;[this.userInfo.homeProvince, this.userInfo.homeCity, this.userInfo.homeArea] = [area[0].code, area[1].code, area[2].code]
@@ -1355,39 +1381,23 @@ export default {
}
})
},
//证件扫描
goScan() {
this.isScan = true
},
//长期状态改变时
effectiveDataTypeChange(val) {
//勾选长期状态时,证件截止日期置空
if (val) {
this.userInfo.certiexpiredate = ''
this.isRequired = false
this.idLimit = true
this.certiexpiredateRequired = false
} else {
this.certiexpiredateRequired = true
this.isRequired = true
this.idLimit = false
}
},
//获取身份证扫描信息
getIdentityInfo(data) {
console.log(data)
if (data.name && data.name != '待识别') {
this.userInfo.certificateValidate = `${data.startDate.substr(0, 4)}-${data.startDate.substr(5, 2)}-${data.startDate.substr(8, 2)}`
this.userInfo.certiexpiredate = `${data.endDate.substr(0, 4)}-${data.endDate.substr(5, 2)}-${data.endDate.substr(8, 2)}`
this.userInfo.name = data.name
this.userInfo.idNo = data.idNo
this.userInfo.birthday = `${data.birthYear}-${data.birthMonth}-${data.birthDay}`
this.userInfo.sex = data.gender == '男' ? '0' : '1'
}
this.isScan = false
this.$jump({
flag: 'navigation',
extra: {
title: '被保人信息',
hiddenRight: '1'
}
})
getIdentityInfo(this, data, '2')
},
//时间戳格式处理
timeStampFormat(timeStamp) {
@@ -1443,7 +1453,7 @@ export default {
return this.$toast('体重输入有误')
}
},
getRelatedData(val) {
getRelatedData(val, from) {
// debugger
if (this.userInfo.idType != '1') {
return
@@ -1460,6 +1470,32 @@ export default {
this.effectiveDateTypeAble = idToData(val).age < 45
this.userInfo.birthday = idToData(val).birthday
this.userInfo.sex = idToData(val).sex
if (!from) {
if (idToData(val).age < 16) {
this.userInfo.salarySource = 4
this.userInfo.otherSalarySource = '无'
this.userInfo.averageAnnualIncome = '0'
this.userInfo.liabilitiesMoney = '0'
this.userInfo.jobStatus = '3'
this.userInfo.marriage = '2'
} else {
this.userInfo.salarySource = ''
this.userInfo.averageAnnualIncome = ''
this.userInfo.liabilitiesMoney = ''
this.userInfo.jobStatus = ''
this.userInfo.marriage = ''
}
}
if (idToData(val).age >= 45) {
this.idLimit = true
this.isRequired = false
this.userInfo.effectiveDateType = true
this.effectiveDateTypeAble = true
} else {
this.idLimit = false
this.isRequired = true
this.userInfo.effectiveDateType = false
}
//如果选择户口本
// if (this.userInfo.idType == '2') {
// let exipreDate = Date.parse(this.userInfo.birthday) + Date.parse('1985-12-31')

View File

@@ -96,6 +96,11 @@
round
>重新支付</van-button
>
<template v-if="active == 'commit' && order.orderInfoDTO.orderStatus == '55'">
<van-button @click="changeCard(order)" size="small" class="mr5" type="danger" round>修改卡号</van-button>
<van-button @click="againPay(order)" size="small" class="mr5" type="danger" round>重新支付</van-button>
</template>
<van-button
@click="goPay(order)"
v-if="active == 'commit' && order.orderInfoDTO.orderStatus == '02'"
@@ -179,6 +184,7 @@ export default {
localStorage.orderNo = order.orderInfoDTO.orderNo
// 再次支付 salelist为 0
localStorage.salelist = '0'
localStorage.removeItem('changeCard')
this.$jump({
flag: 'h5',
extra: {
@@ -187,6 +193,30 @@ export default {
routerInfo: { path: '/sale/payMent' }
})
},
//支付失败去换卡
changeCard(order) {
let url = ''
let orderStatus = order.orderInfoDTO.orderStatus
localStorage.setItem('changeCard', true)
switch (orderStatus) {
case '55': //账户信息页
url = '/sale/AccountInformation'
break
case '48': //账户信息填写成功,跳到影像上传页
url = '/sale/AttachmentManagement'
break
case '49': //影像上传页填写成功,跳到银行卡号确认页
url = '/sale/SignatureConfirmation'
break
}
this.$jump({
flag: 'h5',
extra: {
url: location.origin + `/#${url}`
},
routerInfo: { path: url }
})
},
// 去人工核保
// goNucleus() {
// let data = {
@@ -218,6 +248,7 @@ export default {
goPay(order) {
localStorage.orderNo = order.orderInfoDTO.orderNo
localStorage.salelist = '1'
localStorage.removeItem('changeCard')
this.$jump({
flag: 'h5',
extra: {
@@ -229,6 +260,7 @@ export default {
//查看保单
seePolicy(order) {
localStorage.orderNo = order.orderInfoDTO.orderNo
localStorage.removeItem('changeCard')
this.$jump({
flag: 'h5',
extra: {
@@ -300,12 +332,16 @@ export default {
//投保单详情
goDetail(order) {
window.localStorage.setItem('detailJump', '')
if (order.insuredDTOs[0].riskDTOLst[0]) {
localStorage.setItem('productCode', order.insuredDTOs[0].riskDTOLst[0].mainRiskCode)
}
let orderStatus = order.orderInfoDTO.orderStatus
let orderNo = order.orderInfoDTO.orderNo
let url = ''
//保存对应的订单号
localStorage.orderNo = orderNo
localStorage.isFrom = 'sale'
localStorage.removeItem('changeCard')
console.log('---orderStatus', orderStatus, orderNo)
switch (orderStatus) {
case '01': //已签名待客户确认, 跳到签名确认页面

View File

@@ -12,10 +12,12 @@
<van-collapse v-model="activeNames">
<van-collapse-item :name="indx + 1">
<div slot="title" class="flex align-items-c justify-content-s">
<!--投保人 0 2 4 6 被保人 1 3 5 7 -->
<!--投保人 0 2 4 6 8 10 被保人 1 3 5 7 9 11-->
{{ impartTypeNumber[im.impartType] }}
<span class="ml145">{{
im.impartType == 0 || im.impartType == 2 || im.impartType == 4 || im.impartType == 6 ? saleInsuredInfo.name : saleInsuredPersonInfo.name
im.impartType == 0 || im.impartType == 2 || im.impartType == 4 || im.impartType == 6 || im.impartType == 9 || im.impartType == 11
? saleInsuredInfo.name
: saleInsuredPersonInfo.name
}}</span>
<img :src="$assetsUrl + 'images/avatar.png'" class="w20 ml15" />
@@ -32,14 +34,15 @@
</div>
</div>
<!-- 第一题 -->
<div class="mt10" v-for="(item, index) in im.impartItemDTOS" :key="index">
<div v-for="(item, index) in im.impartItemDTOS" :key="index">
<div class="mt10 pb2" v-if="item.impartCode != '2b'">
<div class="mb20 ml20">
<span>{{ item.impartCode + '.' + item.impartContent }}</span>
</div>
<van-radio-group
v-model="item.impartAnswer"
class="flex mb10"
@change="change(item.extra2, $event)"
class="flex mb10 pb10"
@change="change(item.isSelect, $event, item.impartCode, im.impartType)"
v-validate="'required'"
data-vv-name="单选"
>
@@ -65,6 +68,33 @@
</van-cell-group>
</div>
</div>
<div class="mt10 pb2" :class="{ special: !showFlag || !isShow }" v-else>
<!-- 被保人题目为2b -->
<div v-if="im.impartType == 3 || im.impartType == 7 || im.impartType == 11">
<div class="mb20 ml20" v-if="item.impartCode == '2b' && showFlag && isShow">
<span>{{ item.impartCode + '.' + item.impartContent }}</span>
</div>
<van-cell-group v-for="(it, ind) in item.questions" :key="ind">
<div v-if="it.extra && showFlag && isShow">
<van-field v-model="it.answer" placeholder="请输入" :label="it.questionContent" clearable v-validate="'required'" data-vv-name="答案" />
</div>
</van-cell-group>
<div v-if="showFlag && isShow">
<van-cell-group v-for="(it, ind) in item.questions" :key="ind">
<van-field
v-model="it.answer"
placeholder="请输入"
:label="it.questionContent"
clearable
v-validate="'required'"
data-vv-name="答案"
v-if="!it.extra"
/>
</van-cell-group>
</div>
</div>
</div>
</div>
</van-collapse-item>
</van-collapse>
</div>
@@ -103,6 +133,9 @@ export default {
saleInsuredSex: '',
saleInsuredPersonAge: '',
saleInsuredPersonSex: '',
showFlag: false,
isShow: false,
isShows: false,
impartTypeNumber: {
'0': '投保人健康告知',
'2': '投保人财务告知',
@@ -111,7 +144,11 @@ export default {
'4': '投保人健康告知',
'5': '被保人健康告知',
'6': '投保人财务告知',
'7': '被保人财务告知'
'7': '被保人财务告知',
'8': '投保人健康告知',
'10': '投保人财务告知',
'9': '被保人健康告知',
'11': '被保人财务告知'
}
}
},
@@ -130,7 +167,7 @@ export default {
this.saleInsuredAge = utilsAge.getAge(this.saleInsuredInfo.birthday, new Date())
this.saleInsuredSex = this.saleInsuredInfo.sex
//投被不同人取到年纪和性别去判断是是否显示内容
this.saleInsuredPersonAge = utilsAge.getAge(this.saleInsuredPersonInfo.birthday, new Date())
this.saleInsuredPersonAge = this.saleInsuredPersonInfo.age
this.saleInsuredPersonSex = this.saleInsuredPersonInfo.sex
} else {
this.$toast(res.resultMessage)
@@ -138,7 +175,7 @@ export default {
})
// this.relationToAppnt = `1`
this.productCodes = JSON.parse(localStorage.chooseProductCodes)
this.information()
//this.information()
},
methods: {
// 一键全否
@@ -148,6 +185,9 @@ export default {
that.impartDTOS.map(it => {
it.impartItemDTOS.map(itm => {
itm.impartAnswer = '1'
if (itm.impartCode == '2b') {
itm.impartAnswer = ''
}
// console.log(itm.impartAnswer)
// console.log(itm.show)
})
@@ -190,6 +230,20 @@ export default {
}
})
}
// 被保人财务告知添加判断
if (item.impartType == 3 || item.impartType == 7 || item.impartType == 11) {
item.impartItemDTOS.map((items, index, array) => {
if (items.extra3) {
let obj = JSON.parse(items.extra3)
if (obj.age && obj.sex == '2') {
//小于18岁显示
if (that.saleInsuredPersonAge < Number(obj.age)) {
this.isShow = true
}
}
}
})
}
})
//去除数组里面的空字符串
that.impartDTOS.map(item => {
@@ -214,14 +268,14 @@ export default {
})
},
// 单选改变时候
change(item, val) {
change(item, val, impartCode, impartType) {
// console.log(item)
// console.log(val)
let that = this
if (val == '0') {
that.impartDTOS.map(it => {
it.impartItemDTOS.map(itm => {
if (item == itm.extra2) {
if (item == itm.isSelect) {
// itm.isTrue = val
itm.show = true
}
@@ -231,13 +285,41 @@ export default {
} else {
that.impartDTOS.map(it => {
it.impartItemDTOS.map(itm => {
if (item == itm.extra2) {
if (item == itm.isSelect) {
// itm.isTrue = val
itm.show = false
}
})
})
}
if (impartType == '3' || impartType == '7' || impartType == '11') {
if (impartCode == '2a') {
if (val == '0') {
this.showFlag = true
} else {
this.showFlag = false
}
that.impartDTOS.map(it => {
it.impartItemDTOS.map(itm => {
if (itm.impartCode == '2b') {
itm.impartAnswer = ''
}
})
})
}
}
},
formatDateTime() {
var date = new Date()
var y = date.getFullYear()
var m = date.getMonth() + 1
m = m < 10 ? '0' + m : m
var d = date.getDate()
d = d < 10 ? '0' + d : d
var h = date.getHours()
var minute = date.getMinutes()
var second = date.getSeconds()
return y + m + d + h + minute + second
},
// 获取告知消息,
information() {
@@ -253,7 +335,7 @@ export default {
if (res.result == '0') {
res.productImpartLstDTO.impartDTOS.map(item => {
item.impartItemDTOS.map(im => {
// debugger
im.isSelect = this.formatDateTime() +Math.random().toString(36).substr(2)
im.impartAnswer = ''
if (im.questions) {
if (im.questions.length == '0') {
@@ -328,26 +410,26 @@ export default {
// let arr = []
that.impartDTOS.map(item => {
// 投保人健康告知
if (item.impartType == '0' || item.impartType == '4') {
if (item.impartType == '0' || item.impartType == '4' || item.impartType == '8') {
item.impartItemDTOS.map(i => {
delete i.extra2
delete i.isSelect
delete i.show
})
obj = item
return obj
} else if (item.impartType == '2' || item.impartType == '6') {
} else if (item.impartType == '2' || item.impartType == '6' || item.impartType == '10') {
// 投保人财富
item.impartItemDTOS.map(i => {
delete i.extra2
delete i.isSelect
delete i.show
})
// console.log(item.impartType)
financeImpartDTO = item
return financeImpartDTO
} else if (item.impartType == '1' || item.impartType == '5') {
} else if (item.impartType == '1' || item.impartType == '5' || item.impartType == '9') {
// 被保人健康
item.impartItemDTOS.map(i => {
delete i.extra2
delete i.isSelect
delete i.show
// if (i.impartCode == '14a') {
// i.questions.map(items => {
@@ -357,10 +439,10 @@ export default {
})
objInsured = item
return objInsured
} else if (item.impartType == '3' || item.impartType == '7') {
} else if (item.impartType == '3' || item.impartType == '7' || item.impartType == '11') {
// 被保人财富
item.impartItemDTOS.map(i => {
delete i.extra2
delete i.isSelect
delete i.show
})
financeImpart = item
@@ -373,7 +455,8 @@ export default {
orderType: 'IMPART_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
orderNo: window.localStorage.getItem('orderNo'),
productCode: this.$route.query.edit ? localStorage.productCode : JSON.parse(localStorage.trialList)[0].productCode
},
// 投保人
@@ -386,6 +469,7 @@ export default {
}
saveInformation(data).then(res => {
if (res.result == '0') {
localStorage.removeItem('changeCard')
that.$jump({
flag: 'h5',
extra: {
@@ -404,7 +488,8 @@ export default {
orderType: 'IMPART_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
orderNo: window.localStorage.getItem('orderNo'),
productCode: this.$route.query.edit ? localStorage.productCode : JSON.parse(localStorage.trialList)[0].productCode
},
// 投保人
@@ -418,6 +503,7 @@ export default {
}
saveInformation(data).then(res => {
if (res.result == '0') {
localStorage.removeItem('changeCard')
that.$jump({
flag: 'h5',
extra: {
@@ -436,7 +522,8 @@ export default {
orderType: 'IMPART_ORDER',
orderDTO: {
orderInfoDTO: {
orderNo: window.localStorage.getItem('orderNo')
orderNo: window.localStorage.getItem('orderNo'),
productCode: this.$route.query.edit ? localStorage.productCode : JSON.parse(localStorage.trialList)[0].productCode
},
// 投保人
@@ -450,6 +537,7 @@ export default {
}
saveInformation(data).then(res => {
if (res.result == '0') {
localStorage.removeItem('changeCard')
that.$jump({
flag: 'h5',
extra: {
@@ -500,7 +588,6 @@ export default {
color: #4a90e2;
}
}
/deep/ .van-field__label {
width: 38%;
}
@@ -510,6 +597,9 @@ export default {
/deep/.van-collapse-item__content {
padding: 0;
}
/deep/ .special .van-hairline--top-bottom:first-child::after {
border: none;
}
.allFalse {
position: fixed;
overflow: hidden;

View File

@@ -37,6 +37,10 @@
<van-button class="m-btn w250" type="danger" size="normal" @click="rePayMent">重新支付</van-button>
<van-button class="m-btn w250" type="danger" size="normal" @click="next">返回列表页</van-button>
</div>
<div class="bottom-area bottom-btn flex" v-if="payStatus == '9'">
<van-button class="m-btn w250" type="danger" size="normal" @click="rePayMent">重新支付</van-button>
<van-button class="m-btn w250" type="danger" size="normal" @click="changeCard">更换卡号</van-button>
</div>
</div>
</template>
@@ -49,7 +53,7 @@ export default {
// 保融收银台返回的支付流水号
paySeqNo: '',
// 接口返回数据前,不做页面渲染
isReady: false,
isReady: true,
// 是否已重新获取支付状态。(首次进入本页,立即查询支付结果。如果是‘支付中’,两秒后再次(最后一次)再次获取一次支付状态。)
isReloaded: false,
// 结果原因
@@ -130,6 +134,19 @@ export default {
path: '/sale/payMent'
}
})
},
//更换卡号
changeCard() {
localStorage.setItem('changeCard', true)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/AccountInformation'
},
routerInfo: {
path: '/sale/AccountInformation'
}
})
}
},
mounted() {
@@ -142,11 +159,11 @@ export default {
}
this.paySeqNo = this.$route.query.RdSeq
if (!this.paySeqNo) {
this.$toast({ message: '参数错误缺少支付流水号RdSeq查询参数', duration: 5000 })
} else {
this.queryPayState()
}
// if (!this.paySeqNo) {
// this.$toast({ message: '参数错误缺少支付流水号RdSeq查询参数', duration: 5000 })
// } else {
// this.queryPayState()
// }
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''

View File

@@ -18,7 +18,6 @@
</van-cell-group>
<div v-if="!isWeixin">
<!-- 不再微信 -->
<van-collapse v-model="activeNames" class="mt10">
<van-collapse-item name="1">
<div slot="title">
@@ -27,6 +26,14 @@
</div>
<p class="mb20">以下内容需要您按照顺序阅读并签字确认:</p>
<div v-if="changeCard">
<p>需阅读</p>
<p class="mb20">
<span class="text">{{ appntSign.documentName }}</span>
<img :src="src" v-if="appntSign.documentStatus == '1'" />
</p>
</div>
<div v-else>
<div v-for="(item, index) in appntSign" :key="index">
<p>{{ item.documentCode == '1' ? '需阅读' : '需签署' }}</p>
<p class="mb20">
@@ -35,6 +42,7 @@
<img :src="src" v-if="item.documentCode !== '1' && item.documentStatus == '3'" />
</p>
</div>
</div>
<p class="start" v-if="airSign != '1'">点击开始按钮进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button
@@ -44,7 +52,7 @@
class="w150"
plain
v-no-more-click="1000"
:disabled="appntSignStatus == '3'"
:disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'"
@click="share(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>分享</van-button
>
@@ -53,7 +61,7 @@
size="normal"
class="w150"
plain
:disabled="appntSignStatus == '3'"
:disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'"
v-no-more-click="1000"
@click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>开始</van-button
@@ -63,7 +71,7 @@
</van-collapse-item>
</van-collapse>
<div v-if="relationToAppnt != '1'" class="mt10">
<div v-if="relationToAppnt != '1' && !changeCard" class="mt10">
<van-collapse v-model="activeNames" v-for="(item, index) in insured" :key="index">
<van-collapse-item :name="index + 2">
<div slot="title">
@@ -111,6 +119,14 @@
<span class="ml20">{{ appnt.name }}</span>
</div>
<p class="mb20">以下内容需要您按照顺序阅读并签字确认:</p>
<div v-if="changeCard">
<p>需阅读</p>
<p class="mb20">
<span class="text">{{ appntSign.documentName }}</span>
<img :src="src" v-if="appntSign.documentStatus == '1'" />
</p>
</div>
<div v-else>
<div v-for="(item, index) in appntSign" :key="index">
<p>{{ item.documentCode == '1' ? '需阅读' : '需签署' }}</p>
<p class="mb20">
@@ -119,6 +135,7 @@
<img :src="src" v-if="item.documentCode !== '1' && item.documentStatus == '3'" />
</p>
</div>
</div>
<p class="start" v-if="airSign != '1'">点击开始按钮进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button
@@ -126,7 +143,7 @@
size="normal"
style="width: 157px;"
plain
:disabled="appntSignStatus == '3'"
:disabled="changeCard ? appntSign.documentStatus == '1' : appntSignStatus == '3'"
v-no-more-click="1000"
@click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>开始</van-button
@@ -172,6 +189,19 @@
</div>
</div>
<div v-if="!isWeixin">
<div v-if="changeCard">
<div class="bottom-btn bg-white" v-if="appntSign.documentStatus == '1'">
<van-button
type="danger"
v-if="relationToAppnt == '1' ? true : appntSign.documentStatus == '1' ? true : false"
size="large"
@click="rePayMent"
v-no-more-click="1000"
>支付</van-button
>
</div>
</div>
<div v-else>
<div class="bottom-btn bg-white" v-if="appntSignStatus == '3'">
<van-button
type="danger"
@@ -183,6 +213,7 @@
>
</div>
</div>
</div>
<UploadImageFile :typeface="idcardData.typeface" :realName="idcardData.idcardName" :idno="idcardData.idcardNumber" @sendimage="sendimage">
</UploadImageFile>
</div>
@@ -245,7 +276,8 @@ export default {
idcardNumber: ''
},
appntSignStatus: '', //投保人电子签名状态
insuredSignStatus: '' //被保人电子签名状态
insuredSignStatus: '', //被保人电子签名状态
changeCard: localStorage.changeCard
}
},
methods: {
@@ -261,7 +293,9 @@ export default {
window.localStorage.setItem('orderNo', this.$route.query.orderNo)
window.localStorage.setItem('relationToAppnt', this.$route.query.relationToAppnt)
window.localStorage.setItem('productCode', this.$route.query.productCode)
if (this.$route.query.changeCard && this.$route.query.changeCard != 'undefined') {
localStorage.setItem('changeCard', true)
}
if (this.$route.query.signInvalid) {
sessionStorage.setItem('signInvalid', this.$route.query.signInvalid)
}
@@ -279,17 +313,27 @@ export default {
}
this.airSign = sessionStorage.getItem('airSign')
this.shareCode = sessionStorage.getItem('shareCode')
this.changeCard = localStorage.getItem('changeCard')
this.relationToAppnt = this.$route.query.relationToAppnt
this.isShow = false
this.getOrderDetail().then(() => {
// console.log('this.appntSignStatus', this.appntSignStatus)
// console.log('this.appntSignStatus', this.appntSignStatus)
if (this.appntSignStatus == '3' && sessionStorage.getItem('shareCode') == '0' || this.appntSignStatus == '3' && sessionStorage.getItem('shareCode') == '2') {
console.log('this.appntSignStatus', this.appntSignStatus)
console.log('this.shareCode', this.shareCode)
console.log('this.changeCard', this.changeCard)
if (
(this.appntSignStatus == '3' && sessionStorage.getItem('shareCode') == '0') ||
(this.appntSignStatus == '3' && sessionStorage.getItem('shareCode') == '2')
) {
// this.$toast('签名成功,请联系业务员进行后续流程!')
Dialog.alert({ title: '提示', message: '签名成功,请联系业务员进行后续流程!' })
} else if (this.insuredSignStatus == '3' && sessionStorage.getItem('shareCode') == '1') {
Dialog.alert({ title: '提示', message: '签名成功,请联系业务员进行后续流程!' })
}
if (this.changeCard && this.appntSign.documentStatus == '1') {
Dialog.alert({ title: '提示', message: '确认完成,请联系业务员完成后续流程!' })
}
})
if (sessionStorage.shareCode == '1') {
console.log('进来被保人')
@@ -325,7 +369,7 @@ export default {
window.localStorage.setItem('sign-val', val)
window.localStorage.setItem('sign-appnt', JSON.stringify(that.appntSign))
if (val == '0' || val == '2') {
//idtype为身份证年纪小于18岁跳过人脸识别
//idtype为身份证年纪小于18岁跳过人脸识别
if (JSON.parse(this.$route.query.saleInsuredInfo).idType != '1' || JSON.parse(this.$route.query.saleInsuredInfo).age < '18') {
that.goUrl()
} else {
@@ -387,6 +431,9 @@ export default {
goUrl() {
let that = this
let path = ''
if (that.changeCard) {
path = 'insuranceInformation'
} else {
if (localStorage.productCode == 'GFRS_M0003') {
if (that.appntSign[0].documentStatus == 0) {
path = 'insuranceInformation'
@@ -406,6 +453,7 @@ export default {
path = 'SignatureOfElectronic'
}
}
}
that.$jump({
flag: 'h5',
extra: {
@@ -461,12 +509,14 @@ export default {
'&signInvalid=' +
this.signInvalid +
'&productCode=' +
localStorage.productCode
localStorage.productCode +
'&changeCard=' +
this.changeCard
)
EWebBridge.webCallAppInJs('bridge', {
flag: 'share',
extra: {
title: `国富人寿电子投保单(${shareName})签字`,
title: this.changeCard ? '国富人寿修改银行卡号确认' : `国富人寿电子投保单(${shareName})签字`,
content: '签字进行',
url:
location.origin +
@@ -485,7 +535,9 @@ export default {
'&signInvalid=' +
this.signInvalid +
'&productCode=' +
localStorage.productCode,
localStorage.productCode +
'&changeCard=' +
this.changeCard,
img: this.$assetsUrl + 'images/logo.png'
}
})
@@ -589,6 +641,20 @@ export default {
}
})
},
// 重新支付
rePayMent() {
// 再次支付 salelist为 0
localStorage.salelist = '0'
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/payMent'
},
routerInfo: {
path: '/sale/payMent'
}
})
},
// 获取消息和阅读状态
getOrderDetail() {
let that = this
@@ -627,16 +693,23 @@ export default {
that.appnt = res.orderDTO.appntDTO
that.date = res.orderDTO.orderInfoDTO.appntDateLabel
res.orderDTO.ebizSignDTOS.map(item => {
if (item.signType == '0') {
if (item.signType == '0' || item.signType == '2') {
if (!localStorage.changeCard) {
if (item.documentCode != '5') {
that.appntSign.push(item) //投保
that.addKey(item)
} else if (item.signType == '1') {
that.insuredSign.push(item) //被保
}
} else {
that.appntSign.push(item) //本人
that.addKey(item)
//阅读授权书
if (item.documentCode == '5') {
that.appntSign = item //投保
}
}
} else {
that.insuredSign.push(item) //被保
}
})
if (!that.changeCard) {
//将投保人数组排序
that.appntSign.sort(function(a, b) {
return a.key - b.key
@@ -652,6 +725,7 @@ export default {
that.insuredSignStatus = item.documentStatus
}
})
}
resolve('success')
}
})
@@ -730,6 +804,7 @@ export default {
},
mounted() {
let that = this
document.title = this.changeCard ? '修改银行卡号确认' : '签名确认'
// 初始化
that.init()
// localStorage.orderNo = '19090510425500178912'

View File

@@ -52,6 +52,7 @@ function closeBtn(that) {
* @param {*} type 1 投保人 2 被保人
*/
export function getIdentityInfo(that, data, type) {
console.log(data)
// 正面
if (data.name && data.name != '待识别') {
that.userInfo.name = data.name
@@ -68,6 +69,8 @@ export function getIdentityInfo(that, data, type) {
that.userInfo.certiexpiredate = `${data.endDate.substr(0, 4)}-${data.endDate.substr(5, 2)}-${data.endDate.substr(8, 2)}`
// that.userInfo.certiexpiredate = `${data.endDate.substr(0, 4)}-${data.endDate.substr(4, 2)}-${data.endDate.substr(6, 2)}`
that.effectiveDateTypeAble = true
that.idLimit = false
that.isRequired = true
} else {
// 勾选长期
that.userInfo.effectiveDateType = true
@@ -75,6 +78,9 @@ export function getIdentityInfo(that, data, type) {
that.effectiveDateTypeAble = false
// 证件截止日期不需要校验
that.certiexpiredateRequired = false
//截止日期不可编辑
that.idLimit = true
that.isRequired = false
}
}
that.isScan = false