You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
416 lines
10 KiB
416 lines
10 KiB
<template>
|
|
<view v-if="!isLoading" class="container b-f">
|
|
|
|
<!-- 头部背景图 -->
|
|
<view class="dealer-bg">
|
|
<image class="image" mode="widthFix" :src="background"></image>
|
|
</view>
|
|
|
|
<view class="widget-body">
|
|
<form @submit="handleSubmit">
|
|
<!-- 提现佣金 -->
|
|
<view class="widget widget__capital m-top20 b-f dis-flex flex-dir-column">
|
|
<view class="capital__item dis-flex flex-x-between flex-y-center">
|
|
<view class="item__left">{{ words.capital.value }}:</view>
|
|
<view class="item__right c-violet">
|
|
<text class="f-24">¥</text>
|
|
<text class="f-34">{{ dealer.money }}</text>
|
|
</view>
|
|
</view>
|
|
<view class="capital__item dis-flex flex-y-center">
|
|
<view class="item__left">{{ words.money.value }}:</view>
|
|
<view class="item__right flex-box">
|
|
<input class="input" v-model="inputValue" type="digit" name="money" @blur="wordsAmount"
|
|
:placeholder="words.money_placeholder.value" />
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<!-- 最低提现金额 -->
|
|
<view class="capital__lowest m-top20 col-7 t-r">
|
|
{{ words.min_money.value }}{{ settlement.min_money }}元
|
|
</view>
|
|
|
|
<!-- 提现方式 -->
|
|
<view class="widget widget__form m-top20 b-f dis-flex flex-dir-column">
|
|
<view class="form__title f-28">提现方式</view>
|
|
<view class="form__box">
|
|
<block v-for="(item, index) in settlement.pay_type" :key="index">
|
|
<block v-if="item == PayTypeEnum.WECHAT.value">
|
|
<!-- 微信支付 -->
|
|
<view class="form__field dis-flex flex-y-center">
|
|
<view class="form__radio dis-flex flex-y-center"
|
|
@click="handleChecked(PayTypeEnum.WECHAT.value)">
|
|
<text class="radio__icon iconfont icon-radio"
|
|
:class="[payment == PayTypeEnum.WECHAT.value ? 'c-violet' : 'col-bb']"></text>
|
|
<text class="f-28">{{ PayTypeEnum.WECHAT.name }}</text>
|
|
</view>
|
|
</view>
|
|
</block>
|
|
<block v-if="item == PayTypeEnum.ALIPAY.value">
|
|
<!-- 支付宝 -->
|
|
<view class="form__field dis-flex flex-y-center">
|
|
<view class="form__radio dis-flex flex-y-center"
|
|
@click="handleChecked(PayTypeEnum.ALIPAY.value)">
|
|
<text class="radio__icon iconfont icon-radio"
|
|
:class="[payment == PayTypeEnum.ALIPAY.value ? 'c-violet' : 'col-bb']"></text>
|
|
<text class="f-28">{{ PayTypeEnum.ALIPAY.name }}</text>
|
|
</view>
|
|
</view>
|
|
<block v-if="payment == PayTypeEnum.ALIPAY.value">
|
|
<view class="form__field">
|
|
<view class="field-input">
|
|
<input class="input" name="alipay_name" placeholder="请输入真实姓名" />
|
|
</view>
|
|
</view>
|
|
<view class="form__field">
|
|
<view class="field-input">
|
|
<input class="input" name="alipay_account" placeholder="请输入支付宝账号" />
|
|
</view>
|
|
</view>
|
|
</block>
|
|
</block>
|
|
<block v-if="item == PayTypeEnum.BANK_CARD.value">
|
|
<!-- 银行卡 -->
|
|
<view class="form__field dis-flex flex-y-center">
|
|
<view class="form__radio dis-flex flex-y-center"
|
|
@click="handleChecked(PayTypeEnum.BANK_CARD.value)">
|
|
<text class="radio__icon iconfont icon-radio"
|
|
:class="[payment == PayTypeEnum.BANK_CARD.value ? 'c-violet' : 'col-bb']"></text>
|
|
<text class="f-28">{{ PayTypeEnum.BANK_CARD.name }}</text>
|
|
</view>
|
|
</view>
|
|
<block v-if="payment == PayTypeEnum.BANK_CARD.value">
|
|
<view class="form__field">
|
|
<view class="field-input">
|
|
<input class="input" name="bank_name" placeholder="请输入真实姓名" />
|
|
</view>
|
|
</view>
|
|
<view class="form__field">
|
|
<view class="field-input">
|
|
<input class="input" name="bank_account" placeholder="请输入开户行名称/地址" />
|
|
</view>
|
|
</view>
|
|
<view class="form__field">
|
|
<view class="field-input">
|
|
<input class="input" name="bank_card" placeholder="请输入银行卡号" />
|
|
</view>
|
|
</view>
|
|
</block>
|
|
</block>
|
|
</block>
|
|
</view>
|
|
</view>
|
|
<!-- 提交申请 -->
|
|
<view class="form-submit dis-flex flex-x-center">
|
|
<button formType="submit" :disabled="disabled">{{ words.submit.value }}</button>
|
|
</view>
|
|
</form>
|
|
</view>
|
|
<addShuiyin />
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import * as DealerApi from '@/api/dealer'
|
|
import * as WithdrawApi from '@/api/dealer/withdraw'
|
|
import SettingModel from '@/common/model/dealer/Setting'
|
|
import {
|
|
PayTypeEnum
|
|
} from '@/common/enum/dealer/withdraw'
|
|
|
|
export default {
|
|
data() {
|
|
return {
|
|
// 枚举类
|
|
PayTypeEnum,
|
|
// 正在加载
|
|
isLoading: true,
|
|
// 分销商用户信息
|
|
dealer: undefined,
|
|
// 当前提现方式(选中的)
|
|
payment: undefined,
|
|
// 分销结算设置
|
|
settlement: undefined,
|
|
// 文字设置
|
|
words: undefined,
|
|
// 背景图
|
|
background: undefined,
|
|
// 按钮禁用
|
|
disabled: false,
|
|
inputValue: null
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad(options) {
|
|
this.getSetting()
|
|
this.getDealer()
|
|
},
|
|
|
|
methods: {
|
|
wordsAmount(e) {
|
|
let amount = e.detail.value
|
|
let num = null
|
|
num = amount.replace(new RegExp('^(\\d+\\.\\d{2}).+'), '$1')
|
|
const startPoint = /^\./g
|
|
if (startPoint.test(num)) {
|
|
num = amount.replace(startPoint, '0.')
|
|
}
|
|
if (num && !num.includes('.') && num !== '0') {
|
|
num = +num
|
|
}
|
|
const morePoint = /\.+(\d*|\.+)\./g
|
|
if (morePoint.test(num)) {
|
|
num = amount
|
|
.replace(/\.{2,}/g, ".")
|
|
.replace(".", "$#$")
|
|
.replace(/\./g, "")
|
|
.replace("$#$", ".")
|
|
}
|
|
if (Number(this.dealer.money) == 0) {
|
|
uni.showToast({
|
|
title: `暂无可提现金额`,
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
this.inputValue = ''
|
|
this.$forceUpdate();
|
|
} else if (Number(this.settlement.min_money) > num) { // 判断value值是否小于等于100, 如果大于100限制输入100
|
|
uni.showToast({
|
|
title: `最低可提现金额为${Number(this.settlement.min_money)}元, 请重新输入`,
|
|
icon: 'none',
|
|
duration: 2000
|
|
})
|
|
this.inputValue = ''
|
|
this.$forceUpdate();
|
|
} else {
|
|
if (!num) { // 判断value值是否等于空,为空amount默认0,
|
|
this.inputValue = ''
|
|
this.$forceUpdate();
|
|
}
|
|
}
|
|
},
|
|
// 获取分销设置
|
|
getSetting() {
|
|
const app = this
|
|
SettingModel.data()
|
|
.then(setting => {
|
|
// 赋值属性
|
|
app.payment = setting.settlement.pay_type[0]
|
|
app.settlement = setting.settlement
|
|
app.words = setting.words.withdraw_apply.words
|
|
app.background = setting.background.withdraw_apply
|
|
// 设置当前页面标题
|
|
app.setPageTitle(setting.words.withdraw_apply.title)
|
|
})
|
|
},
|
|
|
|
// 获取分销商
|
|
getDealer() {
|
|
const app = this
|
|
app.isLoading = true
|
|
DealerApi.user()
|
|
.then(result => app.dealer = result.data.dealer)
|
|
.finally(() => app.isLoading = false)
|
|
},
|
|
|
|
// 设置当前页面标题
|
|
setPageTitle(title) {
|
|
uni.setNavigationBarTitle({
|
|
title: title.value
|
|
})
|
|
},
|
|
|
|
// 切换支付选项
|
|
handleChecked(value) {
|
|
this.payment = value
|
|
},
|
|
|
|
// 表单提交
|
|
handleSubmit({
|
|
detail
|
|
}) {
|
|
const app = this
|
|
// 表单验证
|
|
// if (!app.onValidation(detail.value)) {
|
|
// return false
|
|
// }
|
|
// 确认是否提交
|
|
uni.showModal({
|
|
title: '友情提示',
|
|
content: '确定提交提现申请吗?请确认填写无误',
|
|
showCancel: true,
|
|
success(res) {
|
|
if (res.confirm) {
|
|
app.onSubmit(detail.value)
|
|
} else if (res.cancel) {
|
|
app.disabled = false
|
|
}
|
|
}
|
|
})
|
|
},
|
|
|
|
// 提交提现申请
|
|
onSubmit(data) {
|
|
const app = this
|
|
app.disabled = true
|
|
data.pay_type = app.payment
|
|
WithdrawApi.submit({
|
|
form: data
|
|
})
|
|
.then(result => {
|
|
app.$toast(result.message)
|
|
setTimeout(() => uni.navigateBack(), 1200)
|
|
})
|
|
.finally(() => app.disabled = false)
|
|
},
|
|
|
|
// 表单验证
|
|
onValidation(data) {
|
|
const app = this
|
|
const words = app.words
|
|
// 验证可提现佣金
|
|
if (app.dealer.money <= 0) {
|
|
app.$error('当前没有' + words.capital.value)
|
|
return false
|
|
}
|
|
// 验证提现金额
|
|
if (!data.money || data.money.length < 1) {
|
|
app.$error('请填写' + words.money.value)
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
page {
|
|
background: #fff;
|
|
}
|
|
</style>
|
|
<style lang="scss" scoped>
|
|
.input {
|
|
display: block;
|
|
}
|
|
|
|
.c-violet {
|
|
color: #786cff;
|
|
}
|
|
|
|
.col-bb {
|
|
color: #bbb;
|
|
}
|
|
|
|
.dealer-bg {
|
|
.image {
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
.widget-body {
|
|
position: relative;
|
|
width: 88%;
|
|
margin: 0 auto;
|
|
|
|
.widget {
|
|
box-sizing: border-box;
|
|
box-shadow: 0 6rpx 20rpx rgba(0, 0, 0, 0.11);
|
|
border-radius: 12rpx;
|
|
}
|
|
}
|
|
|
|
// 提现金额
|
|
.widget__capital {
|
|
padding: 10rpx 0;
|
|
margin-top: -60rpx;
|
|
|
|
.capital__item {
|
|
height: 80rpx;
|
|
padding: 10rpx 35rpx;
|
|
font-size: 28rpx;
|
|
border-bottom: 1rpx solid #e7e7e7;
|
|
box-sizing: border-box;
|
|
|
|
&:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.item__left {
|
|
margin-right: 20rpx;
|
|
}
|
|
|
|
.item__right {
|
|
.input {
|
|
font-size: 28rpx;
|
|
text-align: right;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.capital__lowest {
|
|
padding-right: 20rpx;
|
|
box-sizing: border-box;
|
|
font-size: 26rpx;
|
|
}
|
|
|
|
// 提现方式
|
|
.widget__form {
|
|
padding: 10rpx 0 20rpx 0;
|
|
|
|
.form__title {
|
|
padding: 16rpx 35rpx;
|
|
border-bottom: 1rpx solid #f3f3f3;
|
|
}
|
|
|
|
.form__box {
|
|
padding: 20rpx 35rpx;
|
|
}
|
|
|
|
.form__field {
|
|
height: 80rpx;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
font-size: 28rpx;
|
|
margin-bottom: 10rpx;
|
|
|
|
.radio__icon {
|
|
font-size: 38rpx;
|
|
margin-right: 12rpx;
|
|
}
|
|
|
|
.field-input {
|
|
.input {
|
|
background-color: #f9f9f9;
|
|
padding: 16rpx 20rpx;
|
|
font-size: 28rpx;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// 提交申请
|
|
.form-submit {
|
|
margin-top: 40rpx;
|
|
|
|
button {
|
|
font-size: 30rpx;
|
|
background: #786cff;
|
|
border: 1rpx solid #786cff;
|
|
color: white;
|
|
border-radius: 50rpx;
|
|
padding: 0 120rpx;
|
|
}
|
|
|
|
button[disabled] {
|
|
background: #8e84fc;
|
|
border-color: #8e84fc;
|
|
color: white;
|
|
}
|
|
}
|
|
</style>
|
|
|