✨ 分销提现:基本接入 50%
parent
ab48b4d640
commit
bc6ac22ce2
|
@ -106,7 +106,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, reactive, unref, watchPostEffect, watch } from 'vue';
|
import { ref, reactive, unref, watch } from 'vue';
|
||||||
import sheep from '@/sheep';
|
import sheep from '@/sheep';
|
||||||
import { realName, bankName, bankCode, alipayAccount } from '@/sheep/validate/form';
|
import { realName, bankName, bankCode, alipayAccount } from '@/sheep/validate/form';
|
||||||
|
|
||||||
|
|
|
@ -6,16 +6,21 @@
|
||||||
</view>
|
</view>
|
||||||
<view class="modal-content ss-flex-1 ss-p-b-100">
|
<view class="modal-content ss-flex-1 ss-p-b-100">
|
||||||
<radio-group @change="onChange">
|
<radio-group @change="onChange">
|
||||||
<label class="container-list ss-p-l-34 ss-p-r-24 ss-flex ss-col-center ss-row-center"
|
<label
|
||||||
v-for="(item, index) in typeList" :key="index">
|
class="container-list ss-p-l-34 ss-p-r-24 ss-flex ss-col-center ss-row-center"
|
||||||
|
v-for="(item, index) in typeList"
|
||||||
|
:key="index"
|
||||||
|
>
|
||||||
<view class="container-icon ss-flex ss-m-r-20">
|
<view class="container-icon ss-flex ss-m-r-20">
|
||||||
<image :src="sheep.$url.static(item.icon)" />
|
<image :src="sheep.$url.static(item.icon)" />
|
||||||
</view>
|
</view>
|
||||||
<view class="ss-flex-1">{{ item.title }}</view>
|
<view class="ss-flex-1">{{ item.title }}</view>
|
||||||
|
<radio
|
||||||
<radio :value="item.value" color="var(--ui-BG-Main)"
|
:value="item.value"
|
||||||
:checked="item.value === state.currentValue" />
|
color="var(--ui-BG-Main)"
|
||||||
<!-- :disabled="!methods.includes(item.value)" -->
|
:checked="item.value === state.currentValue"
|
||||||
|
:disabled="!methods.includes(parseInt(item.value))"
|
||||||
|
/>
|
||||||
</label>
|
</label>
|
||||||
</radio-group>
|
</radio-group>
|
||||||
</view>
|
</view>
|
||||||
|
@ -27,12 +32,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {
|
import { reactive } from 'vue';
|
||||||
reactive,
|
|
||||||
onBeforeMount,
|
|
||||||
nextTick,
|
|
||||||
ref
|
|
||||||
} from 'vue';
|
|
||||||
import sheep from '@/sheep';
|
import sheep from '@/sheep';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
@ -44,55 +44,38 @@
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
methods: {
|
methods: { // 开启的提现方式
|
||||||
type: Array,
|
type: Array,
|
||||||
default: [],
|
default: [],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const emits = defineEmits(['update:modelValue', 'change', 'close']);
|
const emits = defineEmits(['update:modelValue', 'change', 'close']);
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
currentValue: '0',
|
currentValue: '',
|
||||||
});
|
});
|
||||||
const typeList = reactive([{
|
|
||||||
// icon: '/static/img/shop/pay/wechat.png',
|
const typeList = [
|
||||||
title: '工商银行',
|
|
||||||
value: '0',
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
// icon: '/static/img/shop/pay/alipay.png',
|
// icon: '/static/img/shop/pay/wechat.png', // TODO 芋艿:后续给个 icon
|
||||||
title: '建设银行',
|
title: '钱包余额',
|
||||||
value: '1',
|
value: '1',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
// icon: '/static/img/shop/pay/bank.png',
|
icon: '/static/img/shop/pay/wechat.png',
|
||||||
title: '农业',
|
title: '微信零钱',
|
||||||
value: '2',
|
value: '2',
|
||||||
},
|
},
|
||||||
])
|
{
|
||||||
const getWalletAccountInfo = async () => {
|
icon: '/static/img/shop/pay/alipay.png',
|
||||||
return new Promise(async (resolve, reject) => {
|
title: '支付宝账户',
|
||||||
let res = await sheep.$api.user.account.info({
|
value: '3',
|
||||||
type: state.currentValue,
|
},
|
||||||
});
|
{
|
||||||
if (res.error === 0) {
|
icon: '/static/img/shop/pay/bank.png',
|
||||||
if (!props.methods.includes(res.data.type)) {
|
title: '银行卡转账',
|
||||||
return;
|
value: '4',
|
||||||
}
|
},
|
||||||
state.currentValue = res.data.type;
|
];
|
||||||
emits('update:modelValue', {
|
|
||||||
type: res.data.type,
|
|
||||||
account_header: res.data.account_header,
|
|
||||||
account_name: res.data.account_name,
|
|
||||||
account_no: res.data.account_no,
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
emits('update:modelValue', {
|
|
||||||
type: state.currentValue,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
resolve();
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
function onChange(e) {
|
function onChange(e) {
|
||||||
state.currentValue = e.detail.value;
|
state.currentValue = e.detail.value;
|
||||||
|
@ -103,17 +86,17 @@
|
||||||
sheep.$helper.toast('请选择提现方式');
|
sheep.$helper.toast('请选择提现方式');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await getWalletAccountInfo();
|
// 赋值
|
||||||
|
emits('update:modelValue', {
|
||||||
|
type: state.currentValue
|
||||||
|
});
|
||||||
|
// 关闭弹窗
|
||||||
emits('close');
|
emits('close');
|
||||||
};
|
};
|
||||||
|
|
||||||
const hideModal = () => {
|
const hideModal = () => {
|
||||||
emits('close');
|
emits('close');
|
||||||
};
|
};
|
||||||
|
|
||||||
onBeforeMount(async () => {
|
|
||||||
await getWalletAccountInfo();
|
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
|
@ -1,71 +1,119 @@
|
||||||
<template>
|
<template>
|
||||||
<s-layout title="申请提现" class="withdraw-wrap" navbar="inner">
|
<s-layout title="申请提现" class="withdraw-wrap" navbar="inner">
|
||||||
<!-- <view class="page-bg"></view> -->
|
<view class="page-bg"></view>
|
||||||
<!-- <view class="wallet-num-box ss-flex ss-col-center ss-row-between" :style="[
|
<view
|
||||||
|
class="wallet-num-box ss-flex ss-col-center ss-row-between"
|
||||||
|
:style="[
|
||||||
{
|
{
|
||||||
marginTop: '-' + Number(statusBarHeight + 88) + 'rpx',
|
marginTop: '-' + Number(statusBarHeight + 88) + 'rpx',
|
||||||
paddingTop: Number(statusBarHeight + 108) + 'rpx',
|
paddingTop: Number(statusBarHeight + 108) + 'rpx',
|
||||||
},
|
},
|
||||||
]">
|
]"
|
||||||
|
>
|
||||||
<view class="">
|
<view class="">
|
||||||
<view class="num-title">可提现金额(元)</view>
|
<view class="num-title">可提现金额(元)</view>
|
||||||
<view class="wallet-num">{{ userInfo.commission }}</view>
|
<view class="wallet-num">{{ fen2yuan(state.brokerageInfo.brokeragePrice) }}</view>
|
||||||
|
</view>
|
||||||
|
<button class="ss-reset-button log-btn" @tap="sheep.$router.go('/pages/pay/withdraw-log')">
|
||||||
|
提现记录
|
||||||
|
</button>
|
||||||
</view>
|
</view>
|
||||||
<button class="ss-reset-button log-btn" @tap="sheep.$router.go('/pages/pay/withdraw-log')">提现记录</button>
|
|
||||||
</view> -->
|
|
||||||
<!-- 提现输入卡片-->
|
<!-- 提现输入卡片-->
|
||||||
<view class="draw-card">
|
<view class="draw-card">
|
||||||
|
<view class="bank-box ss-flex ss-col-center ss-row-between ss-m-b-30">
|
||||||
|
<view class="name">提现至</view>
|
||||||
|
<view class="bank-list ss-flex ss-col-center" @tap="onAccountSelect(true)">
|
||||||
|
<view v-if="!state.accountInfo.type" class="empty-text">请选择提现方式</view>
|
||||||
|
<view v-if="state.accountInfo.type === '1'" class="empty-text">钱包余额</view>
|
||||||
|
<view v-if="state.accountInfo.type === '2'" class="empty-text">微信零钱</view>
|
||||||
|
<view v-if="state.accountInfo.type === '3'" class="empty-text">支付宝账户</view>
|
||||||
|
<view v-if="state.accountInfo.type === '4'" class="empty-text">银行卡转账</view>
|
||||||
|
<text class="cicon-forward" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<!-- 提现金额 -->
|
||||||
<view class="card-title">提现金额</view>
|
<view class="card-title">提现金额</view>
|
||||||
<view class="input-box ss-flex ss-col-center border-bottom">
|
<view class="input-box ss-flex ss-col-center border-bottom">
|
||||||
<view class="unit">¥</view>
|
<view class="unit">¥</view>
|
||||||
<uni-easyinput :inputBorder="false" class="ss-flex-1 ss-p-l-10" v-model="state.amount" type="number"
|
<uni-easyinput
|
||||||
placeholder="请输入提现金额" />
|
:inputBorder="false"
|
||||||
|
class="ss-flex-1 ss-p-l-10"
|
||||||
|
v-model="state.accountInfo.price"
|
||||||
|
type="number"
|
||||||
|
placeholder="请输入提现金额"
|
||||||
|
/>
|
||||||
</view>
|
</view>
|
||||||
<view class="card-title" v-show='txfag==1'>持卡人</view>
|
<!-- 提现账号 -->
|
||||||
<view class="input-box ss-flex ss-col-center border-bottom" v-show='txfag==1'>
|
<view class="card-title" v-show="['2', '3', '4'].includes(state.accountInfo.type)">
|
||||||
<view class="unit"></view>
|
提现账号
|
||||||
<uni-easyinput :inputBorder="false" class="ss-flex-1 ss-p-l-10" v-model="state.name"
|
|
||||||
placeholder="请输入持卡人姓名" />
|
|
||||||
</view>
|
</view>
|
||||||
<view class="card-title" v-show='txfag==1'>卡号</view>
|
<view
|
||||||
<view class="input-box ss-flex ss-col-center border-bottom" v-show='txfag==1'>
|
class="input-box ss-flex ss-col-center border-bottom"
|
||||||
<view class="unit"></view>
|
v-show="['2', '3', '4'].includes(state.accountInfo.type)"
|
||||||
<uni-easyinput :inputBorder="false" class="ss-flex-1 ss-p-l-10" v-model="state.accountNo"
|
>
|
||||||
placeholder="请输卡号" />
|
<view class="unit" />
|
||||||
|
<uni-easyinput
|
||||||
|
:inputBorder="false"
|
||||||
|
class="ss-flex-1 ss-p-l-10"
|
||||||
|
v-model="state.accountInfo.accountNo"
|
||||||
|
placeholder="请输入提现账号"
|
||||||
|
/>
|
||||||
</view>
|
</view>
|
||||||
<view class="card-title">收款码</view>
|
<!-- TODO 芋艿: -->
|
||||||
<view class="input-box ss-flex ss-col-center border-bottom">
|
<view class="card-title" v-show="['2', '3'].includes(state.accountInfo.type)">收款码</view>
|
||||||
<view class="unit"></view>
|
<view
|
||||||
<uni-easyinput :inputBorder="false" class="ss-flex-1 ss-p-l-10" v-model="state.accountQrCodeUrl"
|
class="input-box ss-flex ss-col-center border-bottom"
|
||||||
placeholder="请输收款码地址" />
|
v-show="['2', '3'].includes(state.accountInfo.type)"
|
||||||
|
>
|
||||||
|
<view class="unit" />
|
||||||
|
<uni-easyinput
|
||||||
|
:inputBorder="false"
|
||||||
|
class="ss-flex-1 ss-p-l-10"
|
||||||
|
v-model="state.accountInfo.accountQrCodeUrl"
|
||||||
|
placeholder="请输收款码地址"
|
||||||
|
/>
|
||||||
</view>
|
</view>
|
||||||
|
<!-- 持卡人姓名 -->
|
||||||
<view class="bank-box ss-flex ss-col-center ss-row-between ss-m-b-30" style='display:block'>
|
<view class="card-title" v-show="state.accountInfo.type === '4'">持卡人</view>
|
||||||
<view class="name">选择提现方式:</view>
|
<view
|
||||||
<!-- <view class="bank-list ss-flex ss-col-center" style="margin-left:auto" >
|
class="input-box ss-flex ss-col-center border-bottom"
|
||||||
<view class="empty-text">请选择提现方式</view>
|
v-show="state.accountInfo.type === '4'"
|
||||||
<text class="cicon-forward"></text>
|
>
|
||||||
</view> -->
|
<view class="unit" />
|
||||||
<uni-section title="单选" type="line">
|
<uni-easyinput
|
||||||
<view class="uni-px-5 uni-pb-5" style='font-size:28rpx'>
|
:inputBorder="false"
|
||||||
<uni-data-checkbox v-model="txfag" :localdata="txList"></uni-data-checkbox>
|
class="ss-flex-1 ss-p-l-10"
|
||||||
|
v-model="state.accountInfo.name"
|
||||||
|
placeholder="请输入持卡人姓名"
|
||||||
|
/>
|
||||||
</view>
|
</view>
|
||||||
</uni-section>
|
<!-- 提现银行 -->
|
||||||
</view>
|
<view class="card-title" v-show="state.accountInfo.type === '4'">提现银行</view>
|
||||||
<view class="bank-box ss-flex ss-col-center ss-row-between ss-m-b-30" v-show='txfag==1'>
|
<view
|
||||||
<view class="name">选择银行</view>
|
class="input-box ss-flex ss-col-center border-bottom"
|
||||||
<view class="bank-list ss-flex ss-col-center" @tap="onAccountSelect(true)">
|
v-show="state.accountInfo.type === '4'"
|
||||||
<view v-if="!state.accountInfo.type" class="empty-text">请选择提现方式</view>
|
>
|
||||||
<view v-if="state.accountInfo.type === '0'" class="empty-text">工商银行</view>
|
<view class="unit" />
|
||||||
<view v-if="state.accountInfo.type === '1'" class="empty-text">建设银行</view>
|
<uni-easyinput
|
||||||
<view v-if="state.accountInfo.type === '2'" class="empty-text">农业银行</view>
|
:inputBorder="false"
|
||||||
<text class="cicon-forward"></text>
|
class="ss-flex-1 ss-p-l-10"
|
||||||
</view>
|
v-model="state.accountInfo.bankName"
|
||||||
</view>
|
placeholder="请输入提现银行"
|
||||||
<view class="bind-box ss-flex ss-col-center ss-row-between" v-if="state.accountInfo.type">
|
/>
|
||||||
<view class="placeholder-text" v-if="state.accountInfo.account_name">
|
|
||||||
{{ state.accountInfo.account_header }}|{{ state.accountInfo.account_name }}
|
|
||||||
</view>
|
</view>
|
||||||
|
<!-- 开户地址 -->
|
||||||
|
<view class="card-title" v-show="state.accountInfo.type === '4'">开户地址</view>
|
||||||
|
<view
|
||||||
|
class="input-box ss-flex ss-col-center border-bottom"
|
||||||
|
v-show="state.accountInfo.type === '4'"
|
||||||
|
>
|
||||||
|
<view class="unit" />
|
||||||
|
<uni-easyinput
|
||||||
|
:inputBorder="false"
|
||||||
|
class="ss-flex-1 ss-p-l-10"
|
||||||
|
v-model="state.accountInfo.bankAddress"
|
||||||
|
placeholder="请输入开户地址"
|
||||||
|
/>
|
||||||
</view>
|
</view>
|
||||||
<button class="ss-reset-button save-btn ui-BG-Main-Gradient ui-Shadow-Main" @tap="onConfirm">
|
<button class="ss-reset-button save-btn ui-BG-Main-Gradient ui-Shadow-Main" @tap="onConfirm">
|
||||||
确认提现
|
确认提现
|
||||||
|
@ -75,178 +123,128 @@
|
||||||
<!-- 提现说明 -->
|
<!-- 提现说明 -->
|
||||||
<view class="draw-notice">
|
<view class="draw-notice">
|
||||||
<view class="title ss-m-b-30">提现说明</view>
|
<view class="title ss-m-b-30">提现说明</view>
|
||||||
<!-- <view class="draw-list" v-for="(rule, index) in state.rulesList" :key="index">
|
<view class="draw-list"> 最低提现金额 {{ fen2yuan(state.minPrice) }} 元 </view>
|
||||||
{{ index + 1 }}.{{ rule }}
|
|
||||||
</view>-->
|
|
||||||
<view class="draw-list">
|
<view class="draw-list">
|
||||||
当前可提现金额:<text>¥{{state.userGet.brokeragePrice}}</text>
|
冻结佣金:<text>¥{{ fen2yuan(state.brokerageInfo.frozenPrice) }}</text>
|
||||||
</view>
|
(每笔佣金的冻结期为 {{ state.frozenDays }} 天,到期后可提现)
|
||||||
<view class="draw-list">
|
|
||||||
冻结佣金:<text>¥{{state.userGet.frozenPrice}}</text>
|
|
||||||
</view>
|
|
||||||
<view class="draw-list">
|
|
||||||
说明:每笔佣金冻结期为0天,到期后可提现
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 选择提现账户 -->
|
<!-- 选择提现账户 -->
|
||||||
<account-type-select :show="state.accountSelect" @close="onAccountSelect(false)" round="10"
|
<account-type-select
|
||||||
v-model="state.accountInfo" :methods="state.rules.methods" />
|
:show="state.accountSelect"
|
||||||
<!-- 编辑账户信息 -->
|
@close="onAccountSelect(false)"
|
||||||
<account-info-modal v-if="state.accountInfo.type" v-model="state.accountInfo" :show="state.accountEdit"
|
round="10"
|
||||||
@close="onAccountEdit(false)" round="10" />
|
v-model="state.accountInfo"
|
||||||
|
:methods="state.withdrawTypes"
|
||||||
|
/>
|
||||||
</s-layout>
|
</s-layout>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {
|
import { computed, reactive, onBeforeMount, ref } from 'vue';
|
||||||
computed,
|
|
||||||
reactive,
|
|
||||||
onBeforeMount,ref
|
|
||||||
} from 'vue';
|
|
||||||
import sheep from '@/sheep';
|
import sheep from '@/sheep';
|
||||||
import accountTypeSelect from './components/account-type-select.vue';
|
import accountTypeSelect from './components/account-type-select.vue';
|
||||||
import accountInfoModal from './components/account-info-modal.vue';
|
import { fen2yuan } from '@/sheep/hooks/useGoods';
|
||||||
import {
|
import TradeConfigApi from '@/sheep/api/trade/config';
|
||||||
onPageScroll
|
import BrokerageApi from '@/sheep/api/trade/brokerage';
|
||||||
} from '@dcloudio/uni-app';
|
|
||||||
const headerBg = sheep.$url.css('/static/img/shop/user/withdraw_bg.png');
|
const headerBg = sheep.$url.css('/static/img/shop/user/withdraw_bg.png');
|
||||||
onPageScroll(() => {});
|
|
||||||
const statusBarHeight = sheep.$platform.device.statusBarHeight * 2;
|
const statusBarHeight = sheep.$platform.device.statusBarHeight * 2;
|
||||||
|
|
||||||
function filterRules(rules) {
|
|
||||||
let list = [];
|
|
||||||
let str1 = '';
|
|
||||||
if (rules.min_amount > 0) {
|
|
||||||
str1 += `最少 ${rules.min_amount}元; `;
|
|
||||||
}
|
|
||||||
if (rules.max_amount > 0) {
|
|
||||||
str1 += `最多 ${rules.max_amount}元;`;
|
|
||||||
}
|
|
||||||
if (str1 !== '') {
|
|
||||||
list.push('单次提现金额 ' + str1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rules.max_num > 0) {
|
|
||||||
list.push(`每${rules.num_unit === 'day' ? '天' : '月'}最多可提现 ${rules.max_num} 次;`);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rules.charge_rate_format > 0) {
|
|
||||||
list.push(`每次收取提现手续费 ${rules.charge_rate_format}%;`);
|
|
||||||
}
|
|
||||||
list.push(
|
|
||||||
`提现申请后将${rules.auto_arrival ? '自动' : '审核后'}到账, 到账结果请查收对应渠道服务通知;`,
|
|
||||||
);
|
|
||||||
list.push('如有疑问请及时联系客服.');
|
|
||||||
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
let txfag=ref(1)
|
|
||||||
const txList=[{text:'银行卡提现',value:1},{text:'微信提现',value:2},{text:'支付宝提现',value:3}]
|
|
||||||
function tixian(v){
|
|
||||||
console.log(v)
|
|
||||||
}
|
|
||||||
const userStore = sheep.$store('user');
|
const userStore = sheep.$store('user');
|
||||||
const userInfo = computed(() => userStore.userInfo);
|
const userInfo = computed(() => userStore.userInfo);
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
userGet: {},
|
accountInfo: {
|
||||||
accountNo: '',
|
// 提现表单
|
||||||
name: '',
|
type: undefined,
|
||||||
amount: '',
|
accountNo: undefined,
|
||||||
type: '',
|
accountQrCodeUrl: undefined,
|
||||||
accountInfo: {},
|
name: undefined,
|
||||||
accountSelect: false,
|
bankName: undefined,
|
||||||
accountEdit: false,
|
bankAddress: undefined,
|
||||||
rules: {
|
|
||||||
min_amount: 0,
|
|
||||||
max_amount: 0,
|
|
||||||
max_num: 0,
|
|
||||||
num_unit: 0,
|
|
||||||
charge_rate_format: 0,
|
|
||||||
charge_rate: 0,
|
|
||||||
methods: [],
|
|
||||||
},
|
},
|
||||||
rulesList: [],
|
|
||||||
accountQrCodeUrl:''
|
accountSelect: false,
|
||||||
|
|
||||||
|
brokerageInfo: {}, // 分销信息
|
||||||
|
|
||||||
|
frozenDays: 0, // 冻结天数
|
||||||
|
minPrice: 0, // 最低提现金额
|
||||||
|
withdrawTypes: [], // 提现方式
|
||||||
});
|
});
|
||||||
|
|
||||||
const onAccountEdit = (e) => {
|
// 打开提现方式的弹窗
|
||||||
state.accountEdit = e;
|
|
||||||
};
|
|
||||||
|
|
||||||
const onAccountSelect = (e) => {
|
const onAccountSelect = (e) => {
|
||||||
state.accountSelect = e;
|
state.accountSelect = e;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 提交提现
|
||||||
const onConfirm = async () => {
|
const onConfirm = async () => {
|
||||||
let payload = {
|
// 参数校验
|
||||||
accountNo: state.accountNo,
|
debugger;
|
||||||
name: state.name,
|
if (
|
||||||
bankName: state.accountInfo.type,
|
!state.accountInfo.price ||
|
||||||
type: txfag.value,
|
state.accountInfo.price > state.brokerageInfo.price ||
|
||||||
price: state.amount * 100,
|
state.accountInfo.price <= 0
|
||||||
accountQrCodeUrl:state.accountQrCodeUrl
|
) {
|
||||||
};
|
sheep.$helper.toast('请输入正确的提现金额');
|
||||||
console.log(payload);
|
return;
|
||||||
// return;
|
|
||||||
// if (payload.money > userInfo.commission || payload.money <= 0) {
|
|
||||||
// sheep.$helper.toast('请输入正确的提现金额');
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (!payload.type) {
|
|
||||||
// sheep.$helper.toast('请选择提现方式');
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (!payload.account_name || !payload.account_header || !payload.account_no) {
|
|
||||||
// sheep.$helper.toast('请完善您的账户信息');
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (sheep.$platform.name === 'H5' && payload.type === 'wechat') {
|
|
||||||
// sheep.$helper.toast('请使用微信浏览器操作');
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
let {
|
|
||||||
code,
|
|
||||||
msg,
|
|
||||||
data
|
|
||||||
} = await sheep.$api.pay.withdraw.apply(payload);
|
|
||||||
if (code === -1) {
|
|
||||||
sheep.$platform.useProvider('wechat').bind();
|
|
||||||
}
|
}
|
||||||
if (code === 0) {
|
if (!state.accountInfo.type) {
|
||||||
userStore.getInfo();
|
sheep.$helper.toast('请选择提现方式');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 提交请求
|
||||||
|
let { code } = await BrokerageApi.createBrokerageWithdraw({
|
||||||
|
...state.accountInfo,
|
||||||
|
price: state.accountInfo.price * 100,
|
||||||
|
});
|
||||||
|
if (code !== 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 提示
|
||||||
uni.showModal({
|
uni.showModal({
|
||||||
title: '操作成功',
|
title: '操作成功',
|
||||||
content: '您的提现申请已成功提交',
|
content: '您的提现申请已成功提交',
|
||||||
cancelText: '继续提现',
|
cancelText: '继续提现',
|
||||||
confirmText: '查看记录',
|
confirmText: '查看记录',
|
||||||
success: function(res) {
|
success: (res) => {
|
||||||
res.confirm && sheep.$router.go('/pages/pay/withdraw-log');
|
if (res.confirm) {
|
||||||
},
|
sheep.$router.go('/pages/pay/withdraw-log')
|
||||||
});
|
return;
|
||||||
}
|
}
|
||||||
|
getBrokerageUser();
|
||||||
|
state.accountInfo = {};
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 获得分销配置
|
||||||
async function getWithdrawRules() {
|
async function getWithdrawRules() {
|
||||||
let {
|
let { code, data } = await TradeConfigApi.getTradeConfig();
|
||||||
error,
|
if (code !== 0) {
|
||||||
data
|
return;
|
||||||
} = await sheep.$api.pay.withdraw.rules();
|
}
|
||||||
if (error === 0) {
|
if (data) {
|
||||||
state.rules = data;
|
state.minPrice = data.brokerageWithdrawMinPrice || 0;
|
||||||
state.rulesList = filterRules(state.rules);
|
state.frozenDays = data.brokerageFrozenDays || 0;
|
||||||
|
state.withdrawTypes = data.brokerageWithdrawTypes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onBeforeMount(async () => {
|
// 获得分销信息
|
||||||
|
async function getBrokerageUser() {
|
||||||
|
const { data, code } = await BrokerageApi.getBrokerageUser();
|
||||||
|
if (code === 0) {
|
||||||
|
state.brokerageInfo = data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onBeforeMount(() => {
|
||||||
getWithdrawRules();
|
getWithdrawRules();
|
||||||
let res = await sheep.$api.pay.withdraw.userGet();
|
getBrokerageUser()
|
||||||
state.userGet = res.data
|
})
|
||||||
});
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
|
@ -1,44 +0,0 @@
|
||||||
import request from '@/sheep/request';
|
|
||||||
|
|
||||||
export default {
|
|
||||||
// 发起提现
|
|
||||||
withdraw: {
|
|
||||||
list: (params) =>
|
|
||||||
request({
|
|
||||||
url: 'withdraw',
|
|
||||||
method: 'GET',
|
|
||||||
params,
|
|
||||||
custom: {
|
|
||||||
auth: true,
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
rules: () =>
|
|
||||||
request({
|
|
||||||
url: 'withdraw/rules',
|
|
||||||
method: 'GET',
|
|
||||||
custom: {
|
|
||||||
auth: true,
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
apply: (data) =>
|
|
||||||
request({
|
|
||||||
url: '/app-api/trade/brokerage-withdraw/create',
|
|
||||||
method: 'POST',
|
|
||||||
data,
|
|
||||||
custom: {
|
|
||||||
loadingMsg: '申请中',
|
|
||||||
// auth: true,
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
userGet: (params) =>
|
|
||||||
request({
|
|
||||||
url: '/app-api/trade/brokerage-user/get',
|
|
||||||
method: 'GET',
|
|
||||||
params,
|
|
||||||
// custom: {
|
|
||||||
// loadingMsg: '申请中',
|
|
||||||
// auth: true,
|
|
||||||
// },
|
|
||||||
}),
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -154,20 +154,18 @@
|
||||||
},
|
},
|
||||||
value(newVal) {
|
value(newVal) {
|
||||||
this.dataList = this.getDataList(newVal)
|
this.dataList = this.getDataList(newVal)
|
||||||
// TODO @芋艿:这块可能被错误的注释了,需要跟进下
|
|
||||||
// fix by mehaotian is_reset 在 uni-forms 中定义
|
// fix by mehaotian is_reset 在 uni-forms 中定义
|
||||||
// if(!this.is_reset){
|
if(!this.is_reset){
|
||||||
// this.is_reset = false
|
this.is_reset = false
|
||||||
// this.formItem && this.formItem.setValue(newVal)
|
this.formItem && this.formItem.setValue(newVal)
|
||||||
// }
|
}
|
||||||
},
|
},
|
||||||
modelValue(newVal) {
|
modelValue(newVal) {
|
||||||
this.dataList = this.getDataList(newVal);
|
this.dataList = this.getDataList(newVal);
|
||||||
// TODO @芋艿:这块可能被错误的注释了,需要跟进下
|
if(!this.is_reset){
|
||||||
// if(!this.is_reset){
|
this.is_reset = false
|
||||||
// this.is_reset = false
|
this.formItem && this.formItem.setValue(newVal)
|
||||||
// this.formItem && this.formItem.setValue(newVal)
|
}
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
@ -195,22 +193,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
// this.form = this.getForm('uniForms')
|
this.form = this.getForm('uniForms')
|
||||||
// this.formItem = this.getForm('uniFormsItem')
|
this.formItem = this.getForm('uniFormsItem')
|
||||||
// this.formItem && this.formItem.setValue(this.value)
|
// this.formItem && this.formItem.setValue(this.value)
|
||||||
|
|
||||||
// if (this.formItem) {
|
if (this.formItem) {
|
||||||
// this.isTop = 6
|
this.isTop = 6
|
||||||
// if (this.formItem.name) {
|
if (this.formItem.name) {
|
||||||
// // 如果存在name添加默认值,否则formData 中不存在这个字段不校验
|
// 如果存在name添加默认值,否则formData 中不存在这个字段不校验
|
||||||
// if(!this.is_reset){
|
if(!this.is_reset){
|
||||||
// this.is_reset = false
|
this.is_reset = false
|
||||||
// this.formItem.setValue(this.dataValue)
|
this.formItem.setValue(this.dataValue)
|
||||||
// }
|
}
|
||||||
// this.rename = this.formItem.name
|
this.rename = this.formItem.name
|
||||||
// this.form.inputChildrens.push(this)
|
this.form.inputChildrens.push(this)
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
|
|
||||||
if (this.localdata && this.localdata.length !== 0) {
|
if (this.localdata && this.localdata.length !== 0) {
|
||||||
this.isLocal = true
|
this.isLocal = true
|
||||||
|
@ -275,7 +273,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// this.formItem && this.formItem.setValue(detail.value)
|
this.formItem && this.formItem.setValue(detail.value)
|
||||||
// TODO 兼容 vue2
|
// TODO 兼容 vue2
|
||||||
this.$emit('input', detail.value);
|
this.$emit('input', detail.value);
|
||||||
// // TOTO 兼容 vue3
|
// // TOTO 兼容 vue3
|
||||||
|
@ -377,7 +375,7 @@
|
||||||
selectedArr.push(item[this.map.value])
|
selectedArr.push(item[this.map.value])
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return this.dataValue.length > 0 ? this.dataValue : selectedArr
|
return this.dataValue && this.dataValue.length > 0 ? this.dataValue : selectedArr
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -386,14 +384,12 @@
|
||||||
setStyleBackgroud(item) {
|
setStyleBackgroud(item) {
|
||||||
let styles = {}
|
let styles = {}
|
||||||
let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
|
let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
|
||||||
if (this.selectedColor) {
|
|
||||||
if (this.mode !== 'list') {
|
if (this.mode !== 'list') {
|
||||||
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
|
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
|
||||||
}
|
}
|
||||||
if (this.mode === 'tag') {
|
if (this.mode === 'tag') {
|
||||||
styles['background-color'] = item.selected? selectedColor:'#f5f5f5'
|
styles['background-color'] = item.selected? selectedColor:'#f5f5f5'
|
||||||
}
|
}
|
||||||
}
|
|
||||||
let classles = ''
|
let classles = ''
|
||||||
for (let i in styles) {
|
for (let i in styles) {
|
||||||
classles += `${i}:${styles[i]};`
|
classles += `${i}:${styles[i]};`
|
||||||
|
@ -403,7 +399,6 @@
|
||||||
setStyleIcon(item) {
|
setStyleIcon(item) {
|
||||||
let styles = {}
|
let styles = {}
|
||||||
let classles = ''
|
let classles = ''
|
||||||
if (this.selectedColor) {
|
|
||||||
let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
|
let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
|
||||||
styles['background-color'] = item.selected?selectedColor:'#fff'
|
styles['background-color'] = item.selected?selectedColor:'#fff'
|
||||||
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
|
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
|
||||||
|
@ -412,7 +407,7 @@
|
||||||
styles['background-color'] = '#F2F6FC'
|
styles['background-color'] = '#F2F6FC'
|
||||||
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
|
styles['border-color'] = item.selected?selectedColor:'#DCDFE6'
|
||||||
}
|
}
|
||||||
}
|
|
||||||
for (let i in styles) {
|
for (let i in styles) {
|
||||||
classles += `${i}:${styles[i]};`
|
classles += `${i}:${styles[i]};`
|
||||||
}
|
}
|
||||||
|
@ -421,7 +416,6 @@
|
||||||
setStyleIconText(item) {
|
setStyleIconText(item) {
|
||||||
let styles = {}
|
let styles = {}
|
||||||
let classles = ''
|
let classles = ''
|
||||||
if (this.selectedColor) {
|
|
||||||
let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
|
let selectedColor = this.selectedColor?this.selectedColor:'#2979ff'
|
||||||
if (this.mode === 'tag') {
|
if (this.mode === 'tag') {
|
||||||
styles.color = item.selected?(this.selectedTextColor?this.selectedTextColor:'#fff'):'#666'
|
styles.color = item.selected?(this.selectedTextColor?this.selectedTextColor:'#fff'):'#666'
|
||||||
|
@ -431,7 +425,7 @@
|
||||||
if(!item.selected && item.disabled){
|
if(!item.selected && item.disabled){
|
||||||
styles.color = '#999'
|
styles.color = '#999'
|
||||||
}
|
}
|
||||||
}
|
|
||||||
for (let i in styles) {
|
for (let i in styles) {
|
||||||
classles += `${i}:${styles[i]};`
|
classles += `${i}:${styles[i]};`
|
||||||
}
|
}
|
||||||
|
@ -454,7 +448,7 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
$uni-primary: #2979ff !default;
|
$checked-color: #2979ff;
|
||||||
$border-color: #DCDFE6;
|
$border-color: #DCDFE6;
|
||||||
$disable:0.4;
|
$disable:0.4;
|
||||||
|
|
||||||
|
@ -620,8 +614,8 @@
|
||||||
// 选中
|
// 选中
|
||||||
&.is-checked {
|
&.is-checked {
|
||||||
.checkbox__inner {
|
.checkbox__inner {
|
||||||
border-color: $uni-primary;
|
border-color: $checked-color;
|
||||||
background-color: $uni-primary;
|
background-color: $checked-color;
|
||||||
|
|
||||||
.checkbox__inner-icon {
|
.checkbox__inner-icon {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
|
@ -629,14 +623,14 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.radio__inner {
|
.radio__inner {
|
||||||
border-color: $uni-primary;
|
border-color: $checked-color;
|
||||||
.radio__inner-icon {
|
.radio__inner-icon {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
background-color: $uni-primary;
|
background-color: $checked-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.checklist-text {
|
.checklist-text {
|
||||||
color: $uni-primary;
|
color: $checked-color;
|
||||||
}
|
}
|
||||||
// 选中禁用
|
// 选中禁用
|
||||||
&.is-disable {
|
&.is-disable {
|
||||||
|
@ -689,10 +683,10 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&.is-checked {
|
&.is-checked {
|
||||||
border-color: $uni-primary;
|
border-color: $checked-color;
|
||||||
.checkbox__inner {
|
.checkbox__inner {
|
||||||
border-color: $uni-primary;
|
border-color: $checked-color;
|
||||||
background-color: $uni-primary;
|
background-color: $checked-color;
|
||||||
.checkbox__inner-icon {
|
.checkbox__inner-icon {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
transform: rotate(45deg);
|
transform: rotate(45deg);
|
||||||
|
@ -700,16 +694,16 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.radio__inner {
|
.radio__inner {
|
||||||
border-color: $uni-primary;
|
border-color: $checked-color;
|
||||||
|
|
||||||
.radio__inner-icon {
|
.radio__inner-icon {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
background-color: $uni-primary;
|
background-color: $checked-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.checklist-text {
|
.checklist-text {
|
||||||
color: $uni-primary;
|
color: $checked-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 选中禁用
|
// 选中禁用
|
||||||
|
@ -741,8 +735,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&.is-checked {
|
&.is-checked {
|
||||||
background-color: $uni-primary;
|
background-color: $checked-color;
|
||||||
border-color: $uni-primary;
|
border-color: $checked-color;
|
||||||
|
|
||||||
.checklist-text {
|
.checklist-text {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
@ -781,8 +775,8 @@
|
||||||
|
|
||||||
&.is-checked {
|
&.is-checked {
|
||||||
.checkbox__inner {
|
.checkbox__inner {
|
||||||
border-color: $uni-primary;
|
border-color: $checked-color;
|
||||||
background-color: $uni-primary;
|
background-color: $checked-color;
|
||||||
|
|
||||||
.checkbox__inner-icon {
|
.checkbox__inner-icon {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
|
@ -795,13 +789,13 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.checklist-text {
|
.checklist-text {
|
||||||
color: $uni-primary;
|
color: $checked-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
.checklist-content {
|
.checklist-content {
|
||||||
.checkobx__list {
|
.checkobx__list {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
border-color: $uni-primary;
|
border-color: $checked-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue