486 lines
12 KiB
Vue
486 lines
12 KiB
Vue
<style lang="scss" scoped>
|
||
@import "@/static/scss/global.scss";
|
||
|
||
.balance_wrapper {
|
||
// color: #fff;
|
||
|
||
.balance_wrapper_bg {
|
||
// padding: 40rpx 20rpx;
|
||
padding-bottom: 100rpx;
|
||
flex-direction: column;
|
||
background-color: #3c96f3;
|
||
font-size: 36 rpx;
|
||
|
||
.balance_text {
|
||
font-size: 50 rpx;
|
||
font-weight: bold;
|
||
|
||
text {
|
||
font-size: 32 rpx;
|
||
font-weight: normal;
|
||
margin-right: 10 rpx;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.count_wrapper {
|
||
border-radius: 20 rpx;
|
||
padding: 0rpx 30rpx;
|
||
}
|
||
|
||
.padding-20 {
|
||
padding: 0 20 rpx;
|
||
}
|
||
|
||
.mask {
|
||
position: fixed;
|
||
left: 0;
|
||
right: 0;
|
||
top: 0;
|
||
bottom: 0;
|
||
background-color: rgba(0, 0, 0, 0.5);
|
||
}
|
||
|
||
.picker_box {
|
||
position: fixed;
|
||
bottom: -100%;
|
||
left: 0;
|
||
right: 0;
|
||
height: 700 rpx;
|
||
transition: all 0.3s;
|
||
border-radius: 20rpx 20rpx 0 0;
|
||
|
||
.title {
|
||
padding: 20rpx 30rpx;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.button {
|
||
color: rgb(60, 150, 243);
|
||
}
|
||
|
||
.scroll_view {
|
||
height: 600 rpx;
|
||
padding: 0 20 rpx;
|
||
width: auto;
|
||
|
||
.item {
|
||
padding: 20rpx 30rpx;
|
||
justify-content: space-between;
|
||
border-bottom: 1 rpx solid #e6e6e6;
|
||
}
|
||
}
|
||
}
|
||
|
||
.picker_box_active {
|
||
bottom: 0;
|
||
}
|
||
|
||
.balance_wrapper {
|
||
padding: 20rpx 30rpx;
|
||
}
|
||
|
||
/deep/.card-type .u-radio__text {
|
||
margin-left: 80rpx;
|
||
color: #000 !important;
|
||
}
|
||
|
||
/deep/.with-draw .u-radio__text {
|
||
margin-left: 200rpx;
|
||
color: #000 !important;
|
||
}
|
||
</style>
|
||
<template>
|
||
<view class="asset_container">
|
||
<!-- todo 将购买券 和土地兑付 水平排放-->
|
||
<view class="flex flex-align-center balance_wrapper flex-between bg-w">
|
||
<view class="action-item">
|
||
<text class="text"> 槟榔券: </text>
|
||
<text class="text">{{ this.blMoney }}</text>
|
||
</view>
|
||
<view class="action-item">
|
||
<text class="text"> 槟榔兑付: </text>
|
||
<text class="text">{{ this.bldfMoney }}</text>
|
||
</view>
|
||
</view>
|
||
|
||
<u-gap height="20rpx"></u-gap>
|
||
<view class="count_wrapper bg-w">
|
||
<text>提现金额</text>
|
||
<u-gap height="20rpx"></u-gap>
|
||
<view>
|
||
<u-input
|
||
border="none"
|
||
fontSize="36rpx"
|
||
type="number"
|
||
v-model="formData.money"
|
||
placeholder="输入提现金额"
|
||
>
|
||
<u-text
|
||
text="¥"
|
||
slot="prefix"
|
||
margin="0 3px 0 0"
|
||
type="tips"
|
||
></u-text>
|
||
</u-input>
|
||
</view>
|
||
</view>
|
||
<u-gap height="20rpx"></u-gap>
|
||
<view class="flex flex-align-center balance_wrapper flex-between bg-w">
|
||
<view class="action-item">
|
||
<text class="text"> 到账金额: </text>
|
||
<text class="text font34">¥{{Number(formData.money * 0.94).toFixed(4)}}</text>
|
||
</view>
|
||
</view>
|
||
<u-gap height="20rpx"></u-gap>
|
||
<view class="count_wrapper bg-w">
|
||
<view>
|
||
<u--form labelPosition="left" ref="form1" labelWidth="100">
|
||
<u-form-item label="提现类型" @click="asstypeShow = true">
|
||
<u--input
|
||
v-model="asstTypeSellectItem.assetTypeName"
|
||
border="none"
|
||
disabled
|
||
disabledColor="#ffffff"
|
||
placeholder="请选择提现类型"
|
||
></u--input>
|
||
<u-icon slot="right" name="arrow-right"></u-icon>
|
||
</u-form-item>
|
||
</u--form>
|
||
</view>
|
||
</view>
|
||
|
||
<!-- <view class="mask" v-if=""></view> -->
|
||
<u-gap height="20rpx"></u-gap>
|
||
<view class="count_wrapper bg-w">
|
||
<view>
|
||
<u--form labelPosition="left" ref="form1" labelWidth="100">
|
||
<u-form-item label="银行卡号" @click="show = true">
|
||
<u--input
|
||
v-model="selectItem.bankCardNumber"
|
||
border="none"
|
||
type="number"
|
||
disabled
|
||
disabledColor="#ffffff"
|
||
placeholder="请选择银行卡号"
|
||
></u--input>
|
||
<u-icon slot="right" name="arrow-right"></u-icon>
|
||
</u-form-item>
|
||
</u--form>
|
||
</view>
|
||
</view>
|
||
<u-gap height="140rpx"></u-gap>
|
||
<view class="padding-20">
|
||
<u-button @click="handlerDraw" type="primary" text="确认提现" color="#4BB22E"></u-button>
|
||
</view>
|
||
<view class="mask" v-if="show || asstypeShow" @click="handlerClose"> </view>
|
||
<!-- // 底部弹出列表-银行卡-->
|
||
<view class="picker_box bg-w" :class="show ? 'picker_box_active' : ''">
|
||
<view class="title flex2">
|
||
<text @click="handlerClose(1)">取消</text>
|
||
<view>选择银行卡</view>
|
||
<text @click="handlerConfirm(1)" class="button">确定</text>
|
||
</view>
|
||
<scroll-view class="scroll_view card-type" scroll-y="true">
|
||
<u-radio-group
|
||
:value="value"
|
||
@change="handlerChange"
|
||
placement="column"
|
||
>
|
||
<view
|
||
@click="handlerItem(item, index)"
|
||
class="item flex2 flex-align-center"
|
||
v-for="(item, index) in bankList"
|
||
:key="index"
|
||
>
|
||
<u-radio :name="index" :label="item.number"></u-radio>
|
||
<!-- <view class="flex-1 font28">
|
||
{{ item.number }}
|
||
</view> -->
|
||
<view class="font28">持卡人:{{ item.cardholderName }}</view>
|
||
</view>
|
||
</u-radio-group>
|
||
</scroll-view>
|
||
</view>
|
||
|
||
<!-- // 底部弹出列表-资产类型-->
|
||
<view
|
||
class="picker_box bg-w"
|
||
:class="asstypeShow ? 'picker_box_active' : ''"
|
||
>
|
||
<view class="title flex2">
|
||
<text @click="handlerClose(2)">取消</text>
|
||
<view>选择提现类型</view>
|
||
<text @click="handlerConfirm(2)" class="button">确定</text>
|
||
</view>
|
||
<scroll-view class="scroll_view with-draw" scroll-y="true">
|
||
<u-radio-group
|
||
:value="assetTypeValue"
|
||
@change="assetTypehandlerChange"
|
||
placement="column"
|
||
>
|
||
<view
|
||
@click="assetTypehandlerItem(item, index)"
|
||
class="item flex2"
|
||
v-for="(item, index) in assetTypeList"
|
||
:key="index"
|
||
>
|
||
<u-radio
|
||
:name="index"
|
||
:label="' 提现类型名称:' + item.assetTypeName"
|
||
></u-radio>
|
||
<!-- {{ item.assetType }} -->
|
||
<!-- <view>提现类型名称:{{ item.assetTypeName }}</view> -->
|
||
</view>
|
||
</u-radio-group>
|
||
</scroll-view>
|
||
</view>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import {
|
||
getBankList,
|
||
widthDraw,
|
||
getUserBalance,
|
||
tudicheckapi,
|
||
} from "@/api/system/user.js";
|
||
|
||
export default {
|
||
data() {
|
||
return {
|
||
formData: {
|
||
money: "",
|
||
bankCardId: "",
|
||
assetType: "",
|
||
},
|
||
bankList: [],
|
||
assetTypeList: [],
|
||
page: {
|
||
page: 1,
|
||
size: 10,
|
||
},
|
||
show: false,
|
||
asstypeShow: false,
|
||
value: null,
|
||
assetTypeValue: null,
|
||
showlab: null,
|
||
selectItem: {},
|
||
asstTypeSellectItem: {},
|
||
blMoney: 0,
|
||
bldfMoney: 0,
|
||
};
|
||
},
|
||
onLoad() {
|
||
this.getBankList();
|
||
this.getAssetTypeList();
|
||
},
|
||
onShow() {
|
||
this.getUserBalance();
|
||
},
|
||
methods: {
|
||
handlerClose(closeType) {
|
||
// if (closeType == 1) {
|
||
this.show = false;
|
||
// } else if (closeType == 2) {
|
||
this.asstypeShow = false;
|
||
// }
|
||
},
|
||
|
||
handlerNavigate(item) {
|
||
console.log(item);
|
||
uni.navigateTo({
|
||
url: item.path,
|
||
});
|
||
},
|
||
async handlerDraw() {
|
||
uni.showLoading({ title: "数据提交中" });
|
||
let { formData } = this.$data;
|
||
// if (formData.money <= 0 || formData.tudiduihuan <= 0) return this.$toast('请输入正确的提现金额');
|
||
if (!formData.bankCardId) return this.$toast("请输入选择银行卡");
|
||
if (!formData.assetType) return this.$toast("请选择提现类型");
|
||
if (formData.assetType === 5) {
|
||
if (this.blMoney < this.formData.money)
|
||
return this.$toast("槟榔券不足");
|
||
} else if(formData.assetType === 6) {
|
||
if (this.bldfMoney < this.formData.money)
|
||
return this.$toast("槟榔兑付不足");
|
||
}
|
||
if (this.formData.assetType == 4) {
|
||
let check_ = await this.checkApi(formData);
|
||
formData = { ...formData, ...check_.data };
|
||
}
|
||
let res = await widthDraw(formData);
|
||
let { code } = res;
|
||
if (code == 200)
|
||
this.$toast("提现成功", () => {
|
||
uni.hideLoading();
|
||
uni.navigateBack();
|
||
});
|
||
},
|
||
//如果是土地兑付,走一次打赏再走widthDraw
|
||
checkApi(formData) {
|
||
return new Promise((resolve, reject) => {
|
||
tudicheckapi(formData)
|
||
.then((res) => {
|
||
resolve(res);
|
||
})
|
||
.catch((err) => {
|
||
uni.hideLoading();
|
||
uni.showToast({
|
||
title: err.msg || "当前错误",
|
||
icon: "none",
|
||
});
|
||
reject();
|
||
});
|
||
});
|
||
},
|
||
handlerSelect() {
|
||
// uni.navigateTo({
|
||
// url: '/pages/mine/account/bankList?isSelect=1'
|
||
// })
|
||
},
|
||
handlerItem(item, index) {
|
||
this.value = index;
|
||
},
|
||
assetTypehandlerItem(item, index) {
|
||
this.assetTypeVale = index;
|
||
},
|
||
//选项框中的确认 将银行卡选择和提现类型选项通过参数分开 showType 1表示 银行卡 2 提现类型
|
||
handlerConfirm(showType) {
|
||
console.log(this.value);
|
||
if (showType == 1) {
|
||
if (this.value == null) return this.$toast("请选择银行卡");
|
||
if (!this.bankList.length) return this.$toast("请先绑定银行卡");
|
||
|
||
this.selectItem = this.bankList[this.value];
|
||
this.formData.bankCardId = this.selectItem.id;
|
||
this.show = false;
|
||
} else if (showType == 2) {
|
||
if (this.assetTypeValue == null) return this.$toast("请选择提现类型");
|
||
if (!this.assetTypeList.length)
|
||
return this.$toast("没有获取到提现类型");
|
||
|
||
this.asstTypeSellectItem = this.assetTypeList[this.assetTypeValue];
|
||
this.formData.assetType = this.asstTypeSellectItem.assetType;
|
||
|
||
this.asstypeShow = false;
|
||
}
|
||
},
|
||
handlerChange(e) {
|
||
console.log(e);
|
||
this.value = e;
|
||
},
|
||
assetTypehandlerChange(e) {
|
||
console.log("更换按钮");
|
||
console.log(e);
|
||
this.assetTypeValue = e;
|
||
console.log("此时");
|
||
console.log(this.assetTypeValue);
|
||
console.log("----");
|
||
},
|
||
async getUserBalance() {
|
||
let res = await getUserBalance();
|
||
if (res.code == 200) {
|
||
this.blMoney = res.data.bl_money;
|
||
this.bldfMoney = res.data.bl_df_money;
|
||
}
|
||
|
||
console.log("res", res);
|
||
},
|
||
async getBankList() {
|
||
let res = await getBankList(this.page);
|
||
let { code, rows } = res;
|
||
|
||
if (code == 200) {
|
||
if (rows === 0) {
|
||
uni.showModal({
|
||
title: "提示",
|
||
content: "暂未绑定银行卡",
|
||
cancelColor: "取消",
|
||
confirmText: "去绑定",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.navigateTo({
|
||
url: "/pages/licai/mine/account/bindBank",
|
||
});
|
||
}
|
||
},
|
||
});
|
||
//todo 弹出对话框"暂未绑定银行卡" "去绑定" "取消" 选择"去绑定" 则跳转绑定银行卡 绑定结束后跳回这个页面 取消 关闭窗口
|
||
}
|
||
|
||
rows.forEach((item) => {
|
||
item.number = item.bankCardNumber
|
||
.replace(/\s/g, "")
|
||
.replace(/(\d{4})(?=\d)/g, "$1 ");
|
||
});
|
||
this.bankList = [...this.bankList, ...rows];
|
||
}
|
||
},
|
||
|
||
// 提现类型加载
|
||
getAssetTypeList() {
|
||
this.assetTypeList = [
|
||
{ assetType: 5, assetTypeName: "槟榔券" },
|
||
{ assetType: 6, assetTypeName: "槟榔兑付" },
|
||
];
|
||
},
|
||
},
|
||
|
||
props: {
|
||
// 是否显示加载
|
||
// show:{
|
||
// type:Boolean,
|
||
// default(){
|
||
// return true
|
||
// }
|
||
// },
|
||
// 显示的图标类型
|
||
type: {
|
||
type: String,
|
||
default() {
|
||
return "round";
|
||
},
|
||
},
|
||
// 加载动画的文字
|
||
loadTxt: {
|
||
type: String,
|
||
default() {
|
||
return "加载中";
|
||
},
|
||
},
|
||
// 加载遮罩的背景,可选值为white
|
||
shadowBg: {
|
||
type: String,
|
||
default() {
|
||
return "black";
|
||
},
|
||
},
|
||
// 显示图标颜色,type值为rect或round才可改背景颜色
|
||
iconBg: {
|
||
type: String,
|
||
default() {
|
||
return "#167BEF";
|
||
},
|
||
},
|
||
// 加载文字颜色
|
||
color: {
|
||
type: String,
|
||
default() {
|
||
return "#434343";
|
||
},
|
||
},
|
||
// 是否开启加载文字闪烁
|
||
animateTxt: {
|
||
type: Boolean,
|
||
default() {
|
||
return true;
|
||
},
|
||
},
|
||
},
|
||
};
|
||
</script>
|
||
|