新增分享,找回密码,实名认证,签约

This commit is contained in:
唐明明
2023-08-25 14:04:31 +08:00
parent 32cc588ae7
commit 0f7c37d548
106 changed files with 2130 additions and 1313 deletions

148
pages/withdraw/withdraw.js Normal file
View File

@@ -0,0 +1,148 @@
Page({
/**
* 页面的初始数据
*/
data: {
banks : [],
type : 1,
bankVal : 0,
isDisabled : false,
balance : 0,
greater : false,
rate : 0,
min : 0,
name : '',
idcard : '',
identity : {
name : '',
id_card_no : ''
},
bankNo : '',
mobile : '',
},
/**
* 生命周期函数--监听页面加载
*/
onLoad() {
wx.$api.withdraw.create().then(res => {
let { bank, tax, min, balance, banks, id_card, has_bank} = res.data;
let banksArr = [{ id: '', name: '请选择开户银行'}].concat(banks)
this.setData({
banks : banksArr,
balance : balance,
rate : tax,
min : min,
name : id_card.name,
idcard : id_card.id_card_no,
identity : id_card,
isDisabled : has_bank
})
if(has_bank){
let bankIndex = banksArr.findIndex(val => val.name === bank.bank_name)
this.setData({
type : bank.message_type,
bankNo : bank.bank_no,
mobile : bank.mobile,
bankVal : bankIndex >= 0 ? bankIndex: 0
})
}
})
},
/**
* 选择提现类型
*/
onTypeTab(e){
let { type } = e.currentTarget.dataset
if(type == this.data.type) return
if(this.data.isDisabled){
wx.showToast({
title: "银行卡信息已绑定,如需变更请联系系统管理员",
icon : "none"
})
return
}
if(type == 1){
this.setData({
name : this.data.identity.name,
idcard : this.data.identity.id_card_no
})
}else{
this.setData({
name : '',
idcard : ''
})
}
this.setData({
type
})
},
/**
* 选择开户银行
*/
bankChange(e){
let { value } = e.detail;
this.setData({
bankVal: value
})
},
/**
* 全部提现
*/
onAll(){
this.setData({
amount: this.data.balance
})
},
/**
* 输入提现金额
*/
onInput(e){
let { value } = e.detail;
this.setData({
greater: parseFloat(value) > parseFloat(this.data.balance)
})
},
/**
* 提现
*/
onSubmit(e){
if(this.data.bankVal == 0){
wx.showToast({
title: '请选择开户银行',
icon : 'none'
})
return
}
wx.showLoading({
title: '提交中...',
mask : true
})
let valueObj = e.detail.value
let data = {
bank_name : this.data.banks[this.data.bankVal].name,
amount : valueObj.amount,
name : valueObj.name,
mobileNo : valueObj.mobile,
bank_no : valueObj.bankNo,
id_card : valueObj.idcard || '',
message_type: this.data.type,
}
wx.$api.withdraw.withdraws(data).then(res => {
wx.hideLoading()
wx.showModal({
title : '提示',
content : res.data,
showCancel : false,
confirmColor : '#da2b54',
success : ModalRes => {
if(ModalRes.confirm){
wx.navigateBack()
}
}
})
}).catch(err => {})
}
})

View File

@@ -0,0 +1,4 @@
{
"usingComponents": {},
"navigationBarTitleText": "提现"
}

View File

@@ -0,0 +1,52 @@
<view class="content">
<view class="block" wx:if="{{banks.length > 0}}">
<form bindsubmit="onSubmit">
<view class="bank">
<view class="bank-tabs">
<view class="item {{type == 1 ? 'active': ''}}" bind:tap="onTypeTab" data-type="1">本人银行卡</view>
<view class="item {{type == 2 ? 'active': ''}}" bind:tap="onTypeTab" data-type="2">非本人银行卡</view>
</view>
<view class="bank-input">
<label>开户银行</label>
<picker class="banks-picker" range="{{banks}}" range-key="name" value="{{bankVal}}" disabled="{{isDisabled}}" bindchange="bankChange" >
<view class="banks-text {{bankVal === 0 ? 'gray' : ''}}">
{{banks[bankVal].name}}
<image class="banks-icon" src="/static/icons/arrow_more.png" mode="widthFix"></image>
</view>
</picker>
</view>
<view class="bank-input">
<label>银行卡号</label>
<input type="number" placeholder="输入银行卡号" name="bankNo" value="{{bankNo}}" disabled="{{isDisabled}}" maxlength="20" />
</view>
<view class="bank-input">
<label>预留手机</label>
<input type="number" placeholder="输入开户预留手机号" name="mobile" value="{{mobile}}" disabled="{{isDisabled}}" maxlength="11" />
</view>
<view class="bank-input">
<label>持卡人</label>
<input type="text" placeholder="输入持卡人真实姓名" name="name" value="{{name}}" disabled="{{isDisabled || type == 1}}" maxlength="15" />
</view>
<view class="bank-input" wx:if="{{type == 2}}">
<label>身份证号</label>
<input type="idcard" placeholder="输入开户人身份证号" name="idcard" value="{{idcard}}" disabled="{{isDisabled}}" maxlength="18" />
</view>
</view>
<view class="cny">
<view class="bank-from">
<view class="block-title">提现金额</view>
<view class="cny-title"><text wx:if="{{min >= 1}}">最小提现金额:{{min}}元,</text><text>提现手续费{{rate}}%</text></view>
<view class="cny-input">
<label>¥</label>
<input placeholder="0.00" type="number" name="amount" value="{{amount}}" bindinput="onInput" />
</view>
<view class="cny-balance" wx:if="{{!greater}}">当前账户余额{{balance}}<text bind:tap="onAll">全部提现</text></view>
<view class="cny-balance red" wx:else>输入金额超过账户余额</view>
</view>
<button class="cny-btn" size="default" disabled="{{greater}}" form-type="submit">申请提现</button>
</view>
</form>
</view>
<!-- 提醒信息 -->
<view class="hint">后台提现管理时间 上午11:00-12:00 下午17:00-18:00</view>
</view>

View File

@@ -0,0 +1,35 @@
.content{ min-height: 100vh; background: #f7f8f9; padding: 30rpx; box-sizing: border-box; }
/* 提现前置 */
.hint{ font-size: 28rpx; line-height: 90rpx; text-align: center; color: gray; }
.block{ background: white; border-radius: 20rpx; overflow: hidden; }
.block-title{ font-size: 30rpx; font-weight: bold; line-height: 50rpx; }
/* 银行信息 */
.bank{ background: #fdfdfd; padding: 50rpx; }
.bank-tabs{ margin-bottom: 30rpx; display: flex; align-items: center; line-height: 100rpx; }
.bank-tabs > .item{ width: 50%; text-align: center; font-size: 30rpx; }
.bank-tabs > .item.active{ color: #da2b54; font-weight: bold; }
.bank-input{ display: flex; justify-content: space-between; height: 90rpx; line-height: 90rpx; font-size: 30rpx; background: #f7f8f9; border-radius: 10rpx; margin-bottom: 30rpx; padding: 0 30rpx; }
.bank-input label{ width: 150rpx; color: #333; }
.bank-input input{ font-size: 30rpx; width: calc(100% - 150rpx); height: 90rpx; vertical-align: top; text-align: right; }
.banks-picker{ font-size: 30rpx; width: calc(100% - 150rpx); text-align: right; }
.banks-text{ display: flex; align-items: center; justify-content: flex-end; }
.banks-text.gray{ color: gray; }
.banks-icon{ vertical-align: middle; margin-left: 10rpx; width: 24rpx; height: 24rpx; }
/* 提现金额 */
.cny{ padding: 50rpx; border-top: dashed 1rpx #ddd; }
.cny-title{ padding-bottom: 20rpx; line-height: 40rpx; font-size: 30rpx; color: #333; }
.cny-title text{ font-size: 90%; color: gray; }
.cny-input{ display: flex; font-size: 60rpx; height: 120rpx; line-height: 120rpx; font-weight: 500; font-family: Arial, Helvetica, sans-serif; border-bottom: solid 1rpx #ddd; }
.cny-input input{ flex: 1; height: 120rpx; padding: 0; margin: 0; font-size: 70rpx; }
.cny-balance{ font-size: 28rpx; line-height: 60rpx; padding-top: 20rpx; }
.cny-balance text{ color:#da2b54; margin-left: 10rpx; }
.cny-balance.red{ color: red; }
.cny-btn[size="default"]{ width: 100%; height: 90rpx; line-height: 90rpx; border-radius: 45rpx; background: #da2b54; color: white; font-size: 32rpx; margin-top: 50rpx; padding: 0;}
.cny-btn[size="default"][disabled]{ background: #da2b54; color: white; opacity: .5; }