支付失败换卡

This commit is contained in:
zhouna
2019-12-10 15:02:13 +08:00
parent fafa5cec74
commit 63d79c9a93
7 changed files with 1392 additions and 1325 deletions

View File

@@ -663,8 +663,39 @@ 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: '延期'
}],
// 产品编码
riskType: [{
shortName: '重疾险',

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,6 +241,24 @@ 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) {
// 续保
@@ -328,6 +349,7 @@ export default {
}
}
}
}
saveInformation(data).then(res => {
if (res.result == '0') {

View File

@@ -928,7 +928,7 @@ export default {
},
mediaDTOS: that.list
},
orderType: 'MEDIA_ORDER'
orderType: that.changeCard ? 'MEDIANEW_ORDER' : 'MEDIA_ORDER'
}
saveInformation(data).then(res => {

View File

@@ -200,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
@@ -207,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')
@@ -335,6 +338,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
@@ -342,8 +346,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')

View File

@@ -96,6 +96,11 @@
round
>重新支付</van-button
>
<template v-if="active == 'commit' && order.orderInfoDTO.orderStatus == '55'">
<van-button @click="changeCard" 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'"
@@ -187,6 +192,19 @@ export default {
routerInfo: { path: '/sale/payMent' }
})
},
//支付失败去换卡
changeCard() {
localStorage.setItem('changeCard', true)
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/AccountInformation'
},
routerInfo: {
path: '/sale/AccountInformation'
}
})
},
// 去人工核保
// goNucleus() {
// let data = {

View File

@@ -37,7 +37,7 @@
<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">
<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>
@@ -53,7 +53,7 @@ export default {
// 保融收银台返回的支付流水号
paySeqNo: '',
// 接口返回数据前,不做页面渲染
isReady: false,
isReady: true,
// 是否已重新获取支付状态。(首次进入本页,立即查询支付结果。如果是‘支付中’,两秒后再次(最后一次)再次获取一次支付状态。)
isReloaded: false,
// 结果原因

View File

@@ -18,46 +18,6 @@
</van-cell-group>
<div v-if="!isWeixin">
<!-- 不再微信 -->
<div v-if="changeCard">
<van-collapse v-model="activeNames" class="mt10">
<van-collapse-item name="1">
<div slot="title">
投保人
<span class="ml20">{{ appnt.name }}</span>
</div>
<p class="mb20">以下内容需要您按照顺序阅读并签字确认:</p>
<p>需阅读</p>
<p class="mb20">
<span class="text">国富人寿转账授权书</span>
<!-- <img :src="src" v-if="documentCode == 1" /> -->
</p>
<p class="start" v-if="airSign != '1'">点击开始按钮进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button
v-if="isShow"
type="danger"
size="normal"
class="w150"
plain
v-no-more-click="1000"
@click="share(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>分享</van-button
>
<van-button
type="danger"
size="normal"
class="w150"
plain
v-no-more-click="1000"
@click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>开始</van-button
>
</div>
<div class="text" v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item>
</van-collapse>
</div>
<div v-else>
<van-collapse v-model="activeNames" class="mt10">
<van-collapse-item name="1">
<div slot="title">
@@ -66,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">
@@ -74,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
@@ -83,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
>
@@ -92,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
@@ -102,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">
@@ -140,41 +109,8 @@
</van-collapse>
</div>
</div>
</div>
<div v-else>
<!-- 在微信 -->
<div v-if="changeCard">
<div v-if="shareCode != '1'">
<van-collapse v-model="activeNames" class="mt10">
<van-collapse-item name="1">
<div slot="title">
投保人
<span class="ml20">{{ appnt.name }}</span>
</div>
<p class="mb20">以下内容需要您按照顺序阅读并签字确认:</p>
<p>需阅读</p>
<p class="mb20">
<span class="text">国富人寿转账授权书</span>
<!-- <img :src="src" v-if="documentCode == 1" /> -->
</p>
<p class="start" v-if="airSign != '1'">点击开始按钮进行相关操作</p>
<div v-if="!isInvalid" class="flex justify-content-a mt20">
<van-button
type="danger"
size="normal"
class="w150"
plain
v-no-more-click="1000"
@click="start_ocr(saleInsuredPersonInfo.relationToAppnt == '1' ? '2' : '0')"
>开始</van-button
>
</div>
<div class="text" v-else>操作时间已失效请联系销售人员</div>
</van-collapse-item>
</van-collapse>
</div>
</div>
<div v-else>
<div v-if="shareCode != '1'" class="mt10">
<van-collapse v-model="activeNames">
<van-collapse-item name="1">
@@ -183,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">
@@ -191,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
@@ -198,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
@@ -243,8 +188,20 @@
</div>
</div>
</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"
@@ -256,6 +213,7 @@
>
</div>
</div>
</div>
<UploadImageFile :typeface="idcardData.typeface" :realName="idcardData.idcardName" :idno="idcardData.idcardNumber" @sendimage="sendimage">
</UploadImageFile>
</div>
@@ -335,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)
}
@@ -353,6 +313,7 @@ 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(() => {
@@ -360,6 +321,7 @@ export default {
// console.log('this.appntSignStatus', this.appntSignStatus)
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')
@@ -369,6 +331,9 @@ export default {
} 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('进来被保人')
@@ -404,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 {
@@ -544,7 +509,9 @@ export default {
'&signInvalid=' +
this.signInvalid +
'&productCode=' +
localStorage.productCode
localStorage.productCode +
'&changeCard=' +
this.changeCard
)
EWebBridge.webCallAppInJs('bridge', {
flag: 'share',
@@ -568,7 +535,9 @@ export default {
'&signInvalid=' +
this.signInvalid +
'&productCode=' +
localStorage.productCode,
localStorage.productCode +
'&changeCard=' +
this.changeCard,
img: this.$assetsUrl + 'images/logo.png'
}
})
@@ -671,6 +640,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
@@ -709,16 +692,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
@@ -734,6 +724,7 @@ export default {
that.insuredSignStatus = item.documentStatus
}
})
}
resolve('success')
}
})