uniapp/bundle/pages/user_withdraw/user_withdraw.vue
2025-08-06 17:17:48 +08:00

443 lines
14 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="user-withdraw">
<view class="user-tab-container">
<tabs :active="active" :line-width="40" @change="onChange" :config="{itemWidth: 200}">
<tab :title="item.name" :name="item.value" v-for="(item, index) in widthDrawWay" :key="index">
<template v-if="item.value == 1 || item.value == 2">
<view class="bg-white withdraw-container mt20">
<view class="input row-center">
<view style="font-size: 23px;align-self: flex-end;margin-bottom: 5px">¥</view>
<input v-model="money" placeholder="0.00"></input>
<view class="column" style="flex: none;">
<view class="xs primary" style="text-align: right;" @tap="allWithdraw">全部提现</view>
<view class="xs" style="color: #BBBBBB">可提现余额{{widthDrawConfig.able_withdraw}}
</view>
</view>
</view>
<view class="tips mt20 muted row xs" v-if="item.value == 2">
提示提现需扣除服务费{{widthDrawConfig.poundage_percent}}%请自行缴纳税款
<!-- <view class="primary ml10">¥ {{widthDrawConfig.able_withdraw}}</view> -->
</view>
</view>
<view class="withdraw-btn bg-primary lg white row-center" @tap="applyWithdrawFun(item.value)">
确认提现</view>
<navigator url="/bundle/pages/user_withdraw_code/user_withdraw_code" hover-class="none"
class="mt20 nr lighter row-center">提现记录</navigator>
</template>
<template v-if="item.value == 3">
<view class="bg-white form-container">
<view class="input-item row md">
<view class="input-label ">微信账号</view>
<input v-model="account" placeholder="请输入微信账号"></input>
</view>
<view class="input-item row md">
<view class="input-label ">真实姓名</view>
<input v-model="realName" placeholder="请输入真实姓名"></input>
</view>
<view class="input-item row md">
<view class="input-label ">备注</view>
<input v-model="remark" placeholder="(选填)"></input>
</view>
<view class="uploader-container row mt20">
<uploader @after-read="afterRead" :file-list="fileList" :max-upload="1"
:deletable="true" useSlot @delete="handleDelete">
<view>
<view class="upload-area row-center">
<image src="/static/images/uploader_icon.png"></image>
</view>
<view class="mt10 normal nr" style="line-height: 36rpx;text-align: center;">
微信收款码</view>
</view>
</uploader>
</view>
</view>
<view class="bg-white withdraw-container mt10">
<view class="input row-center">
<view style="font-size: 23px;align-self: flex-end;margin-bottom: 5px">¥</view>
<input v-model="money" placeholder="0.00"></input>
<view class="column" style="flex: none;">
<view class="xs primary" style="text-align: right;" @tap="allWithdraw">全部提现</view>
<view class="xs" style="color: #BBBBBB">可提现余额{{widthDrawConfig.able_withdraw}}
</view>
</view>
</view>
<view class="tips mt10 muted row xs">
提示提现需扣除服务费{{widthDrawConfig.poundage_percent}}%请自行缴纳税款
<!-- <view class="primary ml5">¥ {{widthDrawConfig.able_withdraw}}</view> -->
</view>
</view>
<view class="withdraw-btn bg-primary lg white row-center" @tap="applyWithdrawFun(item.value)">
确认提现</view>
<navigator url="/bundle/pages/user_withdraw_code/user_withdraw_code" hover-class="none"
class="mt20 nr lighter row-center">提现记录</navigator>
</template>
<template v-if="item.value == 4">
<view class="bg-white form-container">
<view class="input-item row md">
<view class="input-label ">支付宝账号</view>
<input v-model="account" placeholder="请输入支付宝账号"></input>
</view>
<view class="input-item row md">
<view class="input-label ">真实姓名</view>
<input v-model="realName" placeholder="请输入真实姓名"></input>
</view>
<view class="input-item row md">
<view class="input-label ">备注</view>
<input v-model="remark" placeholder="(选填)"></input>
</view>
<view class="uploader-container row mt20">
<uploader @after-read="afterRead" :file-list="fileList" :max-upload="1"
:deletable="true" useSlot @delete="handleDelete">
<view class="column-center">
<view class="upload-area row-center">
<image src="/static/images/uploader_icon.png"></image>
</view>
<view class="mt10 normal nr" style="line-height: 36rpx;text-align: center;">
支付宝收款码</view>
</view>
</uploader>
</view>
</view>
<view class="bg-white withdraw-container mt10">
<view class="input row-center">
<view style="font-size: 23px;align-self: flex-end;margin-bottom: 5px">¥</view>
<input v-model="money" placeholder="0.00"></input>
<view class="column" style="flex: none;">
<view class="xs primary" style="text-align: right;" @tap="allWithdraw">全部提现</view>
<view class="xs" style="color: #BBBBBB">可提现余额{{widthDrawConfig.able_withdraw}}
</view>
</view>
</view>
<view class="tips mt10 muted row xs">
提示提现需扣除服务费{{widthDrawConfig.poundage_percent}}%请自行缴纳税款
<!-- <view class="primary ml5">¥ {{widthDrawConfig.able_withdraw}}</view> -->
</view>
</view>
<view class="withdraw-btn bg-primary lg white row-center" @tap="applyWithdrawFun(item.value)">
确认提现</view>
<navigator url="/bundle/pages/user_withdraw_code/user_withdraw_code" hover-class="none"
class="mt20 nr lighter row-center">
提现记录
</navigator>
</template>
<template v-if="item.value == 5">
<view class="bg-white form-container">
<view class="input-item row md">
<view class="input-label ">银行卡账号</view>
<input v-model="account" placeholder="请输入银行卡账号"></input>
</view>
<view class="input-item row md">
<view class="input-label ">真实姓名</view>
<input v-model="realName" placeholder="请输入真实姓名"></input>
</view>
<view class="input-item row md">
<view class="input-label ">提现银行</view>
<input v-model="bank" placeholder="请输入提现银行"></input>
</view>
<view class="input-item row md">
<view class="input-label ">银行支行</view>
<input v-model="subbank" placeholder="请输入银行支行"></input>
</view>
<view class="input-item row md">
<view class="input-label ">备注</view>
<input v-model="remark" placeholder="(选填)"></input>
</view>
</view>
<view class="bg-white withdraw-container mt10">
<view class="input row-center">
<view style="font-size: 23px;align-self: flex-end;margin-bottom: 5px">¥</view>
<input v-model="money" placeholder="0.00"></input>
<view class="column" style="flex: none;">
<view class="xs primary" style="text-align: right;" @tap="allWithdraw">全部提现</view>
<view class="xs" style="color: #BBBBBB">可提现余额{{widthDrawConfig.able_withdraw}}
</view>
</view>
</view>
<view class="tips mt10 muted row xs">
提示提现需扣除服务费{{widthDrawConfig.poundage_percent}}%请自行缴纳税款
<!-- <view class="primary ml5">¥ {{widthDrawConfig.able_withdraw}}</view> -->
</view>
</view>
<view class="withdraw-btn bg-primary lg white row-center" @tap="applyWithdrawFun(item.value)">
确认提现</view>
<navigator url="/bundle/pages/user_withdraw_code/user_withdraw_code" hover-class="none"
class="mt20 nr lighter row-center">
提现记录
</navigator>
</template>
</tab>
</tabs>
</view>
</view>
</template>
<script>
// +----------------------------------------------------------------------
// | LikeShop100%开源免费商用电商系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用,保留版权即可
// | 商业版本务必购买商业授权,以免引起法律纠纷
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | Gitee下载https://gitee.com/likeshop_gitee/likeshop
// | 访问官网https://www.likemarket.net
// | 访问社区https://home.likemarket.net
// | 访问手册http://doc.likemarket.net
// | 微信公众号:好象科技
// | 好象科技开发团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | Author: LikeShopTeam
// +----------------------------------------------------------------------
import {
applyWithdraw,
getWithdrawConfig
} from "@/api/user";
import {
uploadFile,
trottle
} from "@/utils/tools";
import {
baseURL
} from '@/config/app';
import {
withdrawType
} from "@/utils/type"
export default {
data() {
return {
active: 0,
money: '',
account: '',
realName: '',
bank: '',
subbank: '',
qrCode: '',
remark: '',
fileList: [],
widthDrawConfig: {},
widthDrawWay: []
};
},
components: {},
props: {},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function(options) {
this.getWithdrawConfigFun();
this.applyWithdrawFun = trottle(this.applyWithdrawFun, 1000, this)
},
methods: {
allWithdraw(e) {
const {
widthDrawConfig
} = this;
console.log(widthDrawConfig, "widthDrawConfig")
this.money = widthDrawConfig.able_withdraw.toString()
},
onChange(e) {
this.active = e
this.account = "";
this.realName = "";
this.qrCode = "";
this.remark = ""
this.fileList = [];
},
getWithdrawConfigFun() {
getWithdrawConfig().then(res => {
if (res.code == 1) {
this.widthDrawConfig = res.data
this.widthDrawWay = res.data.type
}
});
},
afterRead(e) {
const file = e;
uni.showLoading({
title: '正在上传中...',
mask: true
});
file.forEach(item => {
uploadFile(item.path).then(res => {
uni.hideLoading();
this.fileList.push(res);
this.qrCode = res.url;
});
})
},
handleDelete(index) {
this.fileList.splice(index, 1)
},
// 申请提现
applyWithdrawFun(type) {
let {
active,
account,
realName,
qrCode,
remark,
money,
bank,
subbank,
widthDrawWay
} = this;
console.log(realName, "###", active, "###", money);
switch (parseInt(type)) {
case withdrawType.ACCOUNT:
break;
case withdrawType.WECHAT:
break
case withdrawType.PAY_WECHAT:
case withdrawType.PAY_ALIPAY:
if (!account) return this.$toast({
title: '请输入账户信息'
})
if (!realName) return this.$toast({
title: '请输入真实姓名'
})
if (!qrCode) return this.$toast({
title: '请上传收款码'
})
break;
case withdrawType.BANK:
if (!account) return this.$toast({
title: '请输入账户信息'
})
if (!realName) return this.$toast({
title: '请输入真实姓名'
})
if (!bank) return this.$toast({
title: '请输入提现银行'
})
if (!subbank) return this.$toast({
title: '请输入银行支行'
})
}
if (!money) {
this.$toast({
title: '请输入提现金额'
});
return;
}
const data = {
type: widthDrawWay[active].value,
money: money,
account: account,
real_name: realName,
money_qr_code: qrCode,
remark: remark,
bank,
subbank
};
applyWithdraw(data).then(res => {
if (res.code == 1) {
this.$toast({
title: '提交成功'
}, {
tab: 2,
url: '/bundle/pages/widthdraw_result/widthdraw_result?id=' + res.data.id
});
}
});
}
}
};
</script>
<style lang="scss">
.van-tabs .van-tabs__wrap {
border-radius: 10rpx;
}
.van-tabs__line {
background: linear-gradient(90deg, #F79C0C 0%, #FF2C3C 100%);
bottom: 8rpx !important;
/* width: 50rpx !important; */
height: 6rpx !important;
border-radius: 100rpx;
}
.user-withdraw {
.user-tab-container {
padding: 20rpx 30rpx;
::v-deep .scroll-view-h {
background-color: #FFFFFF;
}
.withdraw-container {
padding: 52rpx 72rpx;
border-radius: 20rpx;
.input {
border-bottom: $-solid-border;
input {
width: 100%;
height: 94rpx;
text-align: left;
font-size: 66rpx;
margin-left: 30rpx;
}
}
}
.withdraw-btn {
background: linear-gradient(80deg, #F95F2F 0%, #FF2C3C 100%);
line-height: 44rpx;
height: 84rpx;
margin-top: 30rpx;
border-radius: 100rpx;
}
.form-container {
border-radius: 20rpx;
padding: 0 36rpx 26rpx;
line-height: 36rpx;
margin-top: 10rpx;
.input-item {
padding: 28rpx 0 30rpx;
border-bottom: $-solid-border;
}
.input-label {
width: 200rpx;
text-align: left;
line-height: 36rpx;
}
input {
flex: 1;
}
.uploader-container {
.upload-area {
width: 160rpx;
height: 160rpx;
border: 4rpx dashed #E5E5E5;
border-radius: 10rpx;
image {
width: 54rpx;
height: 44rpx;
}
}
}
}
}
}
</style>