Merge branch 'feature/GFRS-247【待确定】卡单产品投保' into feature/GFRS-1036【待确定】微信支付-卡单微信支付

# Conflicts:
#	src/views/ebiz/cardList/Pay.vue
This commit is contained in:
tian.guangyuan
2020-05-06 10:45:53 +08:00
5 changed files with 154 additions and 85 deletions

View File

@@ -74,3 +74,12 @@ export function getOrderList(data) {
data
})
}
// 获取订单支付状态
export function getPayTemp(data) {
return request({
url: getUrl('/sale/insure/getPayTemp', 1),
method: 'post',
data
})
}

View File

@@ -43,7 +43,10 @@
<div class="order-container" v-for="(orderItem, index) in NewItems" :key="index">
<div class="fs14 fwb mb5">{{ orderItem.riskName }}</div>
<div>
<span>投保单号{{ orderItem.orderNo }}</span>
<span>投保单号{{ orderItem.prtNo }}</span>
</div>
<div>
<span>订单号{{ orderItem.orderNo }}</span>
</div>
<div>
<span>投保人{{ orderItem.appantName }}</span>
@@ -53,7 +56,7 @@
</div>
<div class="flex justify-content-s">
<span>订单状态{{ orderItem.orderStatus | statusFormat }}</span>
<div v-if="orderItem.isCanPay && orderItem.orderStatus == '02'">
<div v-if="orderItem.isCanPay && (orderItem.orderStatus == '02' || orderItem.orderStatus == '19' || orderItem.orderStatus == '55')">
<van-button round @click="goPay(orderItem.orderNo)" size="small" class="mr5" type="danger" v-no-more-click="1000">去支付</van-button>
</div>
</div>
@@ -76,7 +79,7 @@
import { getCardList, getOrderList } from '@/api/ebiz/cardList/cardList.js'
import { Tab, Tabs, List, Sticky } from 'vant'
import dataDictionary from '@/assets/js/utils/data-dictionary' //根据数据字典找到订单状态
import formatDate from '@/assets/js/utils/date-utils'
// import formatDate from '@/assets/js/utils/date-utils'
export default {
name: 'kadantoubao.vue',
@@ -279,6 +282,7 @@ export default {
orderObj = {
riskName: orderItem.insuredDTOs[0].riskDTOLst[0].riskName,
orderNo: orderItem.orderInfoDTO.orderNo,
prtNo: orderItem.orderInfoDTO.prtNo,
appantName: orderItem.appntDTO.name,
insuredName: orderItem.insuredDTOs[0].name,
orderStatus: orderItem.orderInfoDTO.orderStatus
@@ -288,7 +292,7 @@ export default {
dateToday.setMinutes(0)
dateToday.setSeconds(0)
currentTime = dateToday.getTime()
compareTime = new Date(orderItem.orderInfoDTO.appntDateStr.replace(/-/g, "/")).getTime()
compareTime = new Date(orderItem.orderInfoDTO.appntDateStr.replace(/-/g, '/')).getTime()
let tmpSub = compareTime - currentTime
if (tmpSub > 0 && tmpSub < 24 * 60 * 60 * 1000) {
orderObj.isCanPay = true

View File

@@ -45,10 +45,12 @@
clearable
required
/>
<template v-if="noEdit">
<van-field
v-model="underWriteData.bankCode"
maxlength="19"
:readonly="orderStatus != '56'"
readonly
label="银行卡号"
name="银行卡号"
placeholder="请输入"
@@ -57,7 +59,32 @@
v-validate="'required|bankCard'"
data-vv-name="银行卡号"
>
<van-button slot="button" v-if="orderStatus == '56'" size="small" type="danger" round @click="cardScanning('0')">银行卡扫描</van-button>
</van-field>
<van-field
:value="bankListName"
label="开户银行"
name="开户银行"
placeholder="请输入"
v-validate="'required'"
readonly
right-icon="arrow"
data-vv-name="开户银行"
required
/>
</template>
<template v-else>
<van-field
v-model="underWriteData.bankCode"
maxlength="19"
label="银行卡号"
name="银行卡号"
placeholder="请输入"
required
clearable
v-validate="'required|bankCard'"
data-vv-name="银行卡号"
>
<van-button slot="button" size="small" type="danger" round @click="cardScanning('0')">银行卡扫描</van-button>
</van-field>
<van-field
:value="bankListName"
@@ -71,6 +98,8 @@
data-vv-name="开户银行"
required
/>
</template>
<!-- <van-field v-model="bank" label="开户银行" placeholder="请选择" required @click="focus" readonly v-validate="'required'" data-vv-name="开户银行" /> -->
</van-cell-group>
<!-- 第三方支付所需表单 -->
@@ -138,7 +167,7 @@ Vue.use(Checkbox).use(CheckboxGroup)
Vue.use(Field)
Vue.use(Button)
import { acceptInsurance, getBankList, underWrite, getOrderDetail } from '@/api/ebiz/sale/sale'
import { saveOrUpdateAccount } from '@/api/ebiz/cardList/cardList.js'
import { saveOrUpdateAccount, getPayTemp } from '@/api/ebiz/cardList/cardList.js'
import BankCardScan from '@/components/ebiz/sale/BankCardScan'
import Loading from '@/components/ebiz/Loading'
import config from '@/config'
@@ -219,6 +248,7 @@ export default {
},
gotPayParam: false, // 是否已正确获取支付参数,
payStatus: '', // 接口返回的支付状态
noEdit: true,
isWeixin, // 是否为微信环境
isLoading: false // 分享到微信后的页面loading
}
@@ -269,6 +299,7 @@ export default {
// this.underWriteData = JSON.parse(window.localStorage.getItem('underWriteData'))
// }
// console.log('--自核结果--支付信息:', JSON.stringify(this.underWriteData))
this.getPayTemp()
}
},
beforeRouteLeave(to, from, next) {
@@ -370,9 +401,9 @@ export default {
},
// 获取银行列表的focus
focus() {
if (this.orderStatus == '56') {
// if (this.orderStatus == '56') {
this.show = true
}
// }
},
// 获取银行卡列表
getBankList() {
@@ -396,6 +427,17 @@ export default {
this.underWriteData.bankName = bankCode
this.show = false
},
getPayTemp() {
getPayTemp({ orderNo: window.localStorage.getItem('orderNo') })
.then(res => {
if (res.result == '0') {
this.noEdit = res.content.flag != 'false'
}
})
.catch(e => {
console.error(e)
})
},
// 再次支付
getOrderDetail() {
getOrderDetail({ orderNo: window.localStorage.getItem('orderNo') }).then(res => {
@@ -489,12 +531,17 @@ export default {
case '57':
this.payMent()
break
case '02':
this.acceptInsurance()
break
// case '02':
// break
default:
if (!this.noEdit) {
this.payMent(true)
return true
} else {
this.acceptInsurance()
return this.$toast('当前不可支付')
}
}
},
acceptInsurance() {
let data = {
@@ -553,7 +600,7 @@ export default {
})
},
// 点击支付
async payMent() {
async payMent(flag) {
let data = {
orderDTO: {
orderInfoDTO: {
@@ -592,6 +639,7 @@ export default {
message: '加载中……'
})
if (!flag) {
let rs = await this.underWrite()
if (rs.result != '0') {
@@ -601,9 +649,10 @@ export default {
if (rs.uwResult != '02') {
return this.$toast(rs.message)
} else {
this.acceptInsurance()
}
}
this.acceptInsurance()
} else {
this.$toast(res.resultMessage)
this.isLoading = false

View File

@@ -3,15 +3,12 @@
<div class="payResult-header flex justify-content-c align-items-c m15 bg-white flex-direction-colunm">
<img :src="srcSuccess" class="payResult-img mb15 pt15" v-if="payStatus == '1'" />
<img :src="srcPending" class="payResult-img mb15 pt15" v-if="payStatus == '4' || payStatus == '8'" />
<img :src="srcFail" class="payResult-img mb15 pt15" v-if="payStatus == '2'" />
<img :src="srcFail" class="payResult-img mb15 pt15" v-if="payStatus == '9'" />
<img :src="srcFail" class="payResult-img mb15 pt15" v-if="payStatus == '2' || payStatus == '9'" />
<h3 v-if="payStatus == '1'" class="mb10">支付成功</h3>
<h3 v-if="payStatus == '4'" class="mb10">支付中...</h3>
<h3 v-if="payStatus == '2'" class="mb10">支付失败</h3>
<h3 v-if="payStatus == '9'" class="mb10">支付失败</h3>
<h3 v-if="payStatus == '2' || payStatus == '9'" class="mb10">支付失败</h3>
<span v-if="payStatus == '4'" class="pb10">银行扣款中请稍后查询</span>
<span v-if="payStatus == '8'" class="pb10">线下批扣中</span>
<!-- <span v-if="payStatus == '8'">{{ resMessage }}</span> -->
</div>
<van-cell-group v-if="payStatus == 1">
@@ -28,17 +25,29 @@
<div v-if="payStatus == '2' || payStatus == '4' || payStatus == '8'" class=" p10 pb250 bg-white">
<span v-html="resMessage"></span>
</div>
<!-- <div class=" p10 pb250 bg-white">
<span v-html="resMessage"></span>
</div> -->
<div class=" p10 pb250 bg-white" v-if="payStatus == '9'">
<span class="pt150 fs14">{{ resMessage }}</span>
</div>
<!-- <div class="bottom-btn bg-white" v-if="payStatus == '1' || payStatus == '4' || payStatus == '8'">
<van-button type="danger" size="large" @click="next" v-no-more-click="1000">返回首页</van-button>
</div> -->
<div class="bottom-area bottom-btn flex">
<!-- <van-button class="m-btn w250" type="danger" size="normal" @click="rePayMent">重新支付</van-button> -->
<van-button size="large" type="danger" @click="next" v-no-more-click="1000">返回首页</van-button>
<div class="bottom-btn bg-white" v-if="payStatus == '1' || payStatus == '4' || payStatus == '8'">
<van-button type="danger" size="large" @click="next" v-no-more-click="1000">返回首页</van-button>
</div>
<div class="bottom-area bottom-btn flex" v-if="payStatus == '2' || 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="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 class="bottom-area bottom-btn flex"> -->
<!-- <van-button class="m-btn w250" type="danger" size="normal" @click="rePayMent">重新支付</van-button> -->
<!-- <van-button size="large" type="danger" @click="next" v-no-more-click="1000">返回首页</van-button> -->
<!-- </div> -->
</div>
</template>
@@ -64,9 +73,7 @@ export default {
prtNo: '', // 投保单号
amnt: '' // 支付金额
},
card:{
},
card: {},
// 图片
srcSuccess: this.$assetsUrl + 'images/success.png',
srcPending: this.$assetsUrl + 'images/pending.png',
@@ -136,22 +143,22 @@ export default {
this.$toast(res.resultMessage)
}
})
}
// // 重新支付
// rePayMent() {
// // localStorage.orderNo = order.orderInfoDTO.orderNo
// // 再次支付 salelist为 0
},
// 重新支付
rePayMent() {
// localStorage.orderNo = order.orderInfoDTO.orderNo
// 重新支付 salelist为 0
// localStorage.salelist = '0'
// this.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + '/#/sale/payMent'
// },
// routerInfo: {
// path: '/sale/payMent'
// }
// })
// }
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/cardList/pay'
},
routerInfo: {
path: '/cardList/pay'
}
})
}
},
created() {
setTimeout(() => {

View File

@@ -63,9 +63,9 @@
v-validate="'required|mobile'"
maxlength="11"
/>
<van-field v-model="userInfo.email" required label="邮箱" name="邮箱" placeholder="请输入" v-validate="'required|email'" clearable />
<!-- <van-field v-model="userInfo.workcompany" required label="工作单位" name="工作单位" placeholder="请输入" v-validate="'required'" maxlength="50" clearable /> -->
<!-- <template v-if="false">
<van-field v-model="userInfo.email" required label="邮箱" name="邮箱" placeholder="请输入" v-validate="'required|email'" clearable />
<van-field
v-model="homeName"
readonly
@@ -213,10 +213,10 @@
<van-checkbox-group v-model="result" ref="checkboxGroup" style="box-sizing:border-box;" class="pl8 pr20 pt10 pb10 bg-white">
<van-checkbox name="a" shape="square" icon-size="13px"
>本人已仔细阅读并了解
<span class="blue" @click.stop="goDocu('http://139.199.50.151:8000/app/product/GFRS_M0022/M0022Notice.pdf', '短期交通卡投保须知')">投保须知</span>
<span class="blue" @click.stop="goDocu('http://139.199.50.151:8000/app/product/GFRS_M0022/M0022Explain.pdf', '短期交通卡投保声明')">投保声明</span>
<span class="blue" @click.stop="goDocu($assetsUrl + 'product/GFRS_M0022/M0022Notice.pdf', '短期交通卡投保须知')">投保须知</span>
<span class="blue" @click.stop="goDocu($assetsUrl + 'product/GFRS_M0022/M0022Explain.pdf', '短期交通卡投保声明')">投保声明</span>
<span class="blue" @click.stop="goDocu('http://139.199.50.151:8000/app/product/GFRS_M0022/M0022.pdf', '国富人寿综合交通意外保险2020')"
<span class="blue" @click.stop="goDocu($assetsUrl + 'product/GFRS_M0022/M0022.pdf', '国富人寿综合交通意外保险2020')"
>国富人寿综合交通工具意外伤害保险2020条款</span
>
等内容自愿为被保险人投保本保险<br />
@@ -357,8 +357,8 @@ export default {
// homeCity: '1', //家庭市
// homeArea: '1', //家庭区
// homeAddress: '1', //详细地址
mobile: '' //移动电话
// email: '123@qq.com', //电子邮箱
mobile: '', //移动电话
email: '' //电子邮箱
// effectiveDate: '' //指定生效日期
},
//被保人信息
@@ -687,7 +687,7 @@ export default {
this.userInfo.idType = data.customerIdType //证件类型
this.userInfo.idNo = data.customerIdNumber //证件类别
}
// this.userInfo.email = data.email //证件类别
this.userInfo.email = data.email //邮箱
this.userInfo.mobile = data.customerPhone //移动电话
// this.userInfo.homeProvince = data.homeProvince //家庭省