You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
330 lines
7.3 KiB
330 lines
7.3 KiB
<template>
|
|
<view class="content">
|
|
<navigation>
|
|
Recharge
|
|
<view class="bread" slot="bread" @click="invMore=true,msShow=true">
|
|
<image src="../../../static/promo/[email protected]" mode=""></image>
|
|
</view>
|
|
</navigation>
|
|
<view class="rech-body">
|
|
<view class="pro-body-p1">Balance:<span data-v-642729fd=""
|
|
class="category-sigh">{{currencySymbol}}</span><span class="s1">{{currentBalance}}</span></view>
|
|
<view class="input-item flex">
|
|
<view class="login-sigh login-sigh2 flex">
|
|
<view class="imgcon">
|
|
<image src="../../../static/login/[email protected]" mode=""></image>
|
|
</view>
|
|
</view>
|
|
<input type="text" value="" placeholder="Enter or Select Recharge Amount"
|
|
placeholder-style="color: #BFC2CCFF;font-size:14px;" v-model="tranAmt" />
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
<view class="rech-mount flex" v-show="pd==0">
|
|
<view class="mount" v-for="(item,index) in recharge_amount" :key="item" @click="getMonVal(item)">
|
|
{{currencySymbol}} {{item}}
|
|
</view>
|
|
</view>
|
|
|
|
<view class="rech-capy">
|
|
<view class="payment">
|
|
payment
|
|
</view>
|
|
<view class="paymentType">
|
|
<u-radio-group @change="radioGroupChange" class="payTypenName" v-model="payType">
|
|
<u-radio @change="radioChange(item)" :name="item.payType" v-for="(item, index) in paymentType" :key="index"
|
|
active-color="#954DE3FF">
|
|
{{item.typeName}}
|
|
</u-radio>
|
|
</u-radio-group>
|
|
|
|
</view>
|
|
</view>
|
|
<view class="rech-btn-con" v-show="pd==0">
|
|
<view class="rech-btn" @click="PayTo()">
|
|
Confirm
|
|
</view>
|
|
</view>
|
|
<view class="offline-text" v-show="pd==1">
|
|
You can follow the steps to pay:
|
|
<view class="">
|
|
1. Go to your M-Pesa menu or App on your phone.
|
|
</view>
|
|
<view class="">
|
|
2. Go to Lipa na M-Pena then select "Pay Bill" option.
|
|
</view>
|
|
<view class="">
|
|
3. Enter business number: {{mobile}} <button type="default" class="offline-button"
|
|
@click="copyTextMethod()">Copy</button> Account number: Enter your ID : {{userId}}
|
|
</view>
|
|
<view class="">
|
|
5. Enter the amount
|
|
</view>
|
|
<view class="">
|
|
6. Enter your M-Pesa PIN.
|
|
</view>
|
|
<view class="">
|
|
7. Confirm that all details are correct and submit.
|
|
</view>
|
|
|
|
</view>
|
|
|
|
|
|
<view class="invite-more" v-show="invMore">
|
|
<view class="invite-con">
|
|
<view class="more-a" @click="goRecod()">
|
|
recharge record
|
|
</view>
|
|
<view class="more-a" @click="goRerule()">
|
|
recharge rules
|
|
</view>
|
|
</view>
|
|
<view class="invite-con2">
|
|
<view class="more-a" @click="invMore=false,msShow=false">
|
|
cancel
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="msg-box-bg" v-show="msShow" @click="invMore=false,msShow=false,appl=false">
|
|
</view>
|
|
|
|
|
|
|
|
</view>
|
|
|
|
</template>
|
|
|
|
<script>
|
|
import api from '@/utils/api'
|
|
import utils from '@/utils'
|
|
import cont from "@/components/navigation/navigation.vue"
|
|
export default {
|
|
data() {
|
|
return {
|
|
copyText: '',
|
|
pd: 0,
|
|
mobile: '',
|
|
areacode: '',
|
|
tranAmt: '',
|
|
rechangeInfo: [],
|
|
recharge_amount: [],
|
|
paymentType: [],
|
|
payType: 'pay.online.paxs',
|
|
currencySymbol: '',
|
|
currentBalance: '',
|
|
userId: '',
|
|
invMore: false,
|
|
appl: false,
|
|
msShow: false,
|
|
}
|
|
},
|
|
|
|
onLoad() {
|
|
this.ba();
|
|
this.copyText = uni.getStorageSync('loginMobile');
|
|
this.mobile = uni.getStorageSync('loginMobile');
|
|
this.currentBalance = uni.getStorageSync('currentBalance');
|
|
this.areacode = uni.getStorageSync('siteInfo').areaCode;
|
|
this.currencySymbol = uni.getStorageSync('siteInfo').currencySymbol;
|
|
this.userId = uni.getStorageSync('MyInfo').userId;
|
|
const post3 = api.withdrawConfig({
|
|
"ticket": uni.getStorageSync('logInfo').data,
|
|
})
|
|
post3.then(res => {
|
|
if (res.data) {
|
|
this.currentBalance = res.data.currentBalance;
|
|
this.currentBalance = parseFloat(this.currentBalance).toFixed(2)
|
|
uni.setStorage({
|
|
key: 'currentBalance',
|
|
data: this.currentBalance,
|
|
success: function() {
|
|
console.log('success')
|
|
}
|
|
});
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
const post = api.rechargeConfig({
|
|
"ticket": uni.getStorageSync('logInfo').data,
|
|
})
|
|
post.then(res => {
|
|
uni.setStorage({
|
|
key: 'rechargeInfo',
|
|
data: res.data,
|
|
success: function() {
|
|
console.log('success')
|
|
}
|
|
});
|
|
this.rechangeInfo = res.data;
|
|
this.recharge_amount = this.rechangeInfo.recharge_amount.split(',');
|
|
console.log(res.data, 9990);
|
|
})
|
|
.catch(e => {
|
|
uni.showToast({
|
|
title: e,
|
|
icon: 'none',
|
|
duration: 2500
|
|
})
|
|
})
|
|
|
|
const post2 = api.getPayType({
|
|
"ticket": uni.getStorageSync('logInfo').data,
|
|
})
|
|
post2.then(res => {
|
|
this.paymentType = res.data;
|
|
if(res.data.length>0){
|
|
this.payType=res.data[0].payType
|
|
}
|
|
})
|
|
.catch(e => {
|
|
uni.showToast({
|
|
title: e,
|
|
icon: 'none',
|
|
duration: 2500
|
|
})
|
|
})
|
|
|
|
|
|
},
|
|
methods: {
|
|
goRecod() {
|
|
uni.navigateTo({
|
|
url: 'record/index'
|
|
})
|
|
},
|
|
ba() {
|
|
//更新余额
|
|
const post3 = api.withdrawConfig({
|
|
"ticket": uni.getStorageSync('logInfo').data,
|
|
})
|
|
post3.then(res => {
|
|
|
|
res.data.currentBalance = parseFloat(res.data.currentBalance).toFixed(2)
|
|
uni.setStorage({
|
|
key: 'currentBalance',
|
|
data: res.data.balance,
|
|
success: function() {
|
|
console.log('success')
|
|
}
|
|
});
|
|
})
|
|
},
|
|
goRerule() {
|
|
uni.navigateTo({
|
|
url: './rechargeRule'
|
|
})
|
|
},
|
|
copyTextMethod() {
|
|
this.$copyText(this.copyText).then(res => {
|
|
uni.showToast({
|
|
title: 'Copy succeeded',
|
|
icon: 'success'
|
|
})
|
|
})
|
|
},
|
|
PayTo() {
|
|
uni.showLoading({
|
|
title: 'loading'
|
|
})
|
|
if (this.payType == '') {
|
|
uni.showToast({
|
|
title: 'Please choose the payment method',
|
|
icon: 'none',
|
|
duration: 1500
|
|
})
|
|
return;
|
|
}
|
|
|
|
|
|
if (this.tranAmt == '') {
|
|
uni.showToast({
|
|
title: 'Please input recharge amount',
|
|
icon: 'none',
|
|
duration: 1500
|
|
})
|
|
return;
|
|
}
|
|
if (this.tranAmt < 0) {
|
|
uni.showToast({
|
|
title: 'Recharge amount cannot be less than 0',
|
|
icon: 'none',
|
|
duration: 1500
|
|
})
|
|
return;
|
|
}
|
|
const post2 = api.recharge({
|
|
"ticket": uni.getStorageSync('logInfo').data,
|
|
"payType": this.payType,
|
|
"tranAmt": this.tranAmt,
|
|
})
|
|
post2.then(res => {
|
|
if (res.success == true && res.data.msg) {
|
|
uni.showToast({
|
|
title: 'Recharge success',
|
|
icon: 'success',
|
|
duration: 1500
|
|
})
|
|
// #ifdef H5
|
|
window.location.href = res.data.msg;
|
|
// #endif
|
|
// #ifdef APP-PLUS
|
|
plus.runtime.openURL(res.data.msg);
|
|
// #endif
|
|
|
|
|
|
|
|
|
|
} else {
|
|
uni.showToast({
|
|
title: res.errMsg,
|
|
icon: 'none',
|
|
duration: 1500
|
|
})
|
|
}
|
|
})
|
|
.catch(e => {
|
|
uni.showToast({
|
|
title: e,
|
|
icon: 'none',
|
|
duration: 2500
|
|
})
|
|
})
|
|
},
|
|
|
|
radioChange(e) {
|
|
|
|
},
|
|
// 选中任一radio时,由radio-group触发
|
|
radioGroupChange(e) {
|
|
console.log(this.payType)
|
|
},
|
|
getMonVal(m) {
|
|
this.tranAmt = m
|
|
console.log(this.tranAmt, 222)
|
|
}
|
|
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
@import './index.css';
|
|
|
|
/* #ifdef APP-PLUS */
|
|
.bread image {
|
|
width: 28rpx;
|
|
height: 24rpx;
|
|
position: absolute;
|
|
right: 36rpx;
|
|
top: 60%;
|
|
transform: translateY(-50%);
|
|
}
|
|
|
|
/* #endif */
|
|
</style>
|
|
|