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.
438 lines
10 KiB
438 lines
10 KiB
<template>
|
|
<view>
|
|
<view class="block">
|
|
<!-- <view class="title">
|
|
我的账户
|
|
</view> -->
|
|
<view class="content">
|
|
<view class="my">
|
|
我的账户余额:{{yue}} 元
|
|
<text v-if="userinfo.djmoney" style="font-size: 25upx;color: red;">--冻结:{{userinfo.djmoney}}</text>
|
|
<view class="tx" @click="totx()">提现</view>
|
|
</view>
|
|
<view v-if="userinfo.djmoney" style="font-size: 24upx;color: red;margin-top: 30upx;">温馨提示:申请提现待到账金额为冻结金额</view>
|
|
</view>
|
|
</view>
|
|
<view class="block">
|
|
<view class="title">
|
|
充值金额
|
|
</view>
|
|
<view class="content">
|
|
<view class="amount">
|
|
<view class="list">
|
|
<view v-if="!giftamountList.length" class="box" v-for="(amount,index) in amountList" :key="index" @tap="select(amount,index)" :class="{'on':amount == inputAmount}">
|
|
{{amount}}元
|
|
</view>
|
|
<view v-if="giftamountList.length" class="box" v-for="(amount,index) in amountList" :key="index" @tap="select(amount,index)" :class="{'on':amount == inputAmount}">
|
|
{{amount}}元送{{giftamountList[index]}}元
|
|
</view>
|
|
</view>
|
|
<view class="num">
|
|
<view class="text">
|
|
自定义充值金额
|
|
</view>
|
|
<view class="input">
|
|
<input v-model="inputAmount" :placeholder="lessdesc" @input='inputamountchange'/>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="block">
|
|
<view class="title">
|
|
选择支付方式
|
|
</view>
|
|
<view class="content">
|
|
<view class="pay-list">
|
|
<view class="row" @tap="paytype='wxpay'">
|
|
<view class="left">
|
|
<image src="/static/img/wxpay.png"></image>
|
|
</view>
|
|
<view class="center">
|
|
微信支付
|
|
</view>
|
|
<view class="right">
|
|
<radio :checked="paytype=='wxpay'" color="#f06c7a" />
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<uni-popup ref="popup" type="center" :maskClick="maskclose" :custom="custom">
|
|
<view class="order">
|
|
<view class="colseorder" @click="doclose">
|
|
<image src="/static/img/close.png"></image>
|
|
</view>
|
|
<view class="ordercontent">
|
|
<view class="title">订单信息</view>
|
|
<view class="info">
|
|
<view class="infolist">
|
|
<view class="addnumtitle">类型:</view>
|
|
<view class="addnumtitle">余额充值</view>
|
|
</view>
|
|
<view class="infolist">
|
|
<view class="addnumtitle">支付金额:</view>
|
|
<view class="addnum">{{inputAmount}}元</view>
|
|
</view>
|
|
<view class="infolist">
|
|
<view class="addnumtitle">优惠金额:</view>
|
|
<view class="addnum">{{gitmoney}}元</view>
|
|
</view>
|
|
<view class="infolist">
|
|
<view class="addnumtitle">到账金额:</view>
|
|
<view class="addnum">{{(Number(inputAmount)+Number(gitmoney))}}元</view>
|
|
</view>
|
|
</view>
|
|
<view class="addbt" @click="doaddmoney">确认充值</view>
|
|
</view>
|
|
</view>
|
|
</uni-popup>
|
|
<view class="pay">
|
|
<view class="btn" @tap="doDeposit">立即充值</view>
|
|
<!-- <view class="tis">
|
|
点击立即充值,即代表您同意
|
|
<view class="terms">
|
|
<navigator url="../../../pages/xieyi/xieyi?type=1">
|
|
《条款协议》
|
|
</navigator>
|
|
|
|
</view>
|
|
</view> -->
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import uniPopup from "@/components/uni-popup/uni-popup.vue"
|
|
export default {
|
|
components: {uniPopup},
|
|
data() {
|
|
return {
|
|
maskclose:false,
|
|
custom:true,
|
|
inputAmount:'',//金额
|
|
amountList:[10,50,100],//预设3个可选快捷金额
|
|
giftamountList:[],//送金额
|
|
paytype:'wxpay',//支付类型,
|
|
yue:0.00,
|
|
seleteindex:-1,//选中赠送列表下标
|
|
gitmoney:'0',
|
|
timerId: null,
|
|
lessmoney:1,
|
|
lessdesc:'不低于1元',
|
|
userinfo:[]
|
|
}
|
|
},
|
|
onLoad(e){
|
|
|
|
},
|
|
onShow(){
|
|
let getuserinfo=uni.getStorageSync('userinfo');
|
|
this.getbaseinfo('defaultmoney');
|
|
this.getbaseinfo('lessczje');;
|
|
this.getuserinfo(getuserinfo.uid,getuserinfo.aid);
|
|
},
|
|
methods: {
|
|
async getuserinfo(uid,aid) {
|
|
let reinfo=await this.$api.userinfo({action:'userinfo',uid:uid,aid:aid});
|
|
this.yue=reinfo.data.yue;
|
|
this.userinfo=reinfo.data;
|
|
},
|
|
//获取充值活动数据
|
|
async getbaseinfo(key){
|
|
let getdata= await this.$api.baseinfo({action:'baseinfo',key:key});
|
|
if(getdata.data.info!=''){
|
|
if(key=='defaultmoney'){
|
|
this.amountList=getdata.data.info;
|
|
}else if(key=='lessczje'){
|
|
this.lessdesc="不低于"+getdata.data.info+"元";
|
|
this.lessmoney=parseFloat(getdata.data.info);
|
|
}
|
|
//this.giftamountList=info.data.giftamountList;
|
|
}
|
|
|
|
},
|
|
async wxpay(money,openid,uid) {
|
|
let userinfo = uni.getStorageSync('userinfo');
|
|
let reinfo=await this.$api.czwxpay({action:'czwxpay',openid:openid,addmoney:money,uid:uid,aid:userinfo.aid});
|
|
console.log(reinfo,'返回');
|
|
let t=this;
|
|
uni.requestPayment({
|
|
provider: 'wxpay',
|
|
timeStamp: reinfo.data.timeStamp,
|
|
nonceStr: reinfo.data.nonceStr,
|
|
package: reinfo.data.package,
|
|
signType: 'MD5',
|
|
paySign: reinfo.data.paySign,
|
|
success: function (res) {
|
|
//console.log('success:' + JSON.stringify(res));
|
|
uni.showToast({
|
|
title:'充值成功'
|
|
})
|
|
setTimeout(function(e){
|
|
uni.reLaunch({
|
|
url:'/pages/user/user'
|
|
})
|
|
},1000)
|
|
|
|
},
|
|
fail: function (err) {
|
|
|
|
uni.showToast({
|
|
title:'支付失败'+reinfo.msg,icon:'fail'
|
|
})
|
|
}
|
|
});
|
|
},
|
|
select(amount,index){
|
|
this.inputAmount = amount;
|
|
this.seleteindex=index;
|
|
},
|
|
inputamountchange(val){
|
|
console.log(val.target.value,'输入')
|
|
},
|
|
doDeposit(){
|
|
let getuserinfo=uni.getStorageSync('userinfo');
|
|
if(getuserinfo.openid==''||getuserinfo.openid==null){
|
|
uni.navigateTo({
|
|
url:'/pages/user/login'
|
|
})
|
|
}else{
|
|
console.log(this.lessmoney,'最低金额')
|
|
if(this.inputAmount<this.lessmoney){
|
|
uni.showToast({title:'充值金额不低于'+this.lessmoney+'元',icon:'none'});
|
|
return ;
|
|
}
|
|
if (parseFloat(this.inputAmount).toString() == "NaN") {
|
|
uni.showToast({title:'请输入正确金额',icon:'none'});
|
|
return ;
|
|
}
|
|
// if(this.inputAmount%10!=0){
|
|
// uni.showToast({title:'请输入10的整数金额',icon:'none'});
|
|
// return ;
|
|
// }
|
|
if(parseFloat(this.inputAmount).toFixed(2)!=parseFloat(this.inputAmount)){
|
|
uni.showToast({title:'最多只能输入两位小数哦~',icon:'none'});
|
|
return ;
|
|
}
|
|
this.$refs.popup.open();
|
|
}
|
|
|
|
},
|
|
doclose(){
|
|
this.btstatus=false;
|
|
this.$refs.popup.close()
|
|
},
|
|
doaddmoney(){
|
|
var getmoney=this.inputAmount;
|
|
var getgifmoney=this.gitmoney;
|
|
let getuserinfo=uni.getStorageSync('userinfo');
|
|
this.wxpay(getmoney,getuserinfo.openid,getuserinfo.uid)
|
|
console.log(getgifmoney+'--'+this.inputAmount,'金额');
|
|
},
|
|
totx(){
|
|
uni.navigateTo({url:'/pages/user/tixian'})
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.block{
|
|
width: 100%;
|
|
padding: 20upx 3%;
|
|
.title{
|
|
width: 100%;
|
|
font-size: 34upx;
|
|
}
|
|
.content{
|
|
.my{
|
|
width: 100%;
|
|
height: 120upx;
|
|
display: flex;
|
|
align-items: center;
|
|
font-size: 30upx;
|
|
border-bottom: solid 1upx #eee;
|
|
}
|
|
.tx{
|
|
padding: 15rpx 35rpx;
|
|
background-color: #00B7B8;
|
|
color: #FFFFFF;
|
|
float: right;
|
|
position: absolute;
|
|
right: 20rpx;
|
|
top: 45rpx;
|
|
border-radius: 10upx;
|
|
}
|
|
.amount{
|
|
width: 100%;
|
|
|
|
.list{
|
|
display: flex;
|
|
flex-flow:row wrap;
|
|
justify-content: space-between;
|
|
padding: 20upx 0;
|
|
|
|
.box{
|
|
width: 31%;
|
|
height: 120upx;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
border-radius: 10upx;
|
|
box-shadow: 0upx 5upx 20upx rgba(0,0,0,0.05);
|
|
font-size: 36upx;
|
|
background-color: #52B4F5;
|
|
color: #FFFFFF;
|
|
margin-top:15upx;
|
|
|
|
&.on{
|
|
background-color: #f06c7a;
|
|
color: #fff;
|
|
}
|
|
}
|
|
}
|
|
.num{
|
|
margin-top: 10upx;
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
align-items: center;
|
|
.text{
|
|
padding-right: 10upx;
|
|
font-size: 30upx;
|
|
}
|
|
.input{
|
|
width: 30.2vw;
|
|
border-bottom: solid 2upx #999;
|
|
|
|
justify-content: flex-end;
|
|
align-items: center;
|
|
input{
|
|
margin: 0 20upx;
|
|
height: 60upx;
|
|
font-size: 30upx;
|
|
color: #f06c7a;
|
|
justify-content: flex-end;
|
|
align-items: center;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.pay-list{
|
|
width: 100%;
|
|
border-bottom: solid 1upx #eee;
|
|
.row{
|
|
width: 100%;
|
|
height: 120upx;
|
|
display: flex;
|
|
align-items: center;
|
|
.left{
|
|
width: 100upx;
|
|
flex-shrink: 0;
|
|
display: flex;
|
|
align-items: center;
|
|
image{
|
|
width: 60upx;
|
|
height: 60upx;
|
|
}
|
|
}
|
|
.center{
|
|
width: 100%;
|
|
font-size: 30upx;
|
|
}
|
|
.right{
|
|
width: 100upx;
|
|
flex-shrink: 0;
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.pay{
|
|
margin-top: 20upx;
|
|
width: 100%;
|
|
display: flex;
|
|
justify-content: center;
|
|
flex-wrap: wrap;
|
|
.btn{
|
|
width: 70%;
|
|
height: 80upx;
|
|
border-radius: 80upx;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
color: #fff;
|
|
background-color: #f06c7a;
|
|
box-shadow: 0upx 5upx 10upx rgba(0,0,0,0.2);
|
|
}
|
|
.tis{
|
|
margin-top: 20upx;
|
|
width: 100%;
|
|
font-size: 24upx;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: baseline;
|
|
color: #999;
|
|
.terms{
|
|
color: #5a9ef7;
|
|
}
|
|
}
|
|
}
|
|
.order{
|
|
width: 550rpx;
|
|
height: 580rpx;
|
|
background-color: #FFFFFF;
|
|
border-radius: 25rpx;
|
|
}
|
|
.colseorder{
|
|
position: absolute;
|
|
right: -8px;
|
|
top: -8px;
|
|
image{
|
|
width: 60rpx;
|
|
height: 60rpx;
|
|
}
|
|
}
|
|
.ordercontent{
|
|
padding: 20rpx;
|
|
}
|
|
.title{
|
|
color:#444f62;
|
|
border-bottom: 1rpx #e7e8ea solid;
|
|
}
|
|
.infolist{
|
|
padding: 20rpx 5rpx;
|
|
display: flex;
|
|
justify-content: space-around;
|
|
border-bottom: 1rpx #e7e8ea solid;
|
|
align-items: center;
|
|
}
|
|
.addnum{
|
|
color: #ff1f3a;
|
|
font-weight: bold;
|
|
margin-left: 50rpx;
|
|
font-size: 30rpx;
|
|
}
|
|
.addnumtitle{
|
|
margin-left: -50rpx;
|
|
color:#444f62;
|
|
|
|
}
|
|
.addnumtitle{
|
|
margin-left: -50rpx;
|
|
color: #49586d;
|
|
font-size: 30rpx;
|
|
}
|
|
.addbt{
|
|
color: #FFFFFF;
|
|
font-size: 35rpx;
|
|
background-color: #00bca2;
|
|
padding: 10rpx 30rpx;
|
|
display: flex;
|
|
justify-content: center;
|
|
margin-top: 30rpx;
|
|
border-radius: 15rpx;
|
|
}
|
|
</style>
|