3
0
Fork 0

feat(withDrawal): 提现添加弹窗提示

This commit is contained in:
woody 2025-07-15 15:51:03 +08:00
parent f98ce3fc08
commit 507b621bd3
4 changed files with 343 additions and 160 deletions

View File

@ -0,0 +1,156 @@
<template>
<u-modal
:show="show"
:showConfirmButton="true"
:showCancelButton="false"
confirmText="我知道了"
@confirm="handleConfirm"
:closeOnClickOverlay="false"
width="640rpx"
:customStyle="{ 'border-radius': '16rpx' }"
>
<view class="withdrawal-guide-content">
<view class="guide-title">提现绑定操作指南</view>
<view class="guide-text">
<text>尊敬的经销商伙伴们</text>
<text
>为了让大家顺利快捷地提现符合法律法规的要求现需完成提现绑定操作步骤如下按序操作即可</text
>
</view>
<view class="guide-steps">
<view class="step-item">
<text class="step-number">1.</text>
<text class="step-text"
>微信扫码后用实际收款人本人手机号登录</text
>
</view>
<view class="step-item">
<text class="step-number">2.</text>
<text class="step-text"
>点击 "继续签约"上传本人身份证照片完成实名认证</text
>
</view>
<view class="step-item">
<text class="step-number">3.</text>
<text class="step-text"
>进入合同页面选择 "默认印章"输入收到的验证码完成签约</text
>
</view>
<view class="step-item">
<text class="step-number">4.</text>
<text class="step-text"
>返回首页点击 "提现"若显示 "开户"下拉刷新页面即可</text
>
</view>
<view class="step-item">
<text class="step-number">5.</text>
<text class="step-text"
>进入绑卡页面完成银行卡绑定后即可操作提现</text
>
</view>
</view>
<view class="guide-footer">
<text>请大家尽快办理有疑问可随时联系我们感谢配合</text>
</view>
<view class="qr-code-section">
<image
class="qr-code-image"
src="/static/images/with-drawal-mini-code.png"
mode="aspectFit"
/>
</view>
</view>
</u-modal>
</template>
<script>
export default {
name: 'WithdrawalGuide',
props: {
show: {
type: Boolean,
default: false,
},
},
methods: {
handleConfirm() {
this.$emit('confirm')
},
},
}
</script>
<style lang="scss" scoped>
.withdrawal-guide-content {
padding: 0rpx 32rpx 32rpx;
.guide-title {
font-size: 32rpx;
font-weight: bold;
color: #333333;
text-align: center;
margin-bottom: 32rpx;
}
.guide-text {
font-size: 26rpx;
color: #666666;
line-height: 40rpx;
margin-bottom: 24rpx;
text {
display: block;
margin-bottom: 16rpx;
&:last-child {
margin-bottom: 0;
}
}
}
.guide-steps {
margin-bottom: 24rpx;
.step-item {
display: flex;
align-items: flex-start;
margin-bottom: 16rpx;
.step-number {
color: #005bac;
font-size: 26rpx;
font-weight: bold;
width: 32rpx;
flex-shrink: 0;
}
.step-text {
font-size: 26rpx;
color: #666666;
line-height: 40rpx;
flex: 1;
}
}
}
.guide-footer {
font-size: 26rpx;
color: #666666;
line-height: 40rpx;
margin-bottom: 32rpx;
text-align: center;
}
.qr-code-section {
display: flex;
justify-content: center;
align-items: center;
.qr-code-image {
width: 200rpx;
height: 200rpx;
border-radius: 8rpx;
}
}
}
</style>

View File

@ -7,7 +7,7 @@
:rules="rules"
ref="uForm"
>
<u-form-item
<!-- <u-form-item
label-width="200rpx"
:label="'银行卡号'"
prop="cardNumber"
@ -24,7 +24,7 @@
<view v-else style="color: red" @click="goBindbank">
{{ '请先绑定银行卡' }}
</view>
</u-form-item>
</u-form-item> -->
<u-form-item
label-width="200rpx"
:label="`${'提现金额'}(${isLocaled()})`"
@ -131,18 +131,27 @@
</view>
</view>
<view class="btnbox">
<u-button :disabled="canbind" class="subbtn" @click="submit">{{
'提现'
}}</u-button>
<u-button class="subbtn" @click="submit">{{ '提现' }}</u-button>
</view>
<u-toast ref="uToast"></u-toast>
<!-- 提现引导弹窗 -->
<WithdrawalGuide
:show="showWithdrawalGuide"
@confirm="onWithdrawalGuideConfirm"
/>
</view>
</template>
<script>
import * as bal from '@/config/balance.js'
import { isLocaled } from '@/util/numberToCurrency'
import WithdrawalGuide from '@/components/withdrawalGuide/index.vue'
export default {
components: {
WithdrawalGuide,
},
data() {
return {
showAmount: false,
@ -182,22 +191,14 @@ export default {
],
},
bankData: {},
widthDrwaData: {
amount: 0,
balance: 0,
srviceCharge: 0,
minAmount: 0,
},
widthDrwaData: {},
ifeye: false,
canbind: false,
showWithdrawalGuide: false,
}
},
watch: {
'dataForm.cashAmount': {
handler(newVal) {
this.checkAccount(newVal || 0, this.dataForm.pkAccount)
},
},
'dataForm.cashAmount': 'checkAccount',
},
onNavigationBarButtonTap() {
uni.navigateTo({
@ -229,7 +230,6 @@ export default {
if (this.pkBdAccountList.length > 0) {
this.dataForm.pkAccountName = res.data[0].accountName
this.dataForm.pkAccount = res.data[0].pkId
this.checkAccount(0, this.dataForm.pkAccount)
}
})
bal.getDefaultBank().then(res => {
@ -255,9 +255,10 @@ export default {
message: res.msg,
type: 'success',
})
//
setTimeout(() => {
uni.navigateBack()
}, 1000)
this.showWithdrawalGuide = true
}, 300)
}
})
})
@ -269,25 +270,30 @@ export default {
this.dataForm.pkAccountName = e.value[0].accountName
this.dataForm.pkAccount = e.value[0].pkId
this.showAmount = false
this.checkAccount(this.dataForm.cashAmount, this.dataForm.pkAccount)
this.checkAccount()
},
checkAccount(cashAmount, pkAccount) {
if (!cashAmount && cashAmount !== 0) {
checkAccount() {
if (!this.dataForm.cashAmount) {
uni.$u.toast('请先输入金额')
return
} else if (!pkAccount) {
} else if (!this.dataForm.pkAccount) {
uni.$u.toast('请先选择账户')
return
}
bal
.getWidthdrawShow({
pkAccount,
cashAmount,
pkAccount: this.dataForm.pkAccount,
cashAmount: this.dataForm.cashAmount,
})
.then(res => {
this.widthDrwaData = res.data
})
},
//
onWithdrawalGuideConfirm() {
this.showWithdrawalGuide = false
uni.navigateBack()
},
},
}
</script>

View File

@ -1,25 +1,33 @@
<template>
<view class="content">
<view class="contentList" v-for="item,index in tableList" :key="index">
<view class="contentList" v-for="(item, index) in tableList" :key="index">
<view class="linebox">
<view class="line_title">{{ '钱包类型' }}</view>
<view class="line_content">{{ item.pkAccountVal }}</view>
</view>
<view class="linebox">
<view class="line_title">{{ '提现金额' }}</view>
<view class="line_content">{{item.cashAmount| toThousandthAndKeepDecimal}}</view>
<view class="line_content">{{
item.cashAmount | toThousandthAndKeepDecimal
}}</view>
</view>
<view class="linebox">
<view class="line_title">{{ '手续费' }}</view>
<view class="line_content">{{item.serviceCharge| toThousandthAndKeepDecimal}}</view>
<view class="line_content">{{
item.serviceCharge | toThousandthAndKeepDecimal
}}</view>
</view>
<view class="linebox">
<view class="line_title">{{ '个税' }}</view>
<view class="line_content">{{item.incomeTax| toThousandthAndKeepDecimal}}</view>
<view class="line_content">{{
item.incomeTax | toThousandthAndKeepDecimal
}}</view>
</view>
<view class="linebox">
<view class="line_title">{{ '实发金额' }}</view>
<view class="line_content">{{item.issuedAmount| toThousandthAndKeepDecimal}}</view>
<view class="line_content">{{
item.issuedAmount | toThousandthAndKeepDecimal
}}</view>
</view>
<view class="linebox">
<view class="line_title">{{ '银行名称' }}</view>
@ -49,31 +57,46 @@
<view class="line_title">{{ '状态' }}</view>
<view class="line_content">{{ item.statusVal }}</view>
</view>
<view v-if="item.approveState == 4" class="linebox">
<view class="line_title">驳回原因</view>
<view class="line_content">{{ item.approveRemarks }}</view>
</view>
<view class="linebox" style="border-bottom: none;">
<view class="linebox" style="border-bottom: none">
<view class="line_title">{{ '操作' }}</view>
<view class="line_content thesuccess" v-if="item.status==0&&item.approveState==1" @click="revoke(item)">{{'撤销'}}</view>
<view
class="line_content thesuccess"
v-if="item.status == 0 && item.approveState == 1"
@click="revoke(item)"
>{{ '撤销' }}</view
>
</view>
</view>
<u-modal :show="revokeShow" showCancelButton @cancel="revokeShow = false" cancelText="取消"
confirmText="确定" @confirm='confirmRevoke' :content='content'></u-modal>
<u-modal
:show="revokeShow"
showCancelButton
@cancel="revokeShow = false"
cancelText="取消"
confirmText="确定"
@confirm="confirmRevoke"
:content="content"
></u-modal>
</view>
</template>
<script>
import * as bal from "@/config/balance.js"
import * as bal from '@/config/balance.js'
export default {
data() {
return {
queryParams: {
pageNum: 1,
pageSize: 50,
},
tableList: [],
revokeShow: false,
content: '是否确认操作?',
thepkId:""
thepkId: '',
}
},
onLoad() {
@ -90,7 +113,7 @@
bal.cancelWithdraw({ pkId: this.thepkId }).then(res => {
if (res.code == 200) {
uni.showToast({
title: res.msg
title: res.msg,
})
this.revokeShow = false
this.getSearch()
@ -101,8 +124,8 @@
bal.getWithdrawList(this.queryParams).then(res => {
this.tableList = res.rows
})
}
}
},
},
}
</script>
@ -112,7 +135,7 @@
}
.content {
background: #F2F2F2;
background: #f2f2f2;
padding: 10rpx 24rpx;
.contentList {
@ -140,11 +163,9 @@
}
.thesuccess {
color: #005BAC;
color: #005bac;
}
}
}
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB