混合支付

This commit is contained in:
唐明明
2023-03-17 15:57:43 +08:00
parent 9eb1f97e4c
commit 7de206c0a2
13 changed files with 395 additions and 75 deletions

View File

@@ -10,8 +10,8 @@
<view class="total-btn" @click="$Router.push({name: 'Withdraws'})">提现</view>
</view>
<view class="total-item-2">
<view> 已发放 :<span>{{sended}}</span></view>
<view> 待发放 :<span>{{frozen}}</span></view>
<view>已发放 :<span>{{sended}}</span></view>
<view>待发放 :<span>{{frozen}}</span></view>
</view>
</view>
<!-- 账户记录 -->
@@ -130,7 +130,7 @@
this.page = logs.page
this.pagesShow = false
uni.hideLoading()
}).catch(err => {
}).catch(err => {
this.errMsg(err)
})
},

View File

@@ -8,21 +8,25 @@
</u-sticky>
<!-- 账户余额 -->
<view class="total" :style="'background-image: url(' + require('@/static/imgs/cash_back.png') + ');'">
<view class="total-value nowrap">{{total}}</view>
<view class="total-value nowrap">{{count}}</view>
<view class="total-text">{{type == 'self' ? '个人总业绩': '团队总业绩'}}</view>
<view class="total-total">筛选区间业绩{{total}}</view>
</view>
<!-- 账户记录 -->
<view class="logs">
<view class="log-item">
<view class="tabs">
<u-tabs
:list="tabs"
:activeStyle="{'color': '#446EFE'}"
lineColor="#446EFE"
:scrollable="false"
@click="onDayTab"
></u-tabs>
<view class="log-header">
<view class="log-header-data" @click="dayShow = true">
<label>筛选</label>
<view class="log-header-data-q">
<view :class="{'show': dayTime.start_at != ''}">{{dayTime.start_at || "开始日期"}}</view>
<view :class="{'show': dayTime.end_at != ''}">{{dayTime.end_at || "结束日期"}}</view>
</view>
<u-icon name="arrow-right"></u-icon>
</view>
<view class="log-header-title" @click="onDefaultLog">默认</view>
</view>
<!-- -->
<block v-if="list.length > 0">
<view class="log-flex" v-for="(item, index) in list" :key="index">
<view class="log-flex-item">
@@ -60,7 +64,21 @@
</view>
<u-loadmore v-if="pagesShow" :status="status" />
</view>
<!-- 筛选时间 -->
<u-calendar
v-if="maxDate != ''"
:show="dayShow"
mode="range"
color="#446EFE"
:minDate="minDate"
:maxDate="maxDate"
monthNum="36"
title="选择筛选区间"
maxRange="90"
rangePrompt="最大筛选天数不能超过90天"
@close="dayShow = false"
@confirm="onDay"
></u-calendar>
</view>
</template>
@@ -69,14 +87,16 @@
export default {
data() {
return {
tabs : [
{ name: '全部业绩', value: 'all'},
{ name: '当月业绩', value: 'month'},
{ name: '当年业绩', value: 'year'}
],
dayType : 'all',
dayShow : false,
minDate : '',
maxDate : '',
dayTime : {
start_at: '',
end_at : ''
},
type : 'self',
total : '0.00',
count : '0.00',
list : [],
page : {
current : 1,
@@ -88,6 +108,12 @@
},
created() {
this.getLog()
// 获取当天前日期
let date = new Date()
let year = date.getFullYear()
let month = date.getMonth() + 1
let day = date.getDate() + 1
this.maxDate = year + '-' + month + '-' + day
},
methods: {
onTabs(e){
@@ -96,27 +122,45 @@
this.page.current = 1
this.getLog()
},
// 默认日期
onDefaultLog(){
this.dayTime = {
start_at: '',
end_at : ''
}
this.page.current = 1
this.getLog()
},
// 选择日期
onDayTab(e){
if(this.dayType === e.value) return
this.dayType = e.value
onDay(e){
this.dayTime = {
start_at: e[0],
end_at : e[e.length - 1]
}
this.dayShow = false
this.page.current = 1
this.getLog()
},
// 获取列表
getLog(){
cash({
day : this.dayType,
type: this.type,
page: this.page.current
start_at: this.dayTime.start_at,
end_at : this.dayTime.end_at,
type : this.type,
page : this.page.current
}).then(res => {
let { total, lists } = res;
let { total, lists, start, now, count } = res;
let atList = lists.page.current == 1 ? [] : this.list
if(this.minDate == '') this.minDate = start
this.list = atList.concat(lists.data)
this.total = total
this.count = count
this.page = lists.page
this.pagesShow = false
}).catch(err => {
console.log(err)
uni.showToast({
title: err.message,
icon : 'none'
@@ -172,6 +216,13 @@
line-height: 40rpx;
padding-top: 10rpx;
}
.total-total{
margin-top: 30rpx;
border-top: solid 1px rgba(255, 255, 255, .7);
font-size: 30rpx;
line-height: 40rpx;
padding-top: 30rpx;
}
}
// 记录空
.list-null{
@@ -184,6 +235,35 @@
.logs{
padding: 30rpx;
box-sizing: border-box;
// 记录筛选
.log-header{
border-bottom: solid 1rpx #ddd;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
padding: 30rpx 0;
.log-header-title{
line-height: 70rpx;
font-size: 30rpx;
color: gray;
color: $main-color;
}
.log-header-data{
display: flex;
align-items: center;
label{
font-size: 30rpx;
}
.log-header-data-q{
font-size: 24rpx;
line-height: 30rpx;
color: gray;
.show{ color: $main-color; }
}
}
}
// 记录
.log-item{
background: white;
padding: 10rpx 30rpx;

View File

@@ -2,7 +2,11 @@
<view class="content">
<view class="block" v-if="banks.length > 0">
<view class="bank">
<view class="block-title">到账银行卡</view>
<!-- <view class="block-title">到账<text>{{type == 1 ? '本人': '非本人'}}</text>银行卡</view> -->
<view class="bank-tabs">
<view class="item" :class="{'active': type == 1}" @click="onTypeTab(1)">本人银行卡</view>
<view class="item" :class="{'active': type == 2}" @click="onTypeTab(2)">非本人银行卡</view>
</view>
<view class="bank-input">
<label>开户银行</label>
<picker class="banks-picker" :range="banks" range-key="name" :value="bankVal" @change="bankVal = $event.detail.value" :disabled="isDisabled" >
@@ -19,9 +23,9 @@
</view>
<view class="bank-input">
<label>持卡人姓名</label>
<input type="text" placeholder="输入开户人真实姓名" maxlength="15" disabled v-model="name">
<input type="text" placeholder="输入开户人真实姓名" maxlength="15" :disabled="isDisabled || type == 1" v-model="name">
</view>
<view class="bank-input">
<view class="bank-input" v-if="type === 2">
<label>身份证号</label>
<input type="idcard" placeholder="输入开户人身份证号" maxlength="18" v-model="idcard" :disabled="isDisabled">
</view>
@@ -40,6 +44,8 @@
<button class="cny-btn" :disabled="greater" @click="onSubmit">申请提现</button>
</view>
</view>
<!-- 提现提醒 -->
<view class="withdraws-hint">后台提现管理时间 上午11:00-12:00 下午17:00-18:00</view>
</view>
</template>
@@ -48,17 +54,22 @@
export default {
data() {
return {
type : 1,
banks : [],
bankVal : 0,
bankNo : '',
mobile : '',
name : '',
idcard : '',
identity : {
name : '',
id_card_no : ''
},
amount : '',
min : 0,
rate : 0,
balance : '0.00',
isDisabled : false
isDisabled : false,
};
},
@@ -73,29 +84,62 @@
mask : true
})
withdrawsCreate().then(res => {
let { bank, tax, min, balance, banks} = res;
let bankIndex
this.rate = tax
this.min = min
this.balance = balance
this.banks = [ { id: '', name: '请选择开户银行'}, ...banks ]
this.name = bank.name
if(bank.bank_no){
bankIndex = this.banks.findIndex(val => val.name === bank.bank_name)
let { bank, tax, min, balance, banks, id_card, has_bank} = res;
this.rate = tax
this.min = min
this.balance = balance
this.banks = [ { id: '', name: '请选择开户银行'}, ...banks ]
this.identity = id_card
this.type = bank.message_type
this.isDisabled = has_bank
this.name = id_card.name
this.idcard = id_card.id_card_no
if(has_bank){
let bankIndex = this.banks.findIndex(val => val.name === bank.bank_name)
this.bankNo = bank.bank_no
this.mobile = bank.mobile
this.bankVal = bankIndex >= 0 ? bankIndex : 0
this.isDisabled = true
}
uni.hideLoading()
}).catch(err => {
uni.showToast({
title: err.message,
icon : 'none'
console.log(err)
uni.showModal({
content : err.message,
showCancel : false,
success : ModalRes => {
if(ModalRes.confirm){
this.$Router.back()
}
}
})
})
},
methods: {
onTypeTab(type){
if(type == this.type) return
if(this.isDisabled){
uni.showToast({
title: "银行卡信息已绑定,如需变更请联系系统管理员",
icon : "none"
})
return
}
if(type == 1){
this.name = this.identity.name
this.idcard = this.identity.id_card_no
}else{
this.name = ''
this.idcard = ''
}
this.type = type
},
onSubmit(){
if(this.bankVal === 0){
uni.showToast({
@@ -114,6 +158,8 @@
name : this.name,
mobileNo : this.mobile,
bank_no : this.bankNo,
id_card : this.idcard,
message_type: this.type,
}).then(res => {
uni.showModal({
title : '提示',
@@ -141,16 +187,40 @@
.content{
padding: 30rpx;
}
.withdraws-hint{
padding: 30rpx;
font-size: 30rpx;
color: gray;
}
.block{
background: white;
.block-title{
font-size: 30rpx;
color: gray;
line-height: 50rpx;
text{
color: $main-color;
margin: 0 5rpx;
}
}
.bank{
background: #fdfdfd;
padding: 50rpx;
.bank-tabs{
@extend .border-solid;
margin-bottom: 30rpx;
display: flex;
align-items: center;
line-height: 100rpx;
.item{
width: 50%;
text-align: center;
font-size: 30rpx;
&.active{
color: $main-color;
}
}
}
.bank-input{
display: flex;
justify-content: space-between;