<template>
|
|
<view class="withdraw">
|
|
<mNavbar title="钱包提现" :leftClick="leftClick" />
|
|
<view class="banner" />
|
|
|
|
<view class="b-relative center font-m">
|
|
<image src="/static/ms/w.png" />
|
|
<view class="title" style="position: absolute; top: 40rpx; left: 40rpx">
|
|
<view style="line-height: 40rpx; font-size: 28rpx">账号余额</view>
|
|
<view style="line-height: 60rpx; font-size: 40rpx">¥{{ userInfo.price }}</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="from-body">
|
|
<view>我要提现</view>
|
|
|
|
<view class="money">
|
|
<van-cell-group inset>
|
|
<van-field type="number" v-model="form.price" placeholder="请输入提现金额"
|
|
style="background-color: #F5F5F5; margin: 10rpx 0px; border-radius: 20px;" />
|
|
<van-field v-model="form.bank" placeholder="请输入开户行"
|
|
style="background-color: #F5F5F5; margin: 10rpx 0px; border-radius: 20px;" />
|
|
<van-field v-model="form.card" placeholder="请输入卡号"
|
|
style="background-color: #F5F5F5; margin: 10rpx 0px; border-radius: 20px;" />
|
|
</van-cell-group>
|
|
</view>
|
|
|
|
<view v-html="withdrawalStatement" class="withdrawal-statement"></view>
|
|
</view>
|
|
|
|
<view class="recharge">
|
|
<view @click="withdraw" class="btn">
|
|
立即提现
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import mNavbar from '@/components/base/m-navbar.vue'
|
|
export default {
|
|
components: {
|
|
mNavbar
|
|
},
|
|
data() {
|
|
return {
|
|
withdrawalStatement: '', //充值说明
|
|
form : {
|
|
type: 1,
|
|
price: undefined,
|
|
bank: '',
|
|
card: ''
|
|
},
|
|
userInfo: {},
|
|
}
|
|
},
|
|
onShow() {
|
|
this.getConfig()
|
|
this.getUserInfo()
|
|
this.getTenRealName()
|
|
},
|
|
methods: {
|
|
leftClick() { //返回分销代理
|
|
uni.navigateTo({
|
|
url: '/pages/mine/distribution'
|
|
})
|
|
},
|
|
getConfig() { //获取配置信息
|
|
this.$api('getConfig', {}, res => {
|
|
if (res.code == 200) {
|
|
res.result.forEach(item => {
|
|
if (item.keyValue === 'withdraw') {
|
|
this.withdrawalStatement = item.content
|
|
}
|
|
})
|
|
}
|
|
})
|
|
},
|
|
withdraw() { //立即提现
|
|
let isOk = this.parameterVerification();
|
|
if(isOk && !isOk.auth){
|
|
return uni.showToast({
|
|
title : isOk.title,
|
|
icon : 'none'
|
|
})
|
|
}
|
|
this.$api('recharge', this.form, res => {
|
|
if (res.code == 200) {
|
|
uni.showToast({
|
|
title: '提现成功',
|
|
icon: 'none'
|
|
})
|
|
this.getUserInfo()
|
|
}
|
|
})
|
|
},
|
|
getUserInfo() { //获取用户信息
|
|
this.$api('getUserInfo', {}, res => {
|
|
if (res.code == 200) {
|
|
this.userInfo = res.result;
|
|
}
|
|
})
|
|
},
|
|
getTenRealName(){ //获取技师实名认证
|
|
this.$api('getTenRealName', {}, res => {
|
|
if (res.code == 200) {
|
|
let result = res.result;
|
|
if(result && result.bank && result.card){
|
|
this.form.bank = result.bank
|
|
this.form.card = result.card
|
|
}
|
|
}
|
|
})
|
|
},
|
|
parameterVerification(){ //验证用户参数合法性
|
|
let { price , bank , card } = this.form
|
|
if(!price){
|
|
return { title : '请填写提现金额' , auth : false }
|
|
}else if(price <= 0){
|
|
return { title : '提现金额必须大于0' , auth : false }
|
|
}else if(price > this.userInfo.price){
|
|
return { title : '提现金额大于余额' , auth : false }
|
|
}else if(bank.trim() == ''){
|
|
return { title : '请填写开户行' , auth : false }
|
|
}else if(card.trim() == ''){
|
|
return { title : '请填写卡号' , auth : false }
|
|
}
|
|
return { title : '验证通过' , auth : true }
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.withdraw {
|
|
.content {
|
|
padding-bottom: 60px;
|
|
}
|
|
|
|
body {
|
|
background-color: #fff;
|
|
}
|
|
|
|
.banner {
|
|
width: 100vw;
|
|
height: 256rpx;
|
|
background: #cfece7;
|
|
}
|
|
|
|
.center {
|
|
width: 710rpx;
|
|
height: 316rpx;
|
|
margin: -204rpx auto 0;
|
|
}
|
|
|
|
.center image {
|
|
width: 710rpx;
|
|
height: 316rpx;
|
|
border-radius: 12rpx;
|
|
}
|
|
|
|
.font-m {
|
|
font-family: PingFang SC, PingFang SC-Bold;
|
|
font-weight: 700;
|
|
text-align: left;
|
|
color: #ffffff;
|
|
text-shadow: 0 4rpx 6rpx 0 rgba(40, 170, 133, 0.81);
|
|
}
|
|
|
|
.item-line input {
|
|
width: 456rpx;
|
|
height: 60rpx;
|
|
line-height: 60rpx;
|
|
background: #f5f5f5;
|
|
border-radius: 12rpx;
|
|
font-size: 24rpx;
|
|
font-family: PingFang SC, PingFang SC-Medium;
|
|
font-weight: 500;
|
|
text-align: left;
|
|
color: #939393;
|
|
padding: 0 20rpx;
|
|
}
|
|
|
|
|
|
|
|
.from-body {
|
|
padding: 40rpx 20rpx;
|
|
font-size: 28rpx;
|
|
text-align: left;
|
|
color: #333333;
|
|
}
|
|
|
|
|
|
.top-label {
|
|
position: relative;
|
|
width: 96%;
|
|
margin-left: 2%;
|
|
height: 200rpx;
|
|
background-image: url(/static/ms/cz.png);
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
overflow: hidden;
|
|
border-radius: 10px;
|
|
margin-top: 20rpx;
|
|
}
|
|
|
|
|
|
.top-label-box {
|
|
position: relative;
|
|
height: 100%;
|
|
padding-left: 35rpx;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.top-label-box .activeLabel {
|
|
position: absolute;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: url('../../static/ms/select.png');
|
|
background-repeat: no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
|
|
.top-label-box-one {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.top-label-box-two {
|
|
margin-left: 18rpx;
|
|
font-size: 12px;
|
|
padding: 6rpx 8rpx;
|
|
background-color: #EBCB85;
|
|
border-bottom-left-radius: 10px;
|
|
border-top-right-radius: 10px;
|
|
}
|
|
|
|
.top-label-box-tag {
|
|
position: absolute;
|
|
border: 1px solid;
|
|
font-size: 12px;
|
|
padding: 6rpx 10rpx;
|
|
color: #fff;
|
|
background-color: #24CC80;
|
|
top: -1px;
|
|
right: 0px;
|
|
border-bottom-left-radius: 10px;
|
|
}
|
|
|
|
.money {
|
|
margin: 20rpx 0rpx;
|
|
}
|
|
|
|
.money .van-cell-group--inset {
|
|
margin: 0;
|
|
}
|
|
|
|
.money .van-field {
|
|
padding: auto 0rpx;
|
|
margin-bottom: 30rpx !important;
|
|
}
|
|
|
|
.recharge {
|
|
position: fixed;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
left: 0;
|
|
bottom: 0;
|
|
width: 750rpx;
|
|
height: 100rpx;
|
|
background: white;
|
|
}
|
|
|
|
.recharge .btn {
|
|
width: 85%;
|
|
height: 80rpx;
|
|
border-radius: 40rpx;
|
|
color: white;
|
|
text-align: center;
|
|
line-height: 80rpx;
|
|
font-size: 28rpx;
|
|
background: linear-gradient(180deg, #6FDFBE, #5AC796);
|
|
}
|
|
|
|
@media all and (min-width: 961px) {
|
|
.recharge {
|
|
left: 50% !important;
|
|
transform: translateX(-50%);
|
|
}
|
|
}
|
|
}
|
|
</style>
|