Commit fbf3d5d3 authored by 5359's avatar 5359

招行扫码支付上线代码提交

parent 29a71db8
...@@ -8,7 +8,8 @@ ...@@ -8,7 +8,8 @@
"dev": "cross-env CONFIG_ENV=dev webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "dev": "cross-env CONFIG_ENV=dev webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev", "start": "npm run dev",
"build:uat": "cross-env CONFIG_ENV=uat node build/build.js", "build:uat": "cross-env CONFIG_ENV=uat node build/build.js",
"build": "cross-env CONFIG_ENV=dev node build/build.js", "build:dev": "cross-env CONFIG_ENV=dev node build/build.js",
"build": "cross-env CONFIG_ENV=prod node build/build.js",
"clean": "rimraf www/*" "clean": "rimraf www/*"
}, },
"dependencies": { "dependencies": {
......
<template> <template>
<h-view style="overflow:auto;" title="招行扫码支付"> <h-view style="overflow:auto;" title="扫码支付">
<div class="page-box" style="padding: 20px; height: 100%"> <div class="page-box" style="padding: 20px; height: 100%">
<div style="height:12%; width:100%"> <div style="height:12%; width:100%">
<div class="title" style="height:42%; width:100%"> <div class="title" style="height:42%; width:100%">
...@@ -20,20 +20,20 @@ ...@@ -20,20 +20,20 @@
<div slot="name" class="text" style="width: 80%;font-size: 12px;"> <div slot="name" class="text" style="width: 80%;font-size: 12px;">
<div class="cont-type" style="color: #000;font-size: 14px;font-weight:700">承租人:{{ item.customername }} <div class="cont-type" style="color: #000;font-size: 14px;font-weight:700">承租人:{{ item.customername }}
</div> </div>
<div class="cont-type" style="color: #5a5959;font-size: 14px">代理店{{ item.dealername }}</div> <div class="cont-type" style="color: #5a5959;font-size: 14px">经销商{{ item.dealername }}</div>
<div class="cont-type" style="color: #5a5959;font-size: 14px">产品名称:{{ item.modelname }}</div> <div class="cont-type" style="color: #5a5959;font-size: 14px">产品名称:{{ item.modelname }}</div>
<div class="cont-type" style="color: #5a5959;font-size: 14px">合同号:{{ item.contractno }}</div> <div class="cont-type" style="color: #5a5959;font-size: 14px">合同号:{{ item.contractno }}</div>
<div class="cont-type" style="color: #5a5959;font-size: 14px">机号:{{ item.serialno }}</div> <div class="cont-type" style="color: #5a5959;font-size: 14px">机号:{{ item.serialno }}</div>
<div class="cont-type" style="color: #5a5959;font-size: 14px">租金总额:{{ item.contractamt }}</div> <div class="cont-type" style="color: #5a5959;font-size: 14px">合同总金额:{{ item.contractamt }}</div>
<div class="cont-type" style="color: #5a5959;font-size: 14px">租赁开始日:{{ item.leasebgndt }}</div> <div class="cont-type" style="color: #5a5959;font-size: 14px">租赁开始日:{{ item.leasebgndt }}</div>
<div class="cont-type" style="color: #5a5959;font-size: 14px">状态:<span <div class="cont-type" style="color: #5a5959;font-size: 14px">状态:<span
style="font-weight: 700; style="font-weight: 700;
color: rgba(198, 0, 0, 0.5);">{{ item.status }}</span></div> color: rgba(198, 0, 0, 0.5);">{{ item.status }}</span></div>
</div> </div>
<router-link :to="{ name: 'CmbPolyPayDetail', query: { contractno: item.contractno } }" class="more"> <router-link v-if="item.status == '还款中'" :to="{ name: 'CmbPolyPayDetail', query: { contractno: item.contractno } }" class="more">
<img src="../../../assets\image\right-arrow@2x.png" alt=""> <img src="../../../assets\image\right-arrow@2x.png" alt="">
</router-link> </router-link>
<button @click="download(index)">账单下载</button> <!--<button @click="download(item.contractno)">账单下载</button>-->
</article> </article>
</div> </div>
<div v-else-if="ListNum == 0" class="billList"> <div v-else-if="ListNum == 0" class="billList">
...@@ -79,8 +79,8 @@ export default { ...@@ -79,8 +79,8 @@ export default {
let url = process.env.basePath + 'getCmbConList' let url = process.env.basePath + 'getCmbConList'
// console.log('请求数据') // console.log('请求数据')
let params = { let params = {
openId: 'oBdoRwAgUiwsQvNGYhBYks6JJLPE', //openId: 'oBdoRwAgUiwsQvNGYhBYks6JJLPE',
// openId: openId, openId: openId,
serialno: value, serialno: value,
} }
// console.log("请求"); // console.log("请求");
...@@ -100,7 +100,7 @@ export default { ...@@ -100,7 +100,7 @@ export default {
}, },
download (contractno) { download (contractno) {
// console.log('下载') // console.log('下载')
window.open('http://sign.hitachics.com:8091/report/ReportServer?reportlet=/report/PAR015.cpt&CONTRACTNO=' + contractno + '&format=PDF&extype=simple', '_system') window.open('https://lease.hitachics.com:8990/ReportServer?reportlet=/report/HCLC_PDR003.cpt&CONTRACTNO=' + contractno + '&format=PDF&extype=simple', '_self')
}, },
detectSearchCondition () { detectSearchCondition () {
this.searchBill(window.localStorage.openId) this.searchBill(window.localStorage.openId)
......
...@@ -4,13 +4,28 @@ ...@@ -4,13 +4,28 @@
<ul id="box" style="margin-bottom: 150px;"> <ul id="box" style="margin-bottom: 150px;">
<li v-for="(item, index) in Lists" :key="index" class="items"> <li v-for="(item, index) in Lists" :key="index" class="items">
<input v-model="checked[index]" class="" type="checkbox" @mouseup="onClickHander(index)"> <input v-model="checked[index]" class="" type="checkbox" @mouseup="onClickHander(index)">
<ul class=""> <ul v-if="item.characterid_n == '首付款'" class="">
<li><span>期数:</span>{{ item.times }}</li> <li><span>期数:</span>{{ item.times_str }}</li>
<li><span>还款日期:</span>{{ item.recduedt_char }}</li> <li><span>还款日期:</span>{{ item.recduedt_char }}</li>
<li><span>租金金额:</span>{{ item.recdueamt }}</li> <!--<li><span>首期租赁费金额:</span>{{ item.recdueamt }}</li>-->
<li><span>违约金金额:</span>{{ item.ovducmpsamt }}</li> <li><span>剩余应还首期租赁费:</span>{{ item.rec_rental_str }}</li>
<li><span>剩余应还金额:</span>{{ item.recdueamt_total_str }}</li> <!--<li><span>收款类别:</span>{{ item.characterid_n }}</li>-->
<li><span>收款类别:</span>{{ item.characterid_n }}</li> </ul>
<ul v-if="item.characterid_n == '租金'" class="">
<li><span>期数:</span>{{ item.times_str }}</li>
<li><span>还款日期:</span>{{ item.recduedt_char }}</li>
<!--<li><span>租金金额:</span>{{ item.recdueamt }}</li>-->
<!--<li><span>违约金金额:</span>{{ item.ovducmpsamt }}</li>-->
<li><span>剩余应还租金:</span>{{ item.rec_rental_str }}</li>
<li><span>剩余应还违约金:</span>{{ item.rec_ovdu_str }}</li>
<!--<li><span>收款类别:</span>{{ item.characterid_n }}</li>-->
</ul>
<ul v-if="item.characterid_n == '留购金'" class="">
<li><span>期数:</span>{{ item.times_str }}</li>
<li><span>还款日期:</span>{{ item.recduedt_char }}</li>
<!--<li><span>留购金金额:</span>{{ item.recdueamt }}</li>-->
<li><span>剩余应还留购金:</span>{{ item.rec_rental_str }}</li>
<!--<li><span>收款类别:</span>{{ item.characterid_n }}</li>-->
</ul> </ul>
</li> </li>
</ul> </ul>
...@@ -24,6 +39,7 @@ ...@@ -24,6 +39,7 @@
oninvalid="setCustomValidity('请输入支付金额!');" oninvalid="setCustomValidity('请输入支付金额!');"
oninput="setCustomValidity('');" onfocus="this.placeholder=''" onblur="this.placeholder='请输入支付金额'"> oninput="setCustomValidity('');" onfocus="this.placeholder=''" onblur="this.placeholder='请输入支付金额'">
</div> </div>
<button class="button1" @click="download()">账单查询</button>
<button @click="pay">支付</button> <button @click="pay">支付</button>
</div> </div>
<!-- 二维码遮罩 --> <!-- 二维码遮罩 -->
...@@ -41,8 +57,8 @@ ...@@ -41,8 +57,8 @@
<div class="ermBottom"><span>支持微信/支付宝/银联支付</span></div> <div class="ermBottom"><span>支持微信/支付宝/银联支付</span></div>
<div class="ermImage"> <div class="ermImage">
<img src="../../../assets\image\wechart.png" alt=""> <img src="../../../assets\image\wechart.png" alt="">
<img src="../../../assets\image\wechart.png" alt=""> <img src="../../../assets\image\alipay.png" alt="">
<img src="../../../assets\image\wechart.png" alt=""> <img src="../../../assets\image\chinapay.png" alt="">
</div> </div>
</div> </div>
</div> </div>
...@@ -68,13 +84,14 @@ export default { ...@@ -68,13 +84,14 @@ export default {
counter: [10, 10, 1], // 前十次请求间隔,后十次请求间隔,间隔一/二 counter: [10, 10, 1], // 前十次请求间隔,后十次请求间隔,间隔一/二
timer: '', timer: '',
timer2: '', timer2: '',
firstTime: -1,
payTimes:[],
} }
}, },
created () { created () {
// 当数据拿到之后给checked初始值; // 当数据拿到之后给checked初始值;
var name = this.$route.query.contractno var name = this.$route.query.contractno
// console.log('传值', name) // console.log('传值', name)
// this.contractno = "L20RJ00313";
this.contractno = name this.contractno = name
this.getData() this.getData()
}, },
...@@ -99,6 +116,9 @@ export default { ...@@ -99,6 +116,9 @@ export default {
// console.log('给checked初始值'); // console.log('给checked初始值');
vm.checked[i] = false vm.checked[i] = false
vm.unchecked[i] = dataInfo.lists[i].select_flag === 'N' vm.unchecked[i] = dataInfo.lists[i].select_flag === 'N'
if(dataInfo.lists[i].select_flag !== 'N'&&vm.firstTime===-1){
vm.firstTime=dataInfo.lists[i].times
}
} }
vm.Lists = dataInfo.lists vm.Lists = dataInfo.lists
} else { } else {
...@@ -114,6 +134,40 @@ export default { ...@@ -114,6 +134,40 @@ export default {
pay () { pay () {
let vm = this let vm = this
let $input = document.getElementById('payamount') let $input = document.getElementById('payamount')
//判断是否跳期
let jumpFlag=true
vm.payTimes=[]
this.checked.forEach((item, index) => {
if (item) {
if(vm.Lists[index].times===vm.firstTime){
jumpFlag=false
}
if(vm.Lists[index].characterid_n!=='留购金') {
vm.payTimes.push(vm.Lists[index].times)
}
}
})
if(jumpFlag){
vm.hlsPopup.showLongCenter('此前有未支付金额,请确认')
return
}
if(vm.payTimes.length>1){
jumpFlag=false
let i=vm.payTimes[0]
for(let j=0;j<vm.payTimes.length;j++){
if(vm.payTimes[j]!==i){
jumpFlag=true
break
}
i++
}
if(jumpFlag){
vm.hlsPopup.showLongCenter('此前有未支付金额,请确认')
return
}
}
// 点击支付之后显示二维码页面遮罩 // 点击支付之后显示二维码页面遮罩
if ($input.value <= this.total && $input.value != 0) { if ($input.value <= this.total && $input.value != 0) {
// console.log($input.value); // console.log($input.value);
...@@ -126,6 +180,7 @@ export default { ...@@ -126,6 +180,7 @@ export default {
'contractno': this.contractno, 'contractno': this.contractno,
'amount': this.payamount, 'amount': this.payamount,
} }
vm.hlsPopup.showLoading('申请中!')
vm.$post(url, params).then(function (res) { vm.$post(url, params).then(function (res) {
if (res.result.return_status == 'S') { if (res.result.return_status == 'S') {
var dataInfo = res.result var dataInfo = res.result
...@@ -138,6 +193,7 @@ export default { ...@@ -138,6 +193,7 @@ export default {
vm.total = 0 vm.total = 0
vm.showRecamt() vm.showRecamt()
} else { } else {
vm.hlsPopup.hideLoading()
vm.hlsPopup.showLongCenter(res.result.return_message) vm.hlsPopup.showLongCenter(res.result.return_message)
} }
}) })
...@@ -165,6 +221,7 @@ export default { ...@@ -165,6 +221,7 @@ export default {
// console.log(res) // console.log(res)
document.getElementById('qrcode').innerHTML = '' document.getElementById('qrcode').innerHTML = ''
if (res.respCode == 'SUCCESS') { if (res.respCode == 'SUCCESS') {
vm.hlsPopup.hideLoading()
let dataInfo = res.qrCode let dataInfo = res.qrCode
let qrcode = new QRCode('qrcode', let qrcode = new QRCode('qrcode',
{ {
...@@ -178,6 +235,7 @@ export default { ...@@ -178,6 +235,7 @@ export default {
) )
// console.log(qrcode) // console.log(qrcode)
} else { } else {
vm.hlsPopup.hideLoading()
vm.hlsPopup.showLongCenter(res.respMsg) vm.hlsPopup.showLongCenter(res.respMsg)
} }
}).then(function (res) { }).then(function (res) {
...@@ -244,6 +302,7 @@ export default { ...@@ -244,6 +302,7 @@ export default {
clearInterval(vm.timer)// 判断订单已支付暂停定时器 clearInterval(vm.timer)// 判断订单已支付暂停定时器
if (res.tradeState == 'S') { if (res.tradeState == 'S') {
vm.hlsPopup.showLongCenter('支付完成') vm.hlsPopup.showLongCenter('支付完成')
vm.close()
} }
}; };
// 支付成功应该不需要前端主动关闭订单吧; // 支付成功应该不需要前端主动关闭订单吧;
...@@ -333,6 +392,11 @@ export default { ...@@ -333,6 +392,11 @@ export default {
} }
} }
}, },
download () {
// console.log('下载')
let contractno=this.contractno;
window.open(process.env.basePath+'https://lease.hitachics.com:8990/ReportServer?reportlet=/report/HCLC_PDR003.cpt&CONTRACTNO=' + contractno + '&format=PDF&extype=simple', '_self')
},
}, },
} }
</script> </script>
...@@ -340,12 +404,12 @@ export default { ...@@ -340,12 +404,12 @@ export default {
.items { .items {
margin-top: 10px; margin-top: 10px;
display: flex; display: flex;
height: 100px; height: 75px;
width: 100%; width: 100%;
justify-content: space-between; justify-content: space-between;
font-size: 12px; font-size: 12px;
//可选和不可选的项目样式可能要不一样 /*可选和不可选的项目样式可能要不一样*/
ul { ul {
margin-right: 3%; margin-right: 3%;
width: 87%; width: 87%;
...@@ -373,8 +437,7 @@ export default { ...@@ -373,8 +437,7 @@ export default {
background-color: #ffffff; background-color: #ffffff;
} }
//复选框样式 /*复选框样式*/
input[type="checkbox"] { input[type="checkbox"] {
cursor: pointer; cursor: pointer;
position: relative; position: relative;
...@@ -387,7 +450,7 @@ export default { ...@@ -387,7 +450,7 @@ export default {
visibility: hidden; visibility: hidden;
} }
//可选时选中和未选中两种状态 /*可选时选中和未选中两种状态*/
.check-box[type="checkbox"]:checked::after { .check-box[type="checkbox"]:checked::after {
height: 18px; height: 18px;
line-height: 15px; line-height: 15px;
...@@ -412,7 +475,7 @@ export default { ...@@ -412,7 +475,7 @@ export default {
border-radius: 50%; border-radius: 50%;
} }
//不可选的样式 /*不可选的样式*/
.uncheck-box[type="checkbox"]::after { .uncheck-box[type="checkbox"]::after {
position: absolute; position: absolute;
background-color: #d9d9d9; background-color: #d9d9d9;
...@@ -470,7 +533,7 @@ export default { ...@@ -470,7 +533,7 @@ export default {
width: 20%; width: 20%;
height: 25%; height: 25%;
//top: - 10 px; //top: - 10 px;
left: 50%; left: 42%;
transform: translateX(-50%); transform: translateX(-50%);
font-size: 16px; font-size: 16px;
color: #ffffff; color: #ffffff;
...@@ -478,6 +541,22 @@ export default { ...@@ -478,6 +541,22 @@ export default {
border: 1px solid rgb(0, 200, 0); border: 1px solid rgb(0, 200, 0);
background-color: rgb(0, 200, 0); background-color: rgb(0, 200, 0);
} }
.button1 {
position: relative;
/*margin-top: 3%;*/
left: 40%;
width: 20%;
height: 25%;
font-size: 16px;
color: #fff;
background-color: rgb(0, 200, 0);
border: 2px solid rgb(0, 200, 0);
border-radius: 5px;
padding-right: 1px;
padding-left: 1px;
}
} }
.ermPage { .ermPage {
...@@ -546,7 +625,7 @@ export default { ...@@ -546,7 +625,7 @@ export default {
.ermBottom { .ermBottom {
font-weight: 700; font-weight: 700;
margin-top: 40%; margin-top: 38%;
font-size: 16px; font-size: 16px;
text-align: center; text-align: center;
color: rgb(55, 69, 197); color: rgb(55, 69, 197);
......
...@@ -305,7 +305,7 @@ export default { ...@@ -305,7 +305,7 @@ export default {
{ {
'functionId': 77, 'functionId': 77,
'functionCode': '500', 'functionCode': '500',
'functionName': '招行聚合支付', 'functionName': '扫码支付',
'functionIcon': require('@/assets/home-manager/cmbpay_logo.png'), 'functionIcon': require('@/assets/home-manager/cmbpay_logo.png'),
'functionState': 'CmbPolyPay', 'functionState': 'CmbPolyPay',
'prodFlag': 'Y', 'prodFlag': 'Y',
......
...@@ -194,22 +194,21 @@ export default { ...@@ -194,22 +194,21 @@ export default {
// onConfirm() {} // onConfirm() {}
// }); // });
// } // }
// if (!this.subscribe) { if (!this.subscribe) {
// hlsPopup.showPopup({ hlsPopup.showPopup({
// title: '提示', title: '提示',
// content: '未关注公众号,请先关注后再进入!', content: '未关注公众号,请先关注后再进入!',
// onConfirm: function () { onConfirm: function () {
// }, },
// }) })
// } else { } else {
window.localStorage.authFlag == 'Y' || data.functionState == 'UserRegister' || data.functionState == 'ChinaUnionPay'? this.$router.push({ name: data.functionState }) : hlsPopup.showPopup({
window.localStorage.authFlag == 'Y' || data.functionState == 'UserRegister' || data.functionState == 'ChinaUnionPay' || data.functionState == 'CmbPolyPay' ? this.$router.push({ name: data.functionState }) : hlsPopup.showPopup({
title: '提示', title: '提示',
content: '当前用户未完成注册,请先注册!', content: '当前用户未完成注册,请先注册!',
onConfirm: function () { onConfirm: function () {
}, },
}) })
// } }
}, },
// moreRecommend () { // moreRecommend () {
// console.log('go moreRecommend') // console.log('go moreRecommend')
...@@ -225,8 +224,7 @@ export default { ...@@ -225,8 +224,7 @@ export default {
// vm.getWxUserInfo(window.localStorage.openId); // vm.getWxUserInfo(window.localStorage.openId);
vm.hlsHttp.post(url, param).then(function (res) { vm.hlsHttp.post(url, param).then(function (res) {
if (res.resultCode == '00') { if (res.resultCode == '00') {
//window.localStorage.openId = res.result window.localStorage.openId = res.result
window.localStorage.openId = 'oBdoRwAgUiwsQvNGYhBYks6JJLPE'
if (window.localStorage.openId) { if (window.localStorage.openId) {
vm.getWxUserInfo(window.localStorage.openId) vm.getWxUserInfo(window.localStorage.openId)
vm.getUserInfo(window.localStorage.openId) vm.getUserInfo(window.localStorage.openId)
...@@ -258,6 +256,8 @@ export default { ...@@ -258,6 +256,8 @@ export default {
if (res.rows.length > 0) { if (res.rows.length > 0) {
var results = res.rows[0] var results = res.rows[0]
vm.authFlag = window.localStorage.authFlag = results.authFlag vm.authFlag = window.localStorage.authFlag = results.authFlag
}else{
vm.authFlag = window.localStorage.authFlag = 'N'
} }
}) })
}, },
......
...@@ -3258,12 +3258,7 @@ fast-levenshtein@~2.0.4: ...@@ -3258,12 +3258,7 @@ fast-levenshtein@~2.0.4:
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
fastclick@^1.0.6: fastclick@^1.0.6, "fastclick@https://hel.hand-china.com/easyUI/fastclick.git":
version "1.0.6"
resolved "https://registry.yarnpkg.com/fastclick/-/fastclick-1.0.6.tgz#161625b27b1a5806405936bda9a2c1926d06be6a"
integrity sha1-FhYlsnsaWAZAWTa9qaLBkm0Gvmo=
"fastclick@https://hel.hand-china.com/easyUI/fastclick.git":
version "1.0.6" version "1.0.6"
resolved "https://hel.hand-china.com/easyUI/fastclick.git#8b4d3638e307b0c8bdb2ddae52598363701161e6" resolved "https://hel.hand-china.com/easyUI/fastclick.git#8b4d3638e307b0c8bdb2ddae52598363701161e6"
...@@ -6591,11 +6586,6 @@ qr.js@0.0.0: ...@@ -6591,11 +6586,6 @@ qr.js@0.0.0:
resolved "https://registry.yarnpkg.com/qr.js/-/qr.js-0.0.0.tgz#cace86386f59a0db8050fa90d9b6b0e88a1e364f" resolved "https://registry.yarnpkg.com/qr.js/-/qr.js-0.0.0.tgz#cace86386f59a0db8050fa90d9b6b0e88a1e364f"
integrity sha1-ys6GOG9ZoNuAUPqQ2baw6IoeNk8= integrity sha1-ys6GOG9ZoNuAUPqQ2baw6IoeNk8=
qrcodejs2@^0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/qrcodejs2/-/qrcodejs2-0.0.2.tgz#465afe5e39f19facecb932c11f7a186109146ae1"
integrity sha1-Rlr+Xjnxn6zsuTLBH3oYYQkUauE=
qs@6.7.0: qs@6.7.0:
version "6.7.0" version "6.7.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment