初始代码合并--投保流程

This commit is contained in:
pang.lizong
2019-09-22 15:11:33 +08:00
parent bdbe9f8da5
commit 9f81f7de08
10 changed files with 195 additions and 54 deletions

View File

@@ -1,5 +1,5 @@
# env
NODE_ENV = 'development'
NODE_ENV = 'production'
# flag
VUE_APP_FLAG='development'

44
package-lock.json generated
View File

@@ -6387,7 +6387,8 @@
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"aproba": {
"version": "1.2.0",
@@ -6408,12 +6409,14 @@
"balanced-match": {
"version": "1.0.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -6428,17 +6431,20 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"core-util-is": {
"version": "1.0.2",
@@ -6555,7 +6561,8 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"ini": {
"version": "1.3.5",
@@ -6567,6 +6574,7 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@@ -6581,6 +6589,7 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -6588,12 +6597,14 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"minipass": {
"version": "2.3.5",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.2",
"yallist": "^3.0.0"
@@ -6612,6 +6623,7 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -6692,7 +6704,8 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"object-assign": {
"version": "4.1.1",
@@ -6704,6 +6717,7 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"wrappy": "1"
}
@@ -6789,7 +6803,8 @@
"safe-buffer": {
"version": "5.1.2",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"safer-buffer": {
"version": "2.1.2",
@@ -6825,6 +6840,7 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -6844,6 +6860,7 @@
"version": "3.0.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -6887,12 +6904,14 @@
"wrappy": {
"version": "1.0.2",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"yallist": {
"version": "3.0.3",
"bundled": true,
"dev": true
"dev": true,
"optional": true
}
}
},
@@ -12770,7 +12789,8 @@
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
"integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=",
"dev": true
"dev": true,
"optional": true
},
"rx-lite-aggregates": {
"version": "4.0.8",

View File

@@ -1,7 +1,7 @@
{
"name": "ebiz-h5",
"version": "1.0.0",
"description": "鼎诚人寿",
"description": "国富人寿",
"author": "wangfangbo <wang.fangbo@ebiz-fooge.com>",
"private": true,
"scripts": {

View File

@@ -10,10 +10,11 @@ let apiDomain, imgDomain, assetsUrl, mainUrl
console.log('环境:', process.env.VUE_APP_FLAG)
switch (process.env.VUE_APP_FLAG) {
case 'development':
apiDomain = 'http://47.96.143.111:7000/api/v1'
imgDomain = 'http://116.62.236.168:7012/updown'
// apiDomain = 'http://47.96.143.111:7000/api/v1'
apiDomain = 'http://139.199.50.151:7000/api/v1' // 国富api
imgDomain = 'http://10.10.100.98:7012/updown' // 影像件上传
// 静态服务资源
assetsUrl = 'http://47.96.143.111:8000/app/'
assetsUrl = 'http://139.199.50.151:8000/app/'
mainUrl = 'http://47.96.143.111'
break
case 'staging':

View File

@@ -30,10 +30,10 @@
</div>
<div class="pcenter-list">
<div class="pcenter-item text-center">
<img :src="$assetsUrl + 'images/pic_chanpin-10.png'" class="w365 h130" alt="" @click="goDetail('DCRSPRO_M0001')" />
<img :src="$assetsUrl + 'images/pic_chanpin-10.png'" class="w365 h130" alt="" @click="goDetail('GFRSPRO_M0002')" />
</div>
<div class="pcenter-item text-center">
<img class="w345 h110" :src="$assetsUrl + 'images/pic_chanpin-2.png'" alt="" @click="goDetail('DCRSPRO_M0002')" />
<img class="w345 h110" :src="$assetsUrl + 'images/pic_chanpin-2.png'" alt="" @click="goDetail('GFRSPRO_M0001')" />
</div>
</div>
</div>

View File

@@ -22,7 +22,7 @@
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">银行卡扫描</van-button>-->
</van-cell-group>
<!-- <van-cell-group class="pl20 fs14 flex align-items-c justify-content-s">
<van-field label="是否自动垫付" disabled />
@@ -280,6 +280,7 @@ export default {
// window.localStorage.setItem('accountInfomation-bank', that.bank)
window.localStorage.setItem('accountInformationRadio', that.radio)
// window.localStorage.setItem('accountInformation-isPaymentSelf', JSON.stringify(that.checked))
// marked by pang on 2019-09-22 影像上传暂不可用,跳过 todo.... begin
that.$jump({
flag: 'h5',
extra: {
@@ -289,6 +290,18 @@ export default {
path: '/sale/attachmentManagement'
}
})
// todo.....end
// todo..... delete
// that.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + '/#/sale/signatureConfirmation'
// },
// routerInfo: {
// path: '/sale/signatureConfirmation'
// }
// })
// todo.....end
} else {
that.$toast(res.resultMessage)
}

View File

@@ -25,7 +25,7 @@
/>
<!-- <van-field v-model="userInfo.idNo" v-validate="'required|idNo'" maxlength="18" label="证件号码" name="证件号码" placeholder="请输入" clearable> -->
<van-field v-model="userInfo.idNo" maxlength="18" label="证件号码" 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-button v-if="userInfo.idType == 1" slot="button" size="small" type="danger" round @click="selectClick('3')">证件扫描</van-button>-->
</van-field>
<FieldDatePicter
v-validate="'required'"

View File

@@ -46,9 +46,9 @@
v-validate="'required'"
@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 v-if="userInfo.idType == 1" slot="button" size="small" type="danger" round @click="selectClick('3')" v-no-more-click="1000"-->
<!-- >证件扫描</van-button-->
<!-- >-->
</van-field>
<FieldDatePicter
v-validate="'required'"

View File

@@ -35,6 +35,42 @@
<van-button type="danger" style="width: 50vw" @click="cancel" v-no-more-click="1000">返回投保单列表</van-button>
<van-button type="danger" style="width: 50vw" @click="payMent" v-no-more-click="1000">去支付</van-button>
</div>
<form ref="payForm" action="http://10.10.100.84:7003/s3-modules-gateway/embed/gateway.action" method="post">
<input name="TransSource" type="text" v-model="payParam.TransSource" />
<input name="TransDate" type="text" v-model="payParam.TransDate" />
<input name="TransTime" type="text" v-model="payParam.TransTime" />
<input name="TransSeq" type="text" v-model="payParam.TransSeq" />
<input name="Version" type="text" v-model="payParam.Version" />
<input name="RdSeq" type="text" v-model="payParam.RdSeq" />
<input name="PaymentCode" type="text" v-model="payParam.PaymentCode" />
<input name="PayType" type="text" v-model="payParam.PayType" />
<input name="SettleMode" type="text" v-model="payParam.SettleMode" />
<input name="ApplyEntity" type="text" v-model="payParam.ApplyEntity" />
<input name="Cur" type="text" v-model="payParam.Cur" />
<input name="OurAmount" type="text" v-model="payParam.OurAmount" />
<input name="FixUser" type="text" v-model="payParam.FixUser" />
<input name="Insurer" type="text" v-model="payParam.Insurer" />
<input name="CertType" type="text" v-model="payParam.CertType" />
<input name="CertNum" type="text" v-model="payParam.CertNum" />
<input name="OppBank" type="text" v-model="payParam.OppBank" />
<input name="OppAct" type="text" v-model="payParam.OppAct" />
<input name="OppActName" type="text" v-model="payParam.OppActName" />
<input name="CellPhone" type="text" v-model="payParam.CellPhone" />
<input name="ExpireDate" type="text" v-model="payParam.ExpireDate" />
<input name="Purpose" type="text" v-model="payParam.Purpose" />
<input name="Memo" type="text" v-model="payParam.Memo" />
<input name="Description" type="text" v-model="payParam.Description" />
<input name="SourceNotecode" type="text" v-model="payParam.SourceNotecode" />
<input name="ReturnURL" type="text" v-model="payParam.ReturnURL" />
<input name="NotifyURL" type="text" v-model="payParam.NotifyURL" />
<input name="SaleChannel" type="text" v-model="payParam.SaleChannel" />
<input name="ReqReserved1" type="text" v-model="payParam.ReqReserved1" />
<input name="ReqReserved2" type="text" v-model="payParam.ReqReserved2" />
<input name="ReqReserved3" type="text" v-model="payParam.ReqReserved3" />
<input name="ReqReserved4" type="text" v-model="payParam.ReqReserved4" />
<input name="ReqReserved5" type="text" v-model="payParam.ReqReserved5" />
<input name="S3Sign" type="text" v-model="payParam.S3Sign" />
</form>
</div>
</template>
@@ -51,7 +87,45 @@ export default {
src: this.$assetsUrl + 'images/cardImg.png',
// 核保数据
underWriteData: {},
srcImg: ''
srcImg: '',
payParam: {
TransSource: '', // 对接系统
TransDate: '', // 请求日期
TransTime: '', // 请求时间
TransSeq: '', // 时间戳
Version: '', // 版本号
RdSeq: '', // 指令流水号
PaymentCode: '', // 业务唯一号
PayType: '', // 交易类型
SettleMode: '', // 支付方式
ApplyEntity: '', // 业务发生机构
Cur: '', // 币种
OurAmount: '', // 金额
FixUser: '', // 实名认证标识
Insurer: '', // 对接系统
CertType: '', // 证件类型
CertNum: '', // 证件号码
OppBank: '', // 交易方银行
OppAct: '', // 交易方账号
OppActName: '', // 交易方名称
CellPhone: '', // 手机号码
ExpireDate: '', // 订单失效时间
Purpose: '', // 用途
Memo: '', // 备注
Description: '', // 描述
SourceNotecode: '', // 外部系统业务单据号
ReturnURL: '', // 页面跳转同步通知地址
NotifyURL: '', // 后台通知地址
SaleChannel: '', // 销售渠道
ReqReserved1: '', // 备用字段1
ReqReserved2: '', // 备用字段2
ReqReserved3: '', // 备用字段3
ReqReserved4: '', // 备用字段4
ReqReserved5: '', // 备用字段5
S3Sign: '', // 验签信息
tradeState: '' // 状态
},
gotPayParam: false // 是否已正确获取支付参数
}
},
mounted() {
@@ -65,37 +139,62 @@ export default {
this.underWriteData = JSON.parse(window.localStorage.getItem('underWriteData'))
this.srcImg = this.$assetsUrl + `images/bank/bank_${JSON.parse(window.localStorage.getItem('underWriteData')).bankCode}.png`
}
// 取支付参数
this.getPayParam()
},
methods: {
// 点击支付
payMent() {
// 取支付参数
getPayParam() {
let that = this
let data = {
orderNo: window.localStorage.getItem('orderNo')
}
console.log('----取支付参数请求:', data)
acceptInsurance(data).then(res => {
console.log('----取支付参数结果:', JSON.stringify(res))
// res = {'result':'0','resultMessage':'','content':null,'prtNo':'8186270000000008','payStatus':'4','amnt':'63700.00','appntName':'投保人','message':null,'brPayReturnData':{'result':'','resultMessage':'','content':null,'businessId':'1569125393518','businessNo':'8186270000000008','tradeSubType':'COMM','businessType':'SALE','systemType':'GF','money':63700,'businessSubType':'XDCB','thirdType':'0002','thirdName':null,'bankCode':'ABC','epayOrderNo':'1909221209536259999900','companyAccount':null,'tradeState':'TRADING','standardCode':'DEALING','standardMsg':null,'thirdOrderNo':null,'respRemark':null,'tradeTime':'2019-09-22T04:09:53.518+0000','description':'','version':'1','sourceNotecode':'8186270000000008','payType':'MIT01','expireDate':'20191010101010','transSeq':'20190922120953782','transSource':'MIT','applyEntity':'11860000','paymentCode':'8186270000000008','transDate':'20190922','rdSeq':'1909221209536259999900','settleMode':null,'cur':'CNY','transTime':'120953','ourAmount':63700,'fixUser':'1','insurer':'投保人','certType':'0','certNum':'110101199009210011','oppBank':'ABC','oppAct':'6228481200290317812','oppActName':'投保人','cellPhone':null,'purpose':null,'memo':null,'returnURL':'http://139.199.50.151/#/sale/payResult','notifyURL':'http://139.199.50.151:7000/api/v1/epay/epay/payResult','s3Sign':'e3f0581ec6b751337e8eca360a0746bc'}}
if (res.result == '0') {
// 1成 4支付中 2支付失败 8转批扣
window.localStorage.setItem('resMessage', res.resultMessage)
window.localStorage.setItem('payStatus', res.payStatus)
window.localStorage.setItem('payInfo', JSON.stringify(res))
that.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/payResult',
backToFirst: '1'
},
routerInfo: {
path: '/sale/payResult'
// // 1成 4支付中 2支付失败 8转批扣
// if (res.payStatus == '2') {
// window.localStorage.setItem('resMessage', res.resultMessage)
// }
// window.localStorage.setItem('payStatus', res.payStatus)
// window.localStorage.setItem('payInfo', JSON.stringify(res))
// that.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + '/#/sale/payResult',
// backToFirst: '1'
// },
// routerInfo: {
// path: '/sale/payResult'
// }
// })
let keyMap = {}
for (let key in this.payParam) {
keyMap[key.toLowerCase()] = key
}
let paramKey
for (let rKey in res.brPayReturnData) {
if (keyMap.hasOwnProperty(rKey.toLowerCase())) {
paramKey = keyMap[rKey.toLowerCase()]
this.payParam[paramKey] = res.brPayReturnData[rKey]
}
})
}
console.log('----支付参数this.payParam:', JSON.stringify(this.payParam))
this.gotPayParam = true
this.$forceUpdate()
} else {
that.$toast(res.resultMessage)
}
})
},
// 点击支付
payMent() {
if (this.gotPayParam) {
this.$refs.payForm.submit()
}
},
// 取消支付
cancel() {
this.$jump({

View File

@@ -302,9 +302,9 @@ export default {
this.tipsName = JSON.parse(localStorage.getItem('saleInsuredInfo')).name
}
weixinShare({
title: '鼎诚人寿计划书',
imgUrl: 'http://47.96.143.111:8000/app/images/logo.png',
desc: '鼎诚为您量身定制的保险产品,请查收'
title: '国富人寿计划书',
imgUrl: 'http://139.199.50.151:8000/app/images/logo.png',
desc: '国富为您量身定制的保险产品,请查收'
})
let params = {
orderNo: ''
@@ -421,9 +421,14 @@ export default {
}
})
} else {
EWebBridge.webCallAppInJs('face_auth', {
number: that.saleInsuredInfo.idNo, //身份证号码
name: that.saleInsuredInfo.name //姓名
// 跳过人脸识别
// EWebBridge.webCallAppInJs('face_auth', {
// number: that.saleInsuredInfo.idNo, //身份证号码
// name: that.saleInsuredInfo.name //姓名
// })
new Promise(resolve => {
console.log('--跳过人脸识别--返回识别成功')
resolve(JSON.stringify({ state: '1' }))
}).then(data => {
if (JSON.parse(data).state == '1') {
if (that.appntSign.readStatus == '0') {
@@ -476,11 +481,14 @@ export default {
}
})
} else {
EWebBridge.webCallAppInJs('face_auth', {
//身份证号码
number: that.saleInsuredPersonInfo.idNo,
//姓名
name: that.saleInsuredPersonInfo.name
// 跳过人脸识别
// EWebBridge.webCallAppInJs('face_auth', {
// number: that.saleInsuredInfo.idNo, //身份证号码
// name: that.saleInsuredInfo.name //姓名
// })
new Promise(resolve => {
console.log('--跳过人脸识别--返回识别成功')
resolve(JSON.stringify({ state: '1' }))
}).then(data => {
if (JSON.parse(data).state == '1') {
if (that.insuredSign.readStatus == '0') {
@@ -551,7 +559,7 @@ export default {
EWebBridge.webCallAppInJs('bridge', {
flag: 'share',
extra: {
title: `鼎诚人寿电子投保单(${shareName})签字`,
title: `国富人寿电子投保单(${shareName})签字`,
content: '签字进行',
url:
location.origin +