197 lines
4.4 KiB
Vue
197 lines
4.4 KiB
Vue
<template>
|
||
<view class="app">
|
||
<view class="price-box">
|
||
<text>{{isPayment ? '已' : ''}}缴纳{{title}}</text>
|
||
<text class="blod font42" style="color: #51c609;margin: 20rpx 0;">¥ {{deposit}}</text>
|
||
<text class="color-b9 font26" v-if="isPayment">时间:{{payTime}}</text>
|
||
</view>
|
||
|
||
<view class="pay-type-list" v-if="!isPayment">
|
||
<view class="type-item" @click="toPayHandler('wxpay')">
|
||
<text class="icon iconfont" style="color: #1fb922;"></text>
|
||
<view class="con">
|
||
<text class="tit">微信</text>
|
||
<text>微信支付</text>
|
||
</view>
|
||
</view>
|
||
<view class="type-item" @click="toPayHandler('alipay')">
|
||
<text class="icon iconfont" style="color: #1aa1e6; font-size: 60rpx;"></text>
|
||
<view class="con">
|
||
<text class="tit">支付宝</text>
|
||
<text>支付宝支付</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="register-section" @click="jumpTo">《{{agreementTitle}}》</view>
|
||
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import url from '@/common/http/url.js';
|
||
export default {
|
||
data () {
|
||
return {
|
||
isPayment: false,
|
||
title: "",
|
||
deposit: '0.00', // 押金金额
|
||
noteceId: "", // 协议公告ID
|
||
agreementTitle: "" ,// 协议标题
|
||
payTime:""
|
||
}
|
||
},
|
||
onLoad(opt) {
|
||
if (opt.title) {
|
||
this.title = opt.title
|
||
uni.setNavigationBarTitle({
|
||
title: opt.title
|
||
})
|
||
}
|
||
this.getDepositStatus()
|
||
this.getInfo()
|
||
},
|
||
methods: {
|
||
getDepositStatus(){
|
||
this.$http("GET", url.distributor.distributorDeposit).then(res => {
|
||
if (res.data && res.data.status){
|
||
this.isPayment = res.data
|
||
this.payTime = res.data.payTime
|
||
}
|
||
})
|
||
},
|
||
getInfo(){
|
||
this.$http("GET", url.common.distributorDepositConfig).then(res => {
|
||
let children = res.data.children
|
||
children.map(v=>{
|
||
if (v.keyCode === "distributor_deposit_amount") {
|
||
this.deposit = v.keyValue
|
||
}
|
||
if (v.keyCode === "distributor_deposit_agreement") {
|
||
this.noteceId = v.keyValue
|
||
}
|
||
})
|
||
this.getAgreementTitle()
|
||
})
|
||
},
|
||
getAgreementTitle(){
|
||
this.$http("GET", url.cms.getNoticeDetailById, {id: this.noteceId}).then(res =>{
|
||
this.agreementTitle = res.data.titleName
|
||
})
|
||
},
|
||
toPayHandler(type){
|
||
uni.showLoading({
|
||
title: "支付中...",
|
||
mask: true
|
||
})
|
||
let _this = this
|
||
let path = url.pay.aliPayOther
|
||
if (type === "wxpay") {
|
||
path = url.pay.wechatPayOther
|
||
}
|
||
this.$http("GET", path, {type: 1}).then(res =>{
|
||
uni.requestPayment({
|
||
provider: type,
|
||
orderInfo: res.data,
|
||
success: function(res){
|
||
uni.hideLoading()
|
||
_this.checkPayResult()
|
||
},
|
||
fail:function(err){
|
||
uni.hideLoading()
|
||
_this.$msg("支付失败")
|
||
}
|
||
});
|
||
}).catch(err=>{
|
||
uni.hideLoading()
|
||
let resErr = err.res
|
||
if (resErr.data.code === 15001) {
|
||
this.$msg(resErr.data.msg)
|
||
this.getDepositStatus()
|
||
}
|
||
})
|
||
},
|
||
// 检测第三方支付结果
|
||
checkPayResult(){
|
||
uni.showLoading({
|
||
mask:true,
|
||
title:"正在检测第三方支付结果..."
|
||
})
|
||
setTimeout(()=>{
|
||
this.$http("GET", url.pay.payCheckOther, {type: 1}).then(doc=>{
|
||
uni.hideLoading()
|
||
this.$msg("支付成功");
|
||
this.getDepositStatus()
|
||
}).catch(()=>{
|
||
this.$msg("支付失败")
|
||
uni.hideLoading()
|
||
})
|
||
}, 1000)
|
||
},
|
||
jumpTo(){
|
||
this.$navigateTo("/pages/notice/agreement?id="+this.noteceId)
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
<style lang='scss' scoped>
|
||
.price-box {
|
||
background-color: #fff;
|
||
height: 265upx;
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: center;
|
||
align-items: center;
|
||
font-size: 36upx;
|
||
color: #909399;
|
||
.price{
|
||
font-size: 50upx;
|
||
color: #303133;
|
||
margin-top: 12upx;
|
||
}
|
||
}
|
||
.pay-type-list{
|
||
margin-top: 20upx;
|
||
background-color: #fff;
|
||
padding-left: 60upx;
|
||
.type-item{
|
||
height: 120upx;
|
||
padding: 20upx 0;
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
padding-right: 60upx;
|
||
font-size: 30upx;
|
||
position:relative;
|
||
}
|
||
.icon{
|
||
width: 100upx;
|
||
font-size: 52upx;
|
||
}
|
||
.tit{
|
||
font-size: 32rpx;
|
||
color: #303133;
|
||
margin-bottom: 4upx;
|
||
}
|
||
.con{
|
||
flex: 1;
|
||
display: flex;
|
||
flex-direction: column;
|
||
font-size: 24rpx;
|
||
color: #bbbbc4;
|
||
}
|
||
}
|
||
.register-section {
|
||
position: absolute;
|
||
left: 0;
|
||
bottom: 50upx;
|
||
width: 100%;
|
||
text-align: center;
|
||
font-size: 30upx;
|
||
color: #999;
|
||
}
|
||
</style>
|
||
|
||
|
||
|