Commit 1b27ffe1 authored by linxin's avatar linxin

升级首付款支付以及款项支付,修复bug

parent 53972781
...@@ -107,6 +107,7 @@ export default { ...@@ -107,6 +107,7 @@ export default {
}, },
beforeRouteEnter (to, from, next) { beforeRouteEnter (to, from, next) {
next(vm => { next(vm => {
vm.show = false
vm.getRefund() vm.getRefund()
}) })
}, },
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
</item> </item>
<item> <item>
<div slot="name">合同金额</div> <div slot="name">合同金额</div>
<div slot="content">{{ detailInfo.total_price }}</div> <div slot="content">{{ detailInfo.total_price|currency }}</div>
</item> </item>
<item> <item>
<div slot="name">商务政策</div> <div slot="name">商务政策</div>
......
...@@ -27,7 +27,6 @@ ...@@ -27,7 +27,6 @@
</div> </div>
</div> </div>
</h-content> </h-content>
</h-view> </h-view>
</template> </template>
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
<p>本次还款</p> <p>本次还款</p>
</div> </div>
<div class="item-right"> <div class="item-right">
<p>{{ e.due_amount|currency }}</p> <p>{{ parseFloat(e.due_amount).toFixed(2)|currency }}</p>
<p>{{ e.received_amount|currency }}</p> <p>{{ e.received_amount|currency }}</p>
<input v-model="e.amount" type="text" placeholder="请输入还款金额" > <input v-model="e.amount" type="text" placeholder="请输入还款金额" >
</div> </div>
...@@ -102,7 +102,7 @@ export default { ...@@ -102,7 +102,7 @@ export default {
}, },
beforeRouteEnter (to, from, next) { beforeRouteEnter (to, from, next) {
next(vm => { next(vm => {
// vm.getDetail() vm.getDetail()
}) })
}, },
...@@ -312,7 +312,8 @@ export default { ...@@ -312,7 +312,8 @@ export default {
border: none; border: none;
border-bottom: 1px solid #1d3fff; border-bottom: 1px solid #1d3fff;
font-size: 13px; font-size: 13px;
text-align: center; text-align: right;
float: right;
} }
input::placeholder { input::placeholder {
font-family: PingFangSC-Regular; font-family: PingFangSC-Regular;
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<div class="title">当前应付</div> <div class="title">当前应付</div>
<div class="data"> <div class="data">
<span></span> <span></span>
{{ money |currency }} {{ moneyToFix |currency }}
</div> </div>
</div> </div>
</div> </div>
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
</div> </div>
<div class="pay-input"> <div class="pay-input">
<span>应还首付款</span> <span>应还首付款</span>
<input v-model="money" type="text" placeholder="请输入支付金额" > <input v-model="moneyToFix" type="text" placeholder="请输入支付金额" >
<div @click="createOrder"> <div @click="createOrder">
<img src="@/assets/payment/into.png" > <img src="@/assets/payment/into.png" >
</div> </div>
...@@ -73,7 +73,11 @@ export default { ...@@ -73,7 +73,11 @@ export default {
} }
}) })
}, },
computed: {}, computed: {
moneyToFix () {
return parseFloat(this.money).toFixed(2)
},
},
watch: {}, watch: {},
methods: { methods: {
getDownPayment () { getDownPayment () {
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
v-for="(item,index) in nongBank" v-for="(item,index) in nongBank"
:proportion="[7,1,1]" :proportion="[7,1,1]"
:key="item.bank_account_num" :key="item.bank_account_num"
@click.native="isSelect(`nong${index}`)" @click.native="isSelect(`nong${index}`);ischeck(item)"
> >
<div slot="name" style="flex=3"> <div slot="name" style="flex=3">
<img :src="selectImg(item)" alt class="icon" > <img :src="selectImg(item)" alt class="icon" >
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<img v-show="select !== `nong${index}`" src="@/assets/payment/unselect.png" alt > <img v-show="select !== `nong${index}`" src="@/assets/payment/unselect.png" alt >
</section> </section>
</item> </item>
<item :proportion="[7,1,1]" @click.native="isSelect('one')"> <item :proportion="[7,1,1]" @click.native="isSelect('one');ischeck('one')">
<div slot="name"> <div slot="name">
<img src="@/assets/payment/alipay.png" alt class="icon1" > 支付宝 <img src="@/assets/payment/alipay.png" alt class="icon1" > 支付宝
</div> </div>
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
<img v-show="select !== 'one'" src="@/assets/payment/unselect.png" alt > <img v-show="select !== 'one'" src="@/assets/payment/unselect.png" alt >
</section> </section>
</item> </item>
<item :proportion="[7,1,1]" @click.native="isSelect('two')"> <item :proportion="[7,1,1]" @click.native="isSelect('two');ischeck('two')">
<div slot="name"> <div slot="name">
<img src="@/assets/payment/wx.png" alt class="icon2" > 微信 <img src="@/assets/payment/wx.png" alt class="icon2" > 微信
</div> </div>
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
v-for="(item,index) in newList" v-for="(item,index) in newList"
:proportion="[7,1,1]" :proportion="[7,1,1]"
:key="index" :key="index"
@click.native="isSelect(`three${index}`)" @click.native="isSelect(`three${index}`);ischeck(item)"
> >
<div slot="name" style="flex=3"> <div slot="name" style="flex=3">
<img :src="selectImg(item)" alt class="icon" > <img :src="selectImg(item)" alt class="icon" >
...@@ -77,79 +77,86 @@ ...@@ -77,79 +77,86 @@
</item> </item>
</list-item> </list-item>
</div> </div>
</div></transition> </div>
</transition>
<transition name="trans"> <transition name="trans">
<div v-show="confirm" class="modal-show-bank"> <div v-show="confirm" class="modal-show-confirm">
<div class="down"> <div class="down">
<div class="top"> <div class="top">
<img src="@/assets/payment/back.png" @click="show=false" > <img src="@/assets/payment/back.png" @click="confirm=false" >
<span>确认付款</span> <span>确认付款</span>
</div> </div>
<div class="info"> <div class="info">
<div class="info-item"> <div class="info-item">
<span>还款金额</span> <span>还款金额</span>
<span>¥50600.00</span> <span>¥{{ money |currency }}</span>
</div> </div>
<div class="interest"> <div class="interest">
<span>本次交易收取0.03%服务费</span> <span>本次交易收取{{ rate }}%服务费</span>
</div> </div>
<div class="info-item"> <div class="info-item">
<span>服务费</span> <span>服务费</span>
<span>+¥15.00</span> <span>{{ serviceCharge |currency }}</span>
</div>
<div class="info-item">
<span>合同编号</span>
<span>EF12345678</span>
</div> </div>
<div class="info-item" @click="show=true"> <div class="info-item" @click="show=true">
<span>付款方式</span> <span>付款方式</span>
<span v-if="flag"><img src="@/assets/payment/ly.png"><span>农业银行</span><img class="arrow" src="@/assets/payment/go.png"></span> <span>
<span v-if="!flag"><img src="@/assets/payment/alipay.png"><span>支付宝</span><img class="arrow" src="@/assets/payment/go.png"></span> <img :src="checkType.img" >
<span>{{ checkType.bank_full_name }}</span>
<span v-if="sectctNong">({{ selectLast(checkType) }})</span>
<img class="arrow" src="@/assets/payment/go.png" >
</span>
</div> </div>
</div> </div>
<bottom-tab>
<tab-button class="foot" @click.native="pay">立即支付</tab-button>
</bottom-tab>
</div> </div>
</div></transition> </div>
</transition>
<h-header :proportion="[5,1,1]" class="bar-custom"> <h-header :proportion="[5,1,1]" class="bar-custom">
<div slot="left" class="h-header-btn"> <div slot="left" class="h-header-btn">
<img src="@/assets/userBind/arrow.png" @click="$routeGo()"> <img src="@/assets/userBind/arrow.png" @click="$routeGo()" >
<span>支付中心</span> <span>支付中心</span>
</div> </div>
</h-header> </h-header>
<h-content class="entry-content"> <h-content class="entry-content">
<div class="amount"> <div class="amount">
<p>{{ userName }}</p> <p>{{ userName }}</p>
<div>{{ money |currency }}</div> <div>{{ sumMoney |currency }}</div>
</div> </div>
<div class="info"> <div class="info">
<div class="info-item"> <div class="info-item">
<span>还款金额</span> <span>还款金额</span>
<span>¥50600.00</span> <span>¥{{ parseFloat(money).toFixed(2) |currency }}</span>
</div> </div>
<div class="interest"> <div class="interest">
<span>本次交易收取0.03%服务费</span> <span>本次交易收取{{ rate }}%服务费</span>
</div> </div>
<div class="info-item"> <div class="info-item">
<span>服务费</span> <span>服务费</span>
<span>+¥15.00</span> <span>{{ serviceCharge }}</span>
</div>
<div class="info-item">
<span>合同编号</span>
<span>EF12345678</span>
</div> </div>
<div class="info-item" @click="show=true"> <div class="info-item" @click="show=true">
<span>付款方式</span> <span>付款方式</span>
<span v-if="flag"><img src="@/assets/payment/ly.png"><span>农业银行</span><img class="arrow" src="@/assets/payment/go.png"></span> <span>
<span v-if="!flag"><img src="@/assets/payment/alipay.png"><span>支付宝</span><img class="arrow" src="@/assets/payment/go.png"></span> <img :src="checkType.img" >
<span>{{ checkType.bank_full_name }}</span>
<span v-if="sectctNong">({{ selectLast(checkType) }})</span>
<img class="arrow" src="@/assets/payment/go.png" >
</span>
</div> </div>
</div> </div>
</h-content> </h-content>
<bottom-tab> <bottom-tab>
<tab-button class="foot" @click.native="pay">确认支付</tab-button> <tab-button class="foot" @click.native="affirm">确认支付</tab-button>
</bottom-tab> </bottom-tab>
</h-view> </h-view>
</template> </template>
<script> <script>
import zfb from '@/assets/payment/alipay.png'
import wx from '@/assets/payment/wx.png'
import js from '@/assets/payment/js.png' import js from '@/assets/payment/js.png'
import ny from '@/assets/payment/ly.png' import ny from '@/assets/payment/ly.png'
import pf from '@/assets/payment/pf.png' import pf from '@/assets/payment/pf.png'
...@@ -171,9 +178,15 @@ export default { ...@@ -171,9 +178,15 @@ export default {
data () { data () {
return { return {
money: '', money: '',
rate: 0.03,
select: 'three0', select: 'three0',
name: '', name: '',
checkType: {}, sectctNong: false,
checkType: {
img: '',
bank_full_name: '',
bank_account_num: '',
},
confirm: false, confirm: false,
show: false, show: false,
downNum: false, downNum: false,
...@@ -185,6 +198,14 @@ export default { ...@@ -185,6 +198,14 @@ export default {
} }
}, },
computed: { computed: {
serviceCharge () {
return (this.money * (this.rate / 100)).toFixed(2)
},
sumMoney () {
return (parseFloat(this.serviceCharge) + parseFloat(this.money)).toFixed(
2
)
},
newList () { newList () {
let vm = this let vm = this
vm.nongBank = [] vm.nongBank = []
...@@ -199,19 +220,24 @@ export default { ...@@ -199,19 +220,24 @@ export default {
}) })
if (vm.flag) { if (vm.flag) {
vm.select = 'nong0' vm.select = 'nong0'
vm.checkType.bank_full_name = '农业银行'
vm.checkType.img = ny
vm.checkType.bank_account_num = this.nongBank[0].bank_account_num
vm.sectctNong = true
} else { } else {
vm.select = 'one' vm.select = 'one'
} vm.checkType.bank_full_name = '支付宝'
if (vm.nongBank.length !== 0) { vm.checkType.img = zfb
vm.checkType = {...vm.nongBank[0]} vm.sectctNong = false
} }
return notNong return notNong
}, },
}, },
watch: {},
beforeRouteEnter (to, from, next) { beforeRouteEnter (to, from, next) {
next(vm => { next(vm => {
vm.confirm = false
vm.show = false
vm.downNum = false
vm.name = from.name vm.name = from.name
vm.getType() vm.getType()
vm.nongBank = [] vm.nongBank = []
...@@ -263,6 +289,23 @@ export default { ...@@ -263,6 +289,23 @@ export default {
isSelect (way) { isSelect (way) {
this.select = way this.select = way
}, },
ischeck (way) {
if (way === 'one') {
this.checkType.bank_full_name = '支付宝'
this.checkType.img = zfb
this.sectctNong = false
} else if (way === 'two') {
this.checkType.bank_full_name = '微信'
this.checkType.img = wx
this.sectctNong = false
} else {
this.checkType.bank_full_name = way.bank_full_name
this.checkType.bank_account_num = way.bank_account_num
this.checkType.img = this.selectImg(way)
this.sectctNong = true
}
this.show = false
},
pay () { pay () {
let vm = this let vm = this
hlsPopup.showLoading('请稍候') hlsPopup.showLoading('请稍候')
...@@ -275,6 +318,9 @@ export default { ...@@ -275,6 +318,9 @@ export default {
} }
}, 2000) }, 2000)
}, },
affirm () {
this.confirm = true
},
changePage () { changePage () {
this.$router.push({ this.$router.push({
name: 'Success', name: 'Success',
...@@ -314,7 +360,7 @@ export default { ...@@ -314,7 +360,7 @@ export default {
.trans-leave-active { .trans-leave-active {
opacity: 0; opacity: 0;
} }
.modal-show-bank { .modal-show-confirm {
width: 100%; width: 100%;
height: 100%; height: 100%;
position: absolute; position: absolute;
...@@ -324,80 +370,123 @@ export default { ...@@ -324,80 +370,123 @@ export default {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
.down { .down {
height:466px; height: 466px;
width: 100%; width: 100%;
position: absolute; position: absolute;
bottom: 0px; bottom: 0px;
background-color: #fff;
border-radius: 12px 12px 0 0;
overflow: scroll;
.top{
position: fixed;
left:24px;
width:330px;
height:54px;
display: flex;
z-index: 999;
align-items: center;
background-color: #fff; background-color: #fff;
img{ border-radius: 12px 12px 0 0;
width:20px; overflow: scroll;
.top {
position: fixed;
left: 24px;
width: 330px;
height: 54px;
display: flex;
z-index: 999;
align-items: center;
background-color: #fff;
img {
width: 20px;
}
span {
margin-left: 38%;
font-family: PingFangSC-Semibold;
font-size: 16px;
color: #656464;
letter-spacing: 0.49px;
text-align: center;
}
} }
span{ .info {
margin-left:38%; margin-top: 60px;
font-family: PingFangSC-Semibold;
font-size: 16px;
color: #656464;
letter-spacing: 0.49px;
text-align: center;
} }
} }
.pay-way { }
width:350px; .modal-show-bank {
margin:0 auto; width: 100%;
margin-top:54px; height: 100%;
background-color: #fff; position: absolute;
.hls-item { display: flex;
padding-left: 12px; z-index: 910;
.add-name { background-color: rgba(56, 63, 69, 0.3);
flex: 3; justify-content: center;
line-height: 56px; align-items: center;
font-family: PingFangSC-Regular; .down {
font-size: 14px; height: 466px;
width: 100%;
position: absolute;
bottom: 0px;
background-color: #fff;
border-radius: 12px 12px 0 0;
overflow: scroll;
.top {
position: fixed;
left: 24px;
width: 330px;
height: 54px;
display: flex;
z-index: 999;
align-items: center;
background-color: #fff;
img {
width: 20px;
}
span {
margin-left: 38%;
font-family: PingFangSC-Semibold;
font-size: 16px;
color: #656464; color: #656464;
letter-spacing: 0.49px;
text-align: center;
}
}
.pay-way {
width: 350px;
margin: 0 auto;
margin-top: 54px;
background-color: #fff;
.hls-item {
padding-left: 12px;
.add-name {
flex: 3;
line-height: 56px;
font-family: PingFangSC-Regular;
font-size: 14px;
color: #656464;
.icon1 { .icon1 {
width: 34px; width: 34px;
height: 34px; height: 34px;
display: block; display: block;
float: left; float: left;
margin-top: 10px; margin-top: 10px;
margin-right: 5px; margin-right: 5px;
}
.icon2 {
width: 32px;
display: block;
float: left;
margin-top: 12px;
margin-right: 8px;
}
.icon {
width: 30px;
display: block;
float: left;
position: relative;
margin: 12px 8px 0 3px;
}
} }
.icon2 {
width: 32px;
display: block;
float: left;
margin-top: 12px;
margin-right: 8px;
}
.icon {
width: 30px;
display: block;
float: left;
position: relative;
margin: 12px 8px 0 3px;
}
}
.add-content { .add-content {
img { img {
width: 21px; width: 21px;
}
} }
} }
} }
} }
}
} }
.info { .info {
width: 100%; width: 100%;
...@@ -411,12 +500,12 @@ text-align: center; ...@@ -411,12 +500,12 @@ text-align: center;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
.arrow{ .arrow {
margin-right:-10px; margin-right: -10px;
} }
img{ img {
width:17px; width: 17px;
margin-right:10px; margin-right: 10px;
} }
span:first-child { span:first-child {
font-family: PingFangSC-Regular; font-family: PingFangSC-Regular;
...@@ -435,31 +524,31 @@ text-align: center; ...@@ -435,31 +524,31 @@ text-align: center;
align-items: center; align-items: center;
} }
} }
.info-item:nth-of-type(1)::after{ .info-item:nth-of-type(1)::after {
content:""; content: "";
display:block; display: block;
position: absolute; position: absolute;
right:20px; right: 20px;
top:25px; top: 25px;
border: 10px solid #fff; border: 10px solid #fff;
border-left-color:transparent; border-left-color: transparent;
border-right-color:transparent; border-right-color: transparent;
border-top-color:transparent; border-top-color: transparent;
border-bottom-color:rgba(75,74,75,0.10); border-bottom-color: rgba(75, 74, 75, 0.1);
} }
.info-item:nth-of-type(1){ .info-item:nth-of-type(1) {
border-top: 1px solid #d9dbdf; border-top: 1px solid #d9dbdf;
} }
.interest{ .interest {
width:100%; width: 100%;
height:37px; height: 37px;
line-height: 37px; line-height: 37px;
font-family: PingFangSC-Medium; font-family: PingFangSC-Medium;
font-size: 11px; font-size: 11px;
color: #4B4A4B; color: #4b4a4b;
letter-spacing: 0; letter-spacing: 0;
text-indent:215px; text-indent: 215px;
background-color:rgba(75,74,75,0.10); background-color: rgba(75, 74, 75, 0.1);
} }
} }
.modal-show { .modal-show {
...@@ -467,7 +556,7 @@ text-indent:215px; ...@@ -467,7 +556,7 @@ text-indent:215px;
height: 100%; height: 100%;
position: absolute; position: absolute;
display: flex; display: flex;
z-index: 900; z-index: 999;
background-color: rgba(56, 63, 69, 0.3); background-color: rgba(56, 63, 69, 0.3);
justify-content: center; justify-content: center;
align-items: center; align-items: center;
...@@ -541,7 +630,6 @@ text-indent:215px; ...@@ -541,7 +630,6 @@ text-indent:215px;
margin-top: 10px; margin-top: 10px;
} }
} }
} }
.foot { .foot {
background-color: @headerColor; background-color: @headerColor;
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
<img src="@/assets/payment/first-pay.png" >逾期利息 <img src="@/assets/payment/first-pay.png" >逾期利息
</div> </div>
<div class="pay-input"> <div class="pay-input">
<span>应还利息</span> <span>逾期利息</span>
<input v-model="liquidated_damages" readonly type="text" placeholder="请输入支付金额" > <input v-model="liquidated_damages" readonly type="text" placeholder="请输入支付金额" >
</div> </div>
</div> </div>
...@@ -86,7 +86,7 @@ export default { ...@@ -86,7 +86,7 @@ export default {
}, },
computed: {}, computed: {},
watch: { watch: {
'pay_rent': { 'liquidated_damages': {
handler () { handler () {
this.money = parseFloat(parseFloat(this.pay_rent) + parseFloat(this.liquidated_damages)) this.money = parseFloat(parseFloat(this.pay_rent) + parseFloat(this.liquidated_damages))
}, },
......
...@@ -9,6 +9,112 @@ ...@@ -9,6 +9,112 @@
</div> </div>
</div> </div>
</transition> </transition>
<transition name="trans">
<div v-show="show" class="modal-show-bank">
<transition name="show">
<div class="down">
<div class="top">
<img src="@/assets/payment/back.png" @click="show=false" >
<span>支付方式</span>
</div>
<list-item :item-height="56" class="pay-way">
<item
v-for="(item,index) in nongBank"
:proportion="[7,1,1]"
:key="item.bank_account_num"
@click.native="isSelect(`nong${index}`);ischeck(item)"
>
<div slot="name" style="flex=3">
<img :src="selectImg(item)" alt class="icon" >
{{ item.bank_full_name }}({{ selectLast(item) }})
<img
v-show="item.recommand"
class="push"
src="@/assets/payment/push.png"
>
</div>
<section slot="content">
<img v-show="select === `nong${index}`" src="@/assets/payment/select.png" alt >
<img v-show="select !== `nong${index}`" src="@/assets/payment/unselect.png" alt >
</section>
</item>
<item :proportion="[7,1,1]" @click.native="isSelect('one');ischeck('one')">
<div slot="name">
<img src="@/assets/payment/alipay.png" alt class="icon1" > 支付宝
</div>
<section slot="content">
<img v-show="select === 'one'" src="@/assets/payment/select.png" alt >
<img v-show="select !== 'one'" src="@/assets/payment/unselect.png" alt >
</section>
</item>
<item :proportion="[7,1,1]" @click.native="isSelect('two');ischeck('two')">
<div slot="name">
<img src="@/assets/payment/wx.png" alt class="icon2" > 微信
</div>
<section slot="content">
<img v-show="select === 'two'" src="@/assets/payment/select.png" alt >
<img v-show="select !== 'two'" src="@/assets/payment/unselect.png" alt >
</section>
</item>
<item
v-for="(item,index) in newList"
:proportion="[7,1,1]"
:key="index"
@click.native="isSelect(`three${index}`);ischeck(item)"
>
<div slot="name" style="flex=3">
<img :src="selectImg(item)" alt class="icon" >
{{ item.bank_full_name }}({{ selectLast(item) }})
<img
v-show="item.recommand"
class="push"
src="@/assets/payment/push.png"
>
</div>
<section slot="content">
<img v-show="select === `three${index}`" src="@/assets/payment/select.png" alt >
<img v-show="select !== `three${index}`" src="@/assets/payment/unselect.png" alt >
</section>
</item>
</list-item>
</div>
</transition></div>
</transition>
<transition name="trans">
<div v-show="confirm" class="modal-show-confirm">
<div class="down">
<div class="top">
<img src="@/assets/payment/back.png" @click="confirm=false" >
<span>确认付款</span>
</div>
<div class="info">
<div class="info-item">
<span>还款金额</span>
<span>¥{{ money |currency }}</span>
</div>
<div class="interest">
<span>本次交易收取{{ rate }}%服务费</span>
</div>
<div class="info-item">
<span>服务费</span>
<span>{{ serviceCharge |currency }}</span>
</div>
<div class="info-item" @click="show=true">
<span>付款方式</span>
<span>
<img :src="checkType.img" >
<span>{{ checkType.bank_full_name }}</span>
<span v-if="sectctNong">({{ selectLast(checkType) }})</span>
<img class="arrow" src="@/assets/payment/go.png" >
</span>
</div>
</div>
<bottom-tab>
<tab-button class="footer" @click.native="pay">立即支付</tab-button>
</bottom-tab>
</div>
</div>
</transition>
<h-header :proportion="[5,1,1]" class="bar-custom"> <h-header :proportion="[5,1,1]" class="bar-custom">
<div slot="left" class="h-header-btn"> <div slot="left" class="h-header-btn">
<img src="@/assets/userBind/arrow.png" @click="changePage" > <img src="@/assets/userBind/arrow.png" @click="changePage" >
...@@ -18,70 +124,41 @@ ...@@ -18,70 +124,41 @@
<h-content class="entry-content"> <h-content class="entry-content">
<div class="amount"> <div class="amount">
<p>交易金额</p> <p>{{ userName }}</p>
<div>{{ money |currency }}</div> <div>{{ sumMoney |currency }}</div>
</div>
<div class="info">
<div class="info-item">
<span>还款金额</span>
<span>¥{{ parseFloat(money).toFixed(2) |currency }}</span>
</div>
<div class="interest">
<span>本次交易收取{{ rate }}%服务费</span>
</div>
<div class="info-item">
<span>服务费</span>
<span>{{ serviceCharge }}</span>
</div>
<div class="info-item" @click="show=true">
<span>付款方式</span>
<span>
<img :src="checkType.img" >
<span>{{ checkType.bank_full_name }}</span>
<span v-if="sectctNong">({{ selectLast(checkType) }})</span>
<img class="arrow" src="@/assets/payment/go.png" >
</span>
</div>
</div> </div>
<list-item :item-height="56" class="pay-way">
<item
v-for="(item,index) in nongBank"
:proportion="[7,1,1]"
:key="item.bank_account_num"
@click.native="isSelect(`nong${index}`)"
>
<div slot="name" style="flex=3">
<img :src="selectImg(item)" alt class="icon" >
{{ item.bank_full_name }}({{ selectLast(item) }})
<img v-show="item.recommand" class="push" src="@/assets/payment/push.png" >
</div>
<section slot="content">
<img v-show="select === `nong${index}`" src="@/assets/payment/select.png" alt >
<img v-show="select !== `nong${index}`" src="@/assets/payment/unselect.png" alt >
</section>
</item>
<item :proportion="[7,1,1]" @click.native="isSelect('one')">
<div slot="name">
<img src="@/assets/payment/alipay.png" alt class="icon1" > 支付宝
</div>
<section slot="content">
<img v-show="select === 'one'" src="@/assets/payment/select.png" alt >
<img v-show="select !== 'one'" src="@/assets/payment/unselect.png" alt >
</section>
</item>
<item :proportion="[7,1,1]" @click.native="isSelect('two')">
<div slot="name">
<img src="@/assets/payment/wx.png" alt class="icon2" > 微信
</div>
<section slot="content">
<img v-show="select === 'two'" src="@/assets/payment/select.png" alt >
<img v-show="select !== 'two'" src="@/assets/payment/unselect.png" alt >
</section>
</item>
<item
v-for="(item,index) in newList"
:proportion="[7,1,1]"
:key="index"
@click.native="isSelect(`three${index}`)"
>
<div slot="name" style="flex=3">
<img :src="selectImg(item)" alt class="icon" >
{{ item.bank_full_name }}({{ selectLast(item) }})
<img v-show="item.recommand" class="push" src="@/assets/payment/push.png" >
</div>
<section slot="content">
<img v-show="select === `three${index}`" src="@/assets/payment/select.png" alt >
<img v-show="select !== `three${index}`" src="@/assets/payment/unselect.png" alt >
</section>
</item>
</list-item>
</h-content> </h-content>
<bottom-tab> <bottom-tab>
<tab-button class="footer" @click.native="pay">立即付款</tab-button> <tab-button class="footer" @click.native="affirm">确认支付</tab-button>
</bottom-tab> </bottom-tab>
</h-view> </h-view>
</template> </template>
<script> <script>
import zfb from '@/assets/payment/alipay.png'
import wx from '@/assets/payment/wx.png'
import js from '@/assets/payment/js.png' import js from '@/assets/payment/js.png'
import ny from '@/assets/payment/ly.png' import ny from '@/assets/payment/ly.png'
import pf from '@/assets/payment/pf.png' import pf from '@/assets/payment/pf.png'
...@@ -103,13 +180,32 @@ export default { ...@@ -103,13 +180,32 @@ export default {
return { return {
money: '', money: '',
select: 'one', select: 'one',
rate: 0.03,
name: '',
sectctNong: false,
checkType: {
img: '',
bank_full_name: '',
bank_account_num: '',
},
confirm: false,
show: false,
downNum: false, downNum: false,
userName: window.sessionStorage.getItem('bp_name'),
nongBank: [], // 存农行卡 nongBank: [], // 存农行卡
flag: false, // 用于判断是否有农业银行卡 flag: false, // 用于判断是否有农业银行卡
lists: [], lists: [],
} }
}, },
computed: { computed: {
serviceCharge () {
return (this.money * (this.rate / 100)).toFixed(2)
},
sumMoney () {
return (parseFloat(this.serviceCharge) + parseFloat(this.money)).toFixed(
2
)
},
newList () { newList () {
let vm = this let vm = this
vm.nongBank = [] vm.nongBank = []
...@@ -120,12 +216,19 @@ export default { ...@@ -120,12 +216,19 @@ export default {
} }
}) })
let notNong = vm.lists.filter(i => { let notNong = vm.lists.filter(i => {
return (i.bank_full_name.indexOf('农业') === -1) return i.bank_full_name.indexOf('农业') === -1
}) })
if (vm.flag) { if (vm.flag) {
vm.select = 'nong0' vm.select = 'nong0'
vm.checkType.bank_full_name = '农业银行'
vm.checkType.img = ny
vm.checkType.bank_account_num = this.nongBank[0].bank_account_num
vm.sectctNong = true
} else { } else {
vm.select = 'one' vm.select = 'one'
vm.checkType.bank_full_name = '支付宝'
vm.checkType.img = zfb
vm.sectctNong = false
} }
return notNong return notNong
}, },
...@@ -133,6 +236,9 @@ export default { ...@@ -133,6 +236,9 @@ export default {
watch: {}, watch: {},
beforeRouteEnter (to, from, next) { beforeRouteEnter (to, from, next) {
next(vm => { next(vm => {
vm.confirm = false
vm.show = false
vm.downNum = false
if (from.name === 'NewList') { if (from.name === 'NewList') {
vm.money = vm.$route.params.money vm.money = vm.$route.params.money
} else if (from.name === 'PaymentContractRecord') { } else if (from.name === 'PaymentContractRecord') {
...@@ -143,6 +249,9 @@ export default { ...@@ -143,6 +249,9 @@ export default {
}) })
}, },
methods: { methods: {
affirm () {
this.confirm = true
},
pay () { pay () {
let vm = this let vm = this
hlsPopup.showLoading('请稍候') hlsPopup.showLoading('请稍候')
...@@ -155,6 +264,23 @@ export default { ...@@ -155,6 +264,23 @@ export default {
} }
}, 2000) }, 2000)
}, },
ischeck (way) {
if (way === 'one') {
this.checkType.bank_full_name = '支付宝'
this.checkType.img = zfb
this.sectctNong = false
} else if (way === 'two') {
this.checkType.bank_full_name = '微信'
this.checkType.img = wx
this.sectctNong = false
} else {
this.checkType.bank_full_name = way.bank_full_name
this.checkType.bank_account_num = way.bank_account_num
this.checkType.img = this.selectImg(way)
this.sectctNong = true
}
this.show = false
},
selectLast (item) { selectLast (item) {
let num = item.bank_account_num let num = item.bank_account_num
return num.substring(num.length - 4) return num.substring(num.length - 4)
...@@ -233,6 +359,205 @@ export default { ...@@ -233,6 +359,205 @@ export default {
</script> </script>
<style lang='less' > <style lang='less' >
#payment-pay-entry { #payment-pay-entry {
.trans-enter-active,
.trans-leave-active {
transition: opacity 0.5s;
}
.trans-enter,
.trans-leave-active {
opacity: 0;
}
.modal-show-confirm {
width: 100%;
height: 100%;
position: absolute;
display: flex;
z-index: 900;
background-color: rgba(56, 63, 69, 0.3);
justify-content: center;
align-items: center;
.down {
height: 466px;
width: 100%;
position: absolute;
bottom: 0px;
background-color: #fff;
border-radius: 12px 12px 0 0;
overflow: scroll;
.top {
position: fixed;
left: 24px;
width: 330px;
height: 54px;
display: flex;
z-index: 999;
align-items: center;
background-color: #fff;
img {
width: 20px;
}
span {
margin-left: 38%;
font-family: PingFangSC-Semibold;
font-size: 16px;
color: #656464;
letter-spacing: 0.49px;
text-align: center;
}
}
.info {
margin-top: 60px;
}
}
}
.modal-show-bank {
width: 100%;
height: 100%;
position: absolute;
display: flex;
z-index: 910;
background-color: rgba(56, 63, 69, 0.3);
justify-content: center;
align-items: center;
.down {
height: 466px;
width: 100%;
position: absolute;
bottom: 0px;
background-color: #fff;
border-radius: 12px 12px 0 0;
overflow: scroll;
.top {
position: fixed;
left: 24px;
width: 330px;
height: 54px;
display: flex;
z-index: 999;
align-items: center;
background-color: #fff;
img {
width: 20px;
}
span {
margin-left: 38%;
font-family: PingFangSC-Semibold;
font-size: 16px;
color: #656464;
letter-spacing: 0.49px;
text-align: center;
}
}
.pay-way {
width: 350px;
margin: 0 auto;
margin-top: 54px;
background-color: #fff;
.hls-item {
padding-left: 12px;
.add-name {
flex: 3;
line-height: 56px;
font-family: PingFangSC-Regular;
font-size: 14px;
color: #656464;
.icon1 {
width: 34px;
height: 34px;
display: block;
float: left;
margin-top: 10px;
margin-right: 5px;
}
.icon2 {
width: 32px;
display: block;
float: left;
margin-top: 12px;
margin-right: 8px;
}
.icon {
width: 30px;
display: block;
float: left;
position: relative;
margin: 12px 8px 0 3px;
}
}
.add-content {
img {
width: 21px;
}
}
}
}
}
}
.info {
width: 100%;
height: 226px;
background-color: #fff;
.info-item {
height: 46px;
width: 335px;
margin: 0 auto;
position: relative;
display: flex;
justify-content: space-between;
align-items: center;
.arrow {
margin-right: -10px;
}
img {
width: 17px;
margin-right: 10px;
}
span:first-child {
font-family: PingFangSC-Regular;
font-size: 14px;
color: rgba(56, 63, 69, 0.6);
letter-spacing: 0;
line-height: 18px;
}
span:last-child {
font-family: Verdana;
font-size: 14px;
color: #383f45;
letter-spacing: 0;
line-height: 18px;
display: flex;
align-items: center;
}
}
.info-item:nth-of-type(1)::after {
content: "";
display: block;
position: absolute;
right: 20px;
top: 25px;
border: 10px solid #fff;
border-left-color: transparent;
border-right-color: transparent;
border-top-color: transparent;
border-bottom-color: rgba(75, 74, 75, 0.1);
}
.info-item:nth-of-type(1) {
border-top: 1px solid #d9dbdf;
}
.interest {
width: 100%;
height: 37px;
line-height: 37px;
font-family: PingFangSC-Medium;
font-size: 11px;
color: #4b4a4b;
letter-spacing: 0;
text-indent: 215px;
background-color: rgba(75, 74, 75, 0.1);
}
}
.icon { .icon {
width: 30px; width: 30px;
display: block; display: block;
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
</div> </div>
<div class="right"> <div class="right">
<div class="right-top"> <div class="right-top">
<span>进件</span> <span>合同</span>
<span>{{ item.project_number }}</span> <span>{{ item.project_number }}</span>
</div> </div>
<div class="right-bottom"> <div class="right-bottom">
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<span>{{ item.bp_name }}</span> <span>{{ item.bp_name }}</span>
</li> </li>
<li> <li>
已还租金 产品线
<span>{{ item.division_n }}</span> <span>{{ item.division_n }}</span>
</li> </li>
<li> <li>
......
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