first commit
This commit is contained in:
@@ -0,0 +1,244 @@
|
||||
<template>
|
||||
<view class="balance-transfer">
|
||||
<view class="contain bg-white">
|
||||
<input
|
||||
style="height: 100rpx"
|
||||
v-model="userSn"
|
||||
type="text"
|
||||
placeholder="请输入对方会员ID/手机号码进行转账"
|
||||
/>
|
||||
</view>
|
||||
<view class="contain transfer-money bg-white mt20">
|
||||
<view class="muted xs">转账金额</view>
|
||||
<view class="input row-center">
|
||||
<view style="font-size: 23px; align-self: flex-end; margin-bottom: 5px">¥</view>
|
||||
<input v-model="money" type="digit" placeholder="0.00" />
|
||||
<view class="column" style="flex: none">
|
||||
<view
|
||||
class="xs primary"
|
||||
style="text-align: right"
|
||||
@tap="money = wallet.user_money"
|
||||
>全部</view
|
||||
>
|
||||
<view class="xs mt10" style="color: #bbbbbb"
|
||||
>钱包余额¥{{ wallet.user_money }}</view
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
<view class="btn lg white row-center br60" @tap="transferBtn">转账</view>
|
||||
<navigator
|
||||
url="/bundle/pages/transfer_record/transfer_record"
|
||||
hover-class="none"
|
||||
class="mt20 nr lighter row-center"
|
||||
>
|
||||
转账记录</navigator
|
||||
>
|
||||
</view>
|
||||
<view class="user contain bg-white mt20" v-if="transferList.length">
|
||||
<view class="lg bold">最近转账</view>
|
||||
<view class="list">
|
||||
<view
|
||||
class="item row"
|
||||
v-for="(item, index) in transferList"
|
||||
:key="index"
|
||||
@tap="userSn = item.sn"
|
||||
>
|
||||
<image class="avatar mr30" :src="item.avatar"></image>
|
||||
<view>
|
||||
<view class="md">{{ item.nickname }}</view>
|
||||
<view class="xs muted">会员ID:{{ item.sn }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<u-modal
|
||||
:value="showTransferInfo"
|
||||
show-cancel-button
|
||||
title="确认转账给"
|
||||
:confirm-color="primaryColor"
|
||||
async-close
|
||||
confirm-text="确认转账"
|
||||
@confirm="showInputPwd"
|
||||
@cancel="showTransferInfo = false"
|
||||
>
|
||||
<view class="slot-content row-center" style="padding: 40rpx 80rpx">
|
||||
<view class="transfer-user row">
|
||||
<image class="avatar mr30" :src="transferInfo.avatar"></image>
|
||||
<view>
|
||||
<view class="md">{{ transferInfo.nickname }}</view>
|
||||
<view class="xs muted mt10">会员ID:{{ transferInfo.sn }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</u-modal>
|
||||
<set-pay-pwd ref="setPayPwd" @confirm="transferFun"></set-pay-pwd>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
hasPayPassword,
|
||||
transfer,
|
||||
getTransferRecent,
|
||||
setPassword,
|
||||
transferToInfo,
|
||||
getWallet
|
||||
} from '@/api/user'
|
||||
import { trottle } from '@/utils/tools'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
showTransferInfo: false,
|
||||
pwd: '',
|
||||
comfirmPwd: '',
|
||||
userSn: '',
|
||||
money: '',
|
||||
transferInfo: {},
|
||||
transferList: [],
|
||||
wallet: {}
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.getTransferRecentFun()
|
||||
this.getWalletFun()
|
||||
this.transferFun = trottle(this.transferFun, 1000, this)
|
||||
},
|
||||
onShow() {
|
||||
setTimeout(() => {
|
||||
this.$refs.setPayPwd && this.$refs.setPayPwd.hasPayWord()
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
getWalletFun() {
|
||||
getWallet().then((res) => {
|
||||
if (res.code == 1) {
|
||||
this.wallet = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
showInputPwd() {
|
||||
this.showTransferInfo = false
|
||||
this.$refs.setPayPwd.showInputPwd()
|
||||
},
|
||||
getTransferRecentFun() {
|
||||
getTransferRecent().then((res) => {
|
||||
if (res.code == 1) {
|
||||
this.transferList = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
async transferBtn() {
|
||||
let { userSn, money } = this
|
||||
if (!userSn)
|
||||
return this.$toast({
|
||||
title: '请输入对方会员ID/手机号码'
|
||||
})
|
||||
if (!money)
|
||||
return this.$toast({
|
||||
title: '请输入转账金额'
|
||||
})
|
||||
|
||||
let data = {
|
||||
transferTo: userSn
|
||||
}
|
||||
// 校验会员信息
|
||||
const { code: vipCode, data: transferInfo } = await transferToInfo(data)
|
||||
if (vipCode != 1) return
|
||||
this.transferInfo = transferInfo
|
||||
this.showTransferInfo = true
|
||||
},
|
||||
transferFun(payPwd) {
|
||||
const { userSn, money } = this
|
||||
let data = {
|
||||
transferTo: userSn,
|
||||
money: money,
|
||||
pay_password: payPwd
|
||||
}
|
||||
transfer(data).then((res) => {
|
||||
if (res.code == 1) {
|
||||
this.$toast(
|
||||
{
|
||||
title: res.msg
|
||||
}
|
||||
// {
|
||||
// tab: 2,
|
||||
// url: '/bundle/pages/transfer_record/transfer_record'
|
||||
// }
|
||||
)
|
||||
this.money = ''
|
||||
this.showInputPwd()
|
||||
this.getWalletFun()
|
||||
this.getTransferRecentFun()
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.balance-transfer {
|
||||
padding: 20rpx 30rpx;
|
||||
|
||||
.contain {
|
||||
border-radius: 20rpx;
|
||||
padding: 0 24rpx;
|
||||
}
|
||||
|
||||
.transfer-money {
|
||||
padding: 30rpx 45rpx;
|
||||
|
||||
.input {
|
||||
border-bottom: $-solid-border;
|
||||
margin-top: 30rpx;
|
||||
|
||||
input {
|
||||
width: 100%;
|
||||
height: 94rpx;
|
||||
text-align: left;
|
||||
font-size: 66rpx;
|
||||
margin-left: 30rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.btn {
|
||||
background: linear-gradient(79deg, #f95f2f 0%, #ff2c3c 100%);
|
||||
line-height: 84rpx;
|
||||
margin-top: 80rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.user {
|
||||
padding: 22rpx 25rpx;
|
||||
|
||||
.list .item {
|
||||
padding: 26rpx 0;
|
||||
|
||||
&:not(:last-of-type) {
|
||||
border-bottom: $-solid-border;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.avatar {
|
||||
width: 68rpx;
|
||||
height: 68rpx;
|
||||
border-radius: 50%;
|
||||
flex: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* 弹窗 */
|
||||
.balance-transfer .set-word input {
|
||||
border: var(--border);
|
||||
padding: 16rpx 20rpx;
|
||||
font-size: 28rpx;
|
||||
border-radius: 6rpx;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.balance-transfer .phone {
|
||||
padding: 20rpx 0;
|
||||
font-size: 42rpx;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user