<template>
|
<view class="box">
|
<view class="bg">
|
<view class="bg-a">可提现余额(元)</view>
|
<view class="bg-b">
|
<text>{{(shop.amount || 0).toFixed(2)}}</text>
|
<text></text>
|
</view>
|
<view class="form">
|
<view class="form-a">
|
<view class="form-a-label">提现至</view>
|
<view class="form-a-val" @click="jumpBank" >
|
<text v-if="!selectBank || !selectBank.id " class="text-grey">暂无银行信息,点击添加</text>
|
<text v-if="selectBank && selectBank.id ">{{selectBank.bankInfo || ''}}</text>
|
<u-icon name="arrow-right" color="#999999" size="16"></u-icon>
|
</view>
|
</view>
|
<view class="form-xian"></view>
|
<view class="form-title">提现金额</view>
|
<view class="form-input">
|
<view class="form-input-dw">¥</view>
|
<input type="text" placeholder="0" v-model="form.amount" :focus='focus' @blur="focus=false"/>
|
<view class="form-input-tx" @click="inputAll">全部提现</view>
|
</view>
|
<view class="form-error">{{tips}}</view>
|
<view class="form-btn disable" v-if="!validForm">提交申请</view>
|
<view class="form-btn" v-if="validForm" @click="confirm()">提交申请</view>
|
</view>
|
</view>
|
<u-popup :show="show" round="15" :safeAreaInsetBottom="false" mode="center">
|
<view class="tc">
|
<view class="tc-contemt">
|
<view class="tc-contemt-title">操作提示</view>
|
<view class="tc-contemt-nr">
|
您确认发起此次提现申请吗?
|
</view>
|
</view>
|
<view class="tc-btn">
|
<view class="tc-btn-item" @click="confirm() ">我再想想</view>
|
<view class="tc-btn-item" style="color: #004096;" @click="applyDo">确认</view>
|
</view>
|
</view>
|
</u-popup>
|
</view>
|
</template>
|
|
<script>
|
import { mapState } from 'vuex'
|
export default {
|
computed: {
|
...mapState(['navHeight', 'statusbarHeight','shopInfo', 'shopToken']),
|
validForm() {
|
this.tips =''
|
if(! this.selectBank || !this.selectBank.id){
|
this.tips ='请先选择您需要提现的银行账户信息'
|
return false
|
}
|
this.form.bankId = this.selectBank.id
|
if(!this.form.amount ||this.form.amount <=0){
|
this.tips ='请输入提现金额'
|
this.focus=true
|
return false
|
}
|
if(this.form.amount >( this.shop.amount||0)){
|
this.tips ='输入的金额已经超过可提现金额'
|
this.focus=true
|
return false
|
}
|
return true
|
}
|
},
|
data() {
|
return {
|
show:false,
|
tips:'',
|
focus:false,
|
valid:false,
|
bankList:[],
|
selectBank:[],
|
form: { amount:null,bankId:null},
|
shop:{},
|
info:{}
|
}
|
},
|
onLoad(options) {
|
this.info={}
|
this.tips=''
|
this.shop ={}
|
this.bankList = []
|
this.show=false
|
this.focus=false
|
this.selectBank={}
|
this.checkShopLogin()
|
this.shop = this.shopInfo || {}
|
this.getBankList()
|
var that =this
|
uni.$on('selectBank',function(data){
|
console.log('监听到事件来自 selectBank:' ,data);
|
that.selectBank = data.info
|
})
|
},
|
methods:{
|
confirm(){
|
this.tips = '';
|
if(! this.selectBank || !this.selectBank.id){
|
this.tips ='请先选择您需要提现的银行账户信息'
|
return
|
}
|
this.form.bankId = this.selectBank.id
|
if(!this.form.amount){
|
this.tips ='请输入正确的提现金额'
|
this.focus=true
|
return
|
}
|
if(this.form.amount >( this.shop.amount||0)){
|
this.tips ='输入的金额已经超过可提现金额'
|
this.focus=true
|
return
|
}
|
this.show = !this.show
|
},
|
applyDo(){
|
var that =this
|
this.$u.api.withdrawApply(this.form)
|
.then(res => {
|
if (res.code === 200) {
|
uni.showToast({
|
title:'操作成功',
|
icon:'success'
|
})
|
uni.$emit('accountListReload',{})
|
uni.redirectTo({url:"/pagesA/pages/withdraw-success/withdraw-success?id="+res.data})
|
}
|
}).catch(e=>{
|
uni.showToast({
|
title:'操作失败',
|
icon:'error'
|
})
|
})
|
},
|
inputAll(){
|
this.form.amount = this.shop.amount ||0
|
},
|
jumpBank(){
|
if(this.selectBank && this.selectBank.id){
|
uni.navigateTo({
|
url: '/pagesA/pages/withdraw-select/withdraw-select?item='+JSON.stringify(this.selectBank)
|
})
|
}else{
|
uni.navigateTo({
|
url: '/pagesA/pages/withdraw-select/withdraw-select'
|
})
|
}
|
},
|
async getBankList(){
|
var that =this
|
let res = await that.$u.api.getBankList({tokenType:1 })
|
if (res.code === 200) {
|
that.bankList = res.data || []
|
if(that.bankList.length>0){
|
that.selectBank = that.bankList[0]
|
}
|
}
|
|
},
|
async checkShopLogin(){
|
var that =this
|
if( this.shopInfo ==null || this.shopInfo.id==null || this.shopToken==null || this.shopToken==''){
|
uni.navigateTo({
|
url: '/pages/login/login'
|
})
|
}else{
|
let res = await that.$u.api.getShopInfo({tokenType:1 })
|
if (res.code === 200) {
|
await that.$store.commit('setShopInfo', res.data)
|
this.shop = res.data || {}
|
}
|
}
|
|
}
|
}
|
}
|
</script>
|
|
<style>
|
page {
|
background-color: #F9F9FB;
|
}
|
</style>
|
<style lang="scss" scoped>
|
.box {
|
width: 100%;
|
.bg {
|
width: 100%;
|
padding: 30rpx;
|
box-sizing: border-box;
|
height: 240rpx;
|
background: #004096;
|
.bg-a {
|
font-weight: 400;
|
font-size: 26rpx;
|
color: #FFFFFF;
|
}
|
.bg-b {
|
display: flex;
|
align-items: baseline;
|
margin-top: 14rpx;
|
text {
|
&:nth-child(1) {
|
font-weight: 600;
|
font-size: 48rpx;
|
color: #FFFFFF;
|
}
|
&:nth-child(2) {
|
font-weight: 600;
|
font-size: 26rpx;
|
color: #FFFFFF;
|
}
|
}
|
}
|
.form {
|
width: 100%;
|
background: #FFFFFF;
|
box-shadow: 0rpx 2rpx 20rpx 0rpx rgba(0,0,0,0.08);
|
border-radius: 20rpx;
|
margin-top: 30rpx;
|
padding: 48rpx 30rpx;
|
box-sizing: border-box;
|
.form-a {
|
width: 100%;
|
display: flex;
|
align-items: center;
|
.form-a-label {
|
flex-shrink: 0;
|
margin-right: 30rpx;
|
font-weight: 400;
|
font-size: 30rpx;
|
color: #666666;
|
}
|
.form-a-val {
|
flex: 1;
|
display: flex;
|
align-items: center;
|
justify-content: flex-end;
|
text {
|
font-weight: 400;
|
font-size: 28rpx;
|
margin-right: 20rpx;
|
}
|
.text-grey {
|
color: #999999;
|
}
|
|
}
|
}
|
.form-xian {
|
width: 100%;
|
height: 1rpx;
|
margin: 30rpx 0;
|
background-color: #E5E5E5;
|
}
|
.form-title {
|
font-weight: 500;
|
font-size: 34rpx;
|
color: #111111;
|
}
|
.form-input {
|
width: 100%;
|
height: 116rpx;
|
display: flex;
|
align-items: center;
|
justify-content: space-between;
|
border-bottom: 1rpx solid #E5E5E5;
|
.form-input-dw {
|
flex-shrink: 0;
|
font-weight: bold;
|
font-size: 30rpx;
|
}
|
input {
|
flex: 1;
|
height: 100%;
|
font-weight: 500;
|
font-size: 40rpx;
|
color: #111111;
|
margin: 0 30rpx;
|
}
|
.form-input-tx {
|
flex-shrink: 0;
|
font-weight: 400;
|
font-size: 30rpx;
|
color: #004096;
|
}
|
}
|
.form-error {
|
font-weight: 400;
|
font-size: 26rpx;
|
color: #E4001D;
|
margin-top: 30rpx;
|
}
|
.disable {
|
color: #CCCCCC !important;
|
background: #EFEFEF !important;
|
}
|
.form-btn {
|
width: 100%;
|
height: 88rpx;
|
line-height: 88rpx;
|
text-align: center;
|
background: #004096;
|
border-radius: 44rpx;
|
font-weight: 500;
|
font-size: 32rpx;
|
color: #FFFFFF;
|
margin-top: 48rpx;
|
}
|
}
|
}
|
}
|
</style>
|