purchase-let/pages/user_cash/index.vue

544 lines
12 KiB
Vue

<template>
<view
style="--view-theme: rgb(32, 177, 40);--view-priceColor:#FF7600;--view-minorColor:rgba(108, 198, 94, 0.5);--view-minorColorT:rgba(66, 202, 77, 0.1);--view-bntColor:#FE960F;--view-gradient:#4DEA4D">
<view class='cash-withdrawal'>
<!-- #ifdef MP -->
<view class="accountTitle">
<view :style="{height:getHeight.barTop+'px'}"></view>
<view class="sysTitle acea-row row-center-wrapper" :style="{height:getHeight.barHeight+'px'}">
<text class="iconfont icon-ic_leftarrow" @click="goarrow"></text>
</view>
</view>
<view :style="{height:(getHeight.barTop+getHeight.barHeight)+'px'}"></view>
<!-- #endif -->
<view class="header">
<view class="headerCon">
<navigator url="/pageQuota/balanceDetail/index?type=2" hover-class="navigator-hover">
<view class="money">{{userInfo.now_money}}</view>
<view>可提现金额</view>
</navigator>
</view>
</view>
<view class='wrapper'>
<view>
<form @submit="subCash">
<view class="list">
<view class="itemCon">
<view class='item acea-row row-between-wrapper'>
<view class='name'>提现</view>
<view class='input acea-row row-between-wrapper'>
<input :value='cashVal' :maxlength="moneyMaxLeng"
:placeholder='"最低提现金额:¥"+minPrice' placeholder-class='placeholder'
name="money" type='digit'></input>
<view class="all" @click="allCash">全部提现</view>
</view>
</view>
</view>
<view class='tip'>
<navigator url="/pages/user_cash/list" hover-class="navigator-hover">
当前可提现金额: <text class="price">{{userInfo.now_money}}</text>
<text>查看提现记录</text>
</navigator>
</view>
<view class='tip'>
本月已提现金额:<text class="num">{{userInfo.extract_price}}</text>
</view>
<view class='tip'>
说明: <text class="num">{{userInfo.notes}}</text>
</view>
</view>
<button formType="submit"
style="margin-top: 15rpx;color: white; background-color: rgb(32, 177, 40); border-color: rgb(32, 177, 40); border-width: 1px; border-style: solid;">立即提现</button>
</form>
</view>
</view>
</view>
<!-- #ifdef MP -->
<authorize v-if="isShowAuth" @authColse="authColse" @onLoadFun="onLoadFun"></authorize>
<!-- #endif -->
<up-modal :show="IDCardShow" title="提现信息补充" showCancelButton @cancel="IDCardShow=false" @confirm="UpdateCard()">
<up-form labelPosition="left">
<up-form-item label="姓名:" label-width="80px">
<up-input v-model="real_name" border="none" placeholder="请输入对应的真实姓名"></up-input>
</up-form-item>
<up-form-item label="电话:" label-width="80px">
<up-input v-model="mobile" border="none" disabled></up-input>
</up-form-item>
<up-form-item label="身份证号:" label-width="80px">
<up-input v-model="id_card" border="none" placeholder="请输入身份证号"></up-input>
</up-form-item>
</up-form>
</up-modal>
</view>
</template>
<script>
import {
getCashInfoApi,
CashApplicationApi,
getCashRecordApi,
UpdateIdCardApi
} from "@/api/user.js"
// import {
// extractCash,
// } from '@/api/user.js';
import {
mapGetters
} from "vuex";
export default {
components: {},
data() {
return {
// #ifdef MP
getHeight: this.getWXStatusHeight(),
// #endif
index: 0,
minPrice: 1.00, //最低提现金额
userInfo: [],
prevent: true, //避免重复提交成功多次
moneyMaxLeng: 8,
withdraw_fee: '0',
true_money: 0,
cashVal: '',
IDCardShow: false,
id_card:'',
real_name:'',
mobile:''
};
},
computed: {
...mapGetters(['isLogin']),
disabled() {
return true
}
},
onLoad() {},
onShow() {
getCashInfoApi().then(res => {
this.userInfo = res.data;
this.mobile=res.data.mobile;
this.real_name=res.data.real_name;
})
},
methods: {
goarrow() {
uni.navigateBack()
},
allCash() {
this.cashVal = '';
this.$nextTick(() => {
this.cashVal = this.userInfo.now_money;
})
},
// 计算头部自定义导航高度;
getWXStatusHeight() {
// 获取距上
const barTop = uni.getSystemInfoSync().statusBarHeight;
// #ifdef MP
// 获取胶囊按钮位置信息
const menuButtonInfo = wx.getMenuButtonBoundingClientRect() || 0
// 获取导航栏高度
const barHeight = menuButtonInfo.height + (menuButtonInfo.top - barTop) * 2
let barWidth = menuButtonInfo.width
// #endif
// #ifndef MP
// 获取导航栏高度
const barHeight = parseInt(barTop) + 10;
let barWidth = '100%'
// #endif
return {
barHeight,
barTop,
barWidth
}
},
subCash: function(e) {
let that = this,
value = e.detail.value;
value.extract_type = 'balance';
if (value.money.length == 0) return uni.$u.toast('请填写提现金额');
if (Number(value.money) < Number(that.minPrice)) return uni.$u.toast('提现金额不能低于:¥' + that.minPrice);
if (this.prevent) {
this.prevent = false
} else {
return
}
if (this.userInfo.id_card==''||this.userInfo.id_card==null) {
this.IDCardShow = true
return
}
CashApplicationApi(value).then(res => {
uni.$u.toast(res.msg);
setTimeout(() => {
uni.navigateTo({
url: `/pages/my/my`
})
}, 1500)
}).catch(err => {
return uni.$u.toast(err.msg);
});
},
UpdateCard:function(){
UpdateIdCardApi({'id_card':this.id_card,'real_name':this.real_name}).then(res => {
uni.$u.toast(res.msg);
setTimeout(() => {
uni.navigateTo({
url: `/pages/user_cash/index`
})
}, 1500)
}).catch(err => {
return uni.$u.toast(err.msg);
});
}
}
}
</script>
<style lang="scss">
.cash-withdrawal {
.accountTitle {
background: linear-gradient(90deg, var(--view-theme) 0%, var(--view-gradient) 100%);
position: fixed;
left: 0;
top: 0;
width: 100%;
z-index: 99;
.sysTitle {
width: 100%;
position: relative;
font-weight: 500;
color: #fff;
font-size: 30rpx;
.iconfont {
position: absolute;
font-size: 36rpx;
left: 11rpx;
width: 60rpx;
}
}
}
.header {
width: 100%;
height: 380rpx;
background: linear-gradient(90deg, var(--view-theme) 0%, var(--view-gradient) 100%);
font-size: 30rpx;
font-weight: 400;
color: #F5F5F5;
text-align: center;
padding-top: 88rpx;
position: relative;
&::after {
position: absolute;
content: ' ';
width: 50%;
height: 160rpx;
background: linear-gradient(180deg, var(--view-theme) 0%, #F5F5F5 100%);
left: 0;
}
&:before {
position: absolute;
content: ' ';
width: 50%;
height: 160rpx;
background: linear-gradient(180deg, var(--view-gradient) 0%, #F5F5F5 100%);
right: 0;
bottom: -146rpx;
}
.headerCon {
background-image: url('../static/cashBg.png');
background-repeat: no-repeat;
background-size: 100% 100%;
width: 100%;
height: 278rpx;
}
.money {
font-size: 76rpx;
font-weight: 600;
color: #FFFFFF;
font-family: 'Regular';
margin-bottom: 16rpx;
}
}
}
.cash-withdrawal .wrapper {
width: 710rpx;
margin: -100rpx auto 0 auto;
position: relative;
z-index: 9;
.nav {
width: 100%;
height: 110rpx;
background-color: rgba(255, 255, 255, 0.9);
border-radius: 24rpx 24rpx 0 0;
position: relative;
z-index: 9;
&.on {
height: unset;
padding: 18rpx 0 8rpx 0;
background-color: #fff;
.item {
padding-top: 0;
padding-left: 30rpx;
font-weight: 500;
color: #333;
}
}
.item {
width: 33.33%;
height: 84rpx;
line-height: 84rpx;
color: #666666;
font-size: 26rpx;
position: relative;
z-index: 9;
&.items {
font-size: 28rpx;
color: var(--view-theme);
font-weight: 500 !important;
}
&.on {
width: 50%;
padding-left: 0;
text-align: center;
}
&.ons {
color: var(--view-theme);
font-weight: 500;
font-size: 28rpx;
}
&.on1,
&.on2,
&.on3 {
font-weight: 400;
padding-left: 0;
text-align: center;
}
&.on6,
&.on7,
&.on8,
&.on9 {
width: 25%;
font-weight: 400;
padding-left: 0;
text-align: center;
}
}
.navBg {
position: absolute;
background-repeat: no-repeat;
background-size: 100% 100%;
width: 710rpx;
height: 122rpx;
left: 0;
bottom: 0;
box-sizing: border-box;
&.on1 {
background-image: url('../static/tixian01.png');
}
&.on2 {
background-image: url('../static/tixian02.png');
}
&.on3 {
background-image: url('../static/tixian03.png');
}
&.on4 {
background-image: url('../static/tixian04.png');
}
&.on5 {
background-image: url('../static/tixian05.png');
}
&.on6 {
background-image: url('../static/tixian06.png');
}
&.on7 {
background-image: url('../static/tixian07.png');
}
&.on8 {
background-image: url('../static/tixian08.png');
}
&.on9 {
background-image: url('../static/tixian09.png');
}
}
}
.bnt {
font-size: 28rpx;
color: #fff;
width: 710rpx;
height: 88rpx;
text-align: center;
border-radius: 50rpx;
line-height: 88rpx;
margin: 48rpx auto;
}
}
.cash-withdrawal .wrapper .list {
padding: 0 30rpx 48rpx 30rpx;
background-color: #fff;
border-radius: 0 0 24rpx 24rpx;
.itemCon {
border-bottom: 1px solid #EEEEEE;
padding-bottom: 15rpx;
margin-bottom: 42rpx;
}
}
.cash-withdrawal .wrapper .list .item {
font-size: 28rpx;
color: #333;
padding: 28rpx 0;
}
.cash-withdrawal .wrapper .list .item .name {
width: 130rpx;
}
.cash-withdrawal .wrapper .list .item .input {
width: 505rpx;
input {
font-size: 28rpx;
}
.iconfont {
color: #ccc;
}
.icon-ic_camera {
font-size: 38rpx;
margin-bottom: 6rpx;
}
.all {
font-size: 26rpx;
color: var(--view-theme);
}
}
.cash-withdrawal .wrapper .list .item .input .placeholder {
color: #ccc;
}
.cash-withdrawal .wrapper .list .item .picEwm,
.cash-withdrawal .wrapper .list .item .pictrue {
width: 128rpx;
height: 128rpx;
border-radius: 14rpx;
position: relative;
margin-right: 23rpx;
background: #F5F5F5;
}
.cash-withdrawal .wrapper .list .item .picEwm image {
width: 100%;
height: 100%;
border-radius: 3rpx;
}
.cash-withdrawal .wrapper .list .item .picEwm .icon-ic_close {
position: absolute;
right: 0;
top: 0;
font-size: 24rpx;
width: 32rpx;
height: 32rpx;
background: #999999;
border-radius: 0 16rpx 0 16rpx;
color: #fff;
text-align: center;
line-height: 32rpx;
}
.cash-withdrawal .wrapper .list .item .pictrue {
font-size: 22rpx;
color: #BBBBBB;
}
.cash-withdrawal .wrapper .list .item .pictrue .icon-icon25201 {
font-size: 47rpx;
color: #DDDDDD;
margin-bottom: 3px;
}
.cash-withdrawal .wrapper .list .tip {
font-size: 24rpx;
color: #999;
margin-top: 16rpx;
.price {
color: var(--view-theme);
margin: 0 16rpx;
}
.num {
margin-left: 16rpx;
}
}
.cash-withdrawal .wrapper .list .tip2 {
font-size: 26rpx;
color: #999;
text-align: center;
margin: 44rpx 0 20rpx 0;
}
.cash-withdrawal .wrapper .list .value {
height: 135rpx;
line-height: 135rpx;
border-bottom: 1rpx solid #eee;
width: 690rpx;
margin: 0 auto;
}
.cash-withdrawal .wrapper .list .value input {
font-size: 80rpx;
color: #282828;
height: 135rpx;
text-align: center;
}
.cash-withdrawal .wrapper .list .value .placeholder2 {
color: #bbb;
}
.bg-gray {
background-color: var(--view-theme);
opacity: 0.4;
}
</style>