Merge branch 'bd-dev' of 47.94.45.65:angelo/web-base-h5 into bd-test
This commit is contained in:
commit
d3142faa59
|
@ -18,12 +18,6 @@ export const getDefaultBank = params =>
|
||||||
params,
|
params,
|
||||||
})
|
})
|
||||||
|
|
||||||
//校验是否绑定银行卡
|
|
||||||
export const checkIsbindBank = params =>
|
|
||||||
http.get('/member/api/bank/is-bind', {
|
|
||||||
params,
|
|
||||||
})
|
|
||||||
|
|
||||||
//提现页面展示
|
//提现页面展示
|
||||||
export const getWidthdrawShow = params =>
|
export const getWidthdrawShow = params =>
|
||||||
http.get('/member/api/withdraw/show/add', {
|
http.get('/member/api/withdraw/show/add', {
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
:rules="rules"
|
:rules="rules"
|
||||||
ref="uForm"
|
ref="uForm"
|
||||||
>
|
>
|
||||||
<!-- <u-form-item
|
<u-form-item
|
||||||
label-width="200rpx"
|
label-width="200rpx"
|
||||||
:label="'银行卡号'"
|
:label="'银行卡号'"
|
||||||
prop="cardNumber"
|
prop="cardNumber"
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
<view v-else style="color: red" @click="goBindbank">
|
<view v-else style="color: red" @click="goBindbank">
|
||||||
{{ '请先绑定银行卡' }}
|
{{ '请先绑定银行卡' }}
|
||||||
</view>
|
</view>
|
||||||
</u-form-item> -->
|
</u-form-item>
|
||||||
<u-form-item
|
<u-form-item
|
||||||
label-width="200rpx"
|
label-width="200rpx"
|
||||||
:label="`${'提现金额'}(${isLocaled()})`"
|
:label="`${'提现金额'}(${isLocaled()})`"
|
||||||
|
@ -134,7 +134,16 @@
|
||||||
<u-button class="subbtn" @click="submit">{{ '提现' }}</u-button>
|
<u-button class="subbtn" @click="submit">{{ '提现' }}</u-button>
|
||||||
</view>
|
</view>
|
||||||
<u-toast ref="uToast"></u-toast>
|
<u-toast ref="uToast"></u-toast>
|
||||||
|
<u-modal
|
||||||
|
:show="unBindDefaultModal"
|
||||||
|
showCancelButton
|
||||||
|
@cancel="unBindDefaultModal = false"
|
||||||
|
cancelText="取消"
|
||||||
|
confirmText="确定"
|
||||||
|
@confirm="unBindDefaultConfirm"
|
||||||
|
>
|
||||||
|
请先绑定默认银行卡
|
||||||
|
</u-modal>
|
||||||
<!-- 提现引导弹窗 -->
|
<!-- 提现引导弹窗 -->
|
||||||
<!-- <WithdrawalGuide
|
<!-- <WithdrawalGuide
|
||||||
:show="showWithdrawalGuide"
|
:show="showWithdrawalGuide"
|
||||||
|
@ -193,8 +202,9 @@ export default {
|
||||||
bankData: {},
|
bankData: {},
|
||||||
widthDrwaData: {},
|
widthDrwaData: {},
|
||||||
ifeye: false,
|
ifeye: false,
|
||||||
canbind: false,
|
canbind: true,
|
||||||
showWithdrawalGuide: false,
|
showWithdrawalGuide: false,
|
||||||
|
unBindDefaultModal: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
@ -205,7 +215,7 @@ export default {
|
||||||
url: '/pages/mine/balance/withdrawlDetail',
|
url: '/pages/mine/balance/withdrawlDetail',
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
onLoad() {
|
onShow() {
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -233,18 +243,20 @@ export default {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
bal.getDefaultBank().then(res => {
|
bal.getDefaultBank().then(res => {
|
||||||
this.bankData = res.data
|
if (res.data && Object.keys(res.data).length > 0) {
|
||||||
this.dataForm.pkBank = res.data.pkId
|
this.bankData = res.data
|
||||||
})
|
this.dataForm.pkBank = res.data.pkId
|
||||||
//校验是否绑定银行卡
|
} else {
|
||||||
bal.checkIsbindBank().then(res => {
|
this.unBindDefaultModal = true
|
||||||
if (res.flag == 'Y') {
|
|
||||||
this.canbind = false
|
|
||||||
} else if (res.flag == 'N') {
|
|
||||||
this.canbind = true
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
unBindDefaultConfirm() {
|
||||||
|
this.unBindDefaultModal = false
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/mine/bindBank/index',
|
||||||
|
})
|
||||||
|
},
|
||||||
submit() {
|
submit() {
|
||||||
this.$refs.uForm
|
this.$refs.uForm
|
||||||
.validate()
|
.validate()
|
||||||
|
@ -252,13 +264,17 @@ export default {
|
||||||
bal.addWithdraw(this.dataForm).then(res => {
|
bal.addWithdraw(this.dataForm).then(res => {
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
this.$refs.uToast.show({
|
this.$refs.uToast.show({
|
||||||
message: res.msg,
|
message: res.msg || '提现成功',
|
||||||
type: 'success',
|
type: 'success',
|
||||||
})
|
})
|
||||||
// 显示提现引导弹窗
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
uni.navigateBack()
|
uni.navigateBack()
|
||||||
}, 300)
|
}, 500)
|
||||||
|
|
||||||
|
// 显示提现引导弹窗
|
||||||
|
// setTimeout(() => {
|
||||||
|
// this.showWithdrawalGuide = true
|
||||||
|
// }, 300)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -292,6 +308,7 @@ export default {
|
||||||
// 处理提现引导弹窗确认
|
// 处理提现引导弹窗确认
|
||||||
onWithdrawalGuideConfirm() {
|
onWithdrawalGuideConfirm() {
|
||||||
this.showWithdrawalGuide = false
|
this.showWithdrawalGuide = false
|
||||||
|
uni.navigateBack()
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,273 +1,412 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<view class="theform">
|
<view class="theform">
|
||||||
<u--form labelPosition="left" :model="dataForm" :rules="rules" ref="uForm">
|
<u--form
|
||||||
<u-form-item label-width="200rpx" :label="'银行卡号'" borderBottom prop="cardNumber" ref="item1">
|
labelPosition="left"
|
||||||
<u--input v-model="dataForm.cardNumber" disabledColor="#F5F5F5;" border="none"></u--input>
|
:model="dataForm"
|
||||||
</u-form-item>
|
:rules="rules"
|
||||||
<u-form-item borderBottom label-width="200rpx" :label="'银行名称'" prop="bankName"
|
ref="uForm"
|
||||||
@click="showAmount = true; " ref="item1">
|
>
|
||||||
<u--input v-model="dataForm.bankName" disabledColor="#ffffff" :placeholder="'请选择'"
|
<u-form-item
|
||||||
border="none"></u--input>
|
borderBottom
|
||||||
<u-icon slot="right" name="arrow-right"></u-icon>
|
required
|
||||||
</u-form-item>
|
label-width="200rpx"
|
||||||
|
:label="'银行名称'"
|
||||||
|
prop="bankName"
|
||||||
|
@click="showAmount = true"
|
||||||
|
ref="item1"
|
||||||
|
>
|
||||||
|
<u--input
|
||||||
|
v-model="dataForm.bankName"
|
||||||
|
disabledColor="#ffffff"
|
||||||
|
:placeholder="'请选择'"
|
||||||
|
border="none"
|
||||||
|
></u--input>
|
||||||
|
<u-icon slot="right" name="arrow-right"></u-icon>
|
||||||
|
</u-form-item>
|
||||||
|
|
||||||
|
<u-form-item
|
||||||
|
label-width="200rpx"
|
||||||
|
:label="'开户支行'"
|
||||||
|
required
|
||||||
|
prop="subBankName"
|
||||||
|
borderBottom
|
||||||
|
ref="item1"
|
||||||
|
>
|
||||||
|
<u--input
|
||||||
|
v-model="dataForm.subBankName"
|
||||||
|
disabledColor="#F5F5F5;"
|
||||||
|
border="none"
|
||||||
|
></u--input>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item
|
||||||
|
label-width="200rpx"
|
||||||
|
:label="'银行卡号'"
|
||||||
|
required
|
||||||
|
borderBottom
|
||||||
|
prop="cardNumber"
|
||||||
|
ref="item1"
|
||||||
|
>
|
||||||
|
<u--input
|
||||||
|
v-model="dataForm.cardNumber"
|
||||||
|
disabledColor="#F5F5F5;"
|
||||||
|
border="none"
|
||||||
|
></u--input>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item
|
||||||
|
label-width="200rpx"
|
||||||
|
label="开户姓名"
|
||||||
|
required
|
||||||
|
prop="accountName"
|
||||||
|
borderBottom
|
||||||
|
ref="item1"
|
||||||
|
>
|
||||||
|
<u--input
|
||||||
|
:placeholder="'请输入'"
|
||||||
|
v-model="dataForm.accountName"
|
||||||
|
border="none"
|
||||||
|
></u--input>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item
|
||||||
|
label-width="200rpx"
|
||||||
|
:label="'证件号码'"
|
||||||
|
required
|
||||||
|
prop="idCard"
|
||||||
|
borderBottom
|
||||||
|
ref="item1"
|
||||||
|
>
|
||||||
|
<u--input
|
||||||
|
v-model="dataForm.idCard"
|
||||||
|
:placeholder="'请输入'"
|
||||||
|
disabledColor="#F5F5F5;"
|
||||||
|
border="none"
|
||||||
|
></u--input>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item
|
||||||
|
label-width="200rpx"
|
||||||
|
:label="'联系方式'"
|
||||||
|
prop="phone"
|
||||||
|
required
|
||||||
|
borderBottom
|
||||||
|
ref="item1"
|
||||||
|
>
|
||||||
|
<u--input
|
||||||
|
v-model="dataForm.phone"
|
||||||
|
:placeholder="'请输入'"
|
||||||
|
maxlength="20"
|
||||||
|
border="none"
|
||||||
|
></u--input>
|
||||||
|
</u-form-item>
|
||||||
|
<u-form-item
|
||||||
|
v-if="userInfo.pkCountry == 1 && cancode"
|
||||||
|
label-width="200rpx"
|
||||||
|
:label="'验证码'"
|
||||||
|
required
|
||||||
|
prop="verificationCode"
|
||||||
|
borderBottom
|
||||||
|
ref="item1"
|
||||||
|
>
|
||||||
|
<u--input
|
||||||
|
v-model="dataForm.verificationCode"
|
||||||
|
:placeholder="'请输入'"
|
||||||
|
border="none"
|
||||||
|
></u--input>
|
||||||
|
<u-button
|
||||||
|
@tap="getCode"
|
||||||
|
class="getcodes"
|
||||||
|
type="primary"
|
||||||
|
shape="circle"
|
||||||
|
:text="tips"
|
||||||
|
color="#2FBC42"
|
||||||
|
></u-button>
|
||||||
|
</u-form-item>
|
||||||
|
|
||||||
<u-form-item label-width="200rpx" :label="'开户支行'" prop="subBankName" borderBottom ref="item1">
|
<u-code
|
||||||
<u--input v-model="dataForm.subBankName" disabledColor="#F5F5F5;" border="none"></u--input>
|
:seconds="seconds"
|
||||||
</u-form-item>
|
@end="end"
|
||||||
<u-form-item label-width="200rpx" :label="'真实姓名'" prop="accountName" borderBottom ref="item1">
|
@start="start"
|
||||||
<u--input :placeholder="'请输入'" v-model="dataForm.accountName" border="none"></u--input>
|
ref="uCode"
|
||||||
</u-form-item>
|
@change="codeChange"
|
||||||
<u-form-item label-width="200rpx" :label="'证件号码'" prop="idCard" borderBottom ref="item1">
|
></u-code>
|
||||||
<u--input v-model="dataForm.idCard" :placeholder="'请输入'" disabledColor="#F5F5F5;"
|
<u-picker
|
||||||
border="none"></u--input>
|
@cancel="showAmount = false"
|
||||||
</u-form-item>
|
:show="showAmount"
|
||||||
<u-form-item label-width="200rpx" :label="'联系方式'" prop="phone" borderBottom ref="item1">
|
ref="uPicker"
|
||||||
<u--input v-model="dataForm.phone" :placeholder="'请输入'" maxlength="20" border="none"></u--input>
|
:columns="bankCardChioceList"
|
||||||
</u-form-item>
|
@confirm="confirm"
|
||||||
<u-form-item v-if="userInfo.pkCountry==1&&cancode" label-width="200rpx" :label="'验证码'"
|
keyName="bankName"
|
||||||
prop="verificationCode" borderBottom ref="item1">
|
></u-picker>
|
||||||
<u--input v-model="dataForm.verificationCode" :placeholder="'请输入'" border="none"></u--input>
|
</u--form>
|
||||||
<u-button @tap='getCode' class="getcodes" type="primary" shape="circle" :text="tips"
|
</view>
|
||||||
color="#2FBC42"></u-button>
|
<view class="tip-wrapper">
|
||||||
</u-form-item>
|
<view class="tip-content">
|
||||||
|
<view class="tip-text"
|
||||||
<u-code :seconds="seconds" @end="end" @start="start" ref="uCode" @change="codeChange"></u-code>
|
>银行卡号、真实姓名、证件号码、联系方式,请与银行预留信息保持一致</view
|
||||||
<u-picker @cancel='showAmount=false' :show="showAmount" ref="uPicker" :columns="bankCardChioceList"
|
>
|
||||||
@confirm="confirm" keyName='bankName'></u-picker>
|
</view>
|
||||||
</u--form>
|
</view>
|
||||||
|
<view class="btnbox">
|
||||||
</view>
|
<u-button class="subbtn" @click="submit">{{ '确定' }}</u-button>
|
||||||
<view class="btnbox">
|
</view>
|
||||||
<u-button class="subbtn" @click="submit">{{'确定'}}</u-button>
|
<u-toast ref="uToast"></u-toast>
|
||||||
</view>
|
</view>
|
||||||
<u-toast ref="uToast"></u-toast>
|
|
||||||
</view>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import * as ban from "@/config/balance.js"
|
import * as ban from '@/config/balance.js'
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
showAmount: false,
|
showAmount: false,
|
||||||
dataForm: {
|
dataForm: {
|
||||||
bankName: "",
|
bankName: '',
|
||||||
cardNumber: "",
|
cardNumber: '',
|
||||||
pkBank: "",
|
pkBank: '',
|
||||||
subBankName: "",
|
subBankName: '',
|
||||||
accountName: "",
|
accountName: '',
|
||||||
idCard: "",
|
idCard: '',
|
||||||
|
},
|
||||||
|
bankCardChioceList: [],
|
||||||
|
rules: {
|
||||||
|
cardNumber: [
|
||||||
|
{
|
||||||
|
type: 'string',
|
||||||
|
required: true,
|
||||||
|
message: '请输入',
|
||||||
|
trigger: ['blur', 'change'],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
subBankName: [
|
||||||
|
{
|
||||||
|
type: 'string',
|
||||||
|
required: true,
|
||||||
|
message: '请输入',
|
||||||
|
trigger: ['blur', 'change'],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
accountName: [
|
||||||
|
{
|
||||||
|
type: 'string',
|
||||||
|
required: true,
|
||||||
|
message: '请输入',
|
||||||
|
trigger: ['blur', 'change'],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
idCard: [
|
||||||
|
{
|
||||||
|
type: 'string',
|
||||||
|
required: true,
|
||||||
|
message: '请输入',
|
||||||
|
trigger: ['blur', 'change'],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
phone: [
|
||||||
|
{
|
||||||
|
type: 'string',
|
||||||
|
required: true,
|
||||||
|
message: '请输入',
|
||||||
|
trigger: ['blur', 'change'],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
verificationCode: [
|
||||||
|
{
|
||||||
|
type: 'string',
|
||||||
|
required: true,
|
||||||
|
message: '请输入',
|
||||||
|
trigger: ['blur', 'change'],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
bankName: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择',
|
||||||
|
trigger: ['change'],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
tips: '',
|
||||||
|
// refCode: null,
|
||||||
|
seconds: 60,
|
||||||
|
ifpass: false,
|
||||||
|
userInfo: {},
|
||||||
|
cancode: true, //判断是否是白名单
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.userInfo = uni.getStorageSync('User')
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
codeChange(text) {
|
||||||
|
this.tips = text
|
||||||
|
},
|
||||||
|
getCode() {
|
||||||
|
if (this.dataForm.phone && this.$u.test.mobile(this.dataForm.phone)) {
|
||||||
|
if (this.$refs.uCode.canGetCode) {
|
||||||
|
// 模拟向后端请求验证码
|
||||||
|
uni.showLoading({
|
||||||
|
title: '正在获取验证码',
|
||||||
|
})
|
||||||
|
ban
|
||||||
|
.getVerification({
|
||||||
|
phone: this.dataForm.phone,
|
||||||
|
})
|
||||||
|
.then(res => {
|
||||||
|
uni.hideLoading()
|
||||||
|
// 这里此提示会被this.start()方法中的提示覆盖
|
||||||
|
uni.$u.toast('验证码已发送')
|
||||||
|
// 通知验证码组件内部开始倒计时
|
||||||
|
this.$refs.uCode.start()
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
uni.$u.toast('倒计时结束后再发送')
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
uni.$u.toast(
|
||||||
|
this.dataForm.phone ? '手机号格式不正确' : '请先输入手机号'
|
||||||
|
)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
},
|
||||||
|
end() {
|
||||||
|
// uni.$u.toast('倒计时结束');
|
||||||
|
},
|
||||||
|
start() {
|
||||||
|
// uni.$u.toast('倒计时开始');
|
||||||
|
},
|
||||||
|
getList() {
|
||||||
|
ban.getBankCardChoiceList().then(res => {
|
||||||
|
this.bankCardChioceList = [res.data]
|
||||||
|
})
|
||||||
|
},
|
||||||
|
bindBank() {
|
||||||
|
if (!this.ifpass && this.cancode && this.userInfo.pkCountry == 1) {
|
||||||
|
uni.$u.toast('验证码错误')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ban.bindWalletBankAdd(this.dataForm).then(res => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
uni.$u.toast(res.msg)
|
||||||
|
setTimeout(() => {
|
||||||
|
uni.navigateBack()
|
||||||
|
}, 1000)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
submit() {
|
||||||
|
this.$refs.uForm
|
||||||
|
.validate()
|
||||||
|
.then(res => {
|
||||||
|
// 没有三方接口 临机写死
|
||||||
|
this.ifpass = true
|
||||||
|
|
||||||
},
|
if (this.userInfo.pkCountry == 1) {
|
||||||
bankCardChioceList: [],
|
if (this.cancode) {
|
||||||
rules: {
|
ban
|
||||||
cardNumber: [{
|
.verifyBankCard(this.dataForm)
|
||||||
type: 'string',
|
.then(res => {
|
||||||
required: true,
|
if (res.code == 200) {
|
||||||
message: '请输入',
|
this.ifpass = true
|
||||||
trigger: ['blur', 'change']
|
this.bindBank()
|
||||||
}],
|
} else {
|
||||||
subBankName: [{
|
this.ifpass = false
|
||||||
type: 'string',
|
uni.$u.toast(res.msg)
|
||||||
required: true,
|
}
|
||||||
message: '请输入',
|
})
|
||||||
trigger: ['blur', 'change']
|
.catch(err => {
|
||||||
}],
|
this.ifpass = false
|
||||||
accountName: [{
|
})
|
||||||
type: 'string',
|
} else {
|
||||||
required: true,
|
this.ifpass = true
|
||||||
message: '请输入',
|
this.bindBank()
|
||||||
trigger: ['blur', 'change']
|
}
|
||||||
}],
|
} else {
|
||||||
idCard: [{
|
this.bindBank()
|
||||||
type: 'string',
|
}
|
||||||
required: true,
|
})
|
||||||
message: '请输入',
|
.catch(errors => {
|
||||||
trigger: ['blur', 'change']
|
uni.$u.toast('校验失败')
|
||||||
}],
|
return false
|
||||||
phone: [{
|
})
|
||||||
type: 'string',
|
},
|
||||||
required: true,
|
confirm(e) {
|
||||||
message: '请输入',
|
this.dataForm.bankName = e.value[0].bankName
|
||||||
trigger: ['blur', 'change']
|
this.dataForm.pkBank = e.value[0].pkId
|
||||||
}],
|
this.showAmount = false
|
||||||
verificationCode: [{
|
},
|
||||||
type: 'string',
|
},
|
||||||
required: true,
|
}
|
||||||
message: '请输入',
|
|
||||||
trigger: ['blur', 'change']
|
|
||||||
}],
|
|
||||||
bankName: [{
|
|
||||||
required: true,
|
|
||||||
message: '请选择',
|
|
||||||
trigger: ['change']
|
|
||||||
}],
|
|
||||||
},
|
|
||||||
tips: '',
|
|
||||||
// refCode: null,
|
|
||||||
seconds: 60,
|
|
||||||
ifpass: false,
|
|
||||||
userInfo: {},
|
|
||||||
cancode: true, //判断是否是白名单
|
|
||||||
|
|
||||||
}
|
|
||||||
},
|
|
||||||
onLoad() {
|
|
||||||
this.userInfo = uni.getStorageSync('User')
|
|
||||||
this.getList()
|
|
||||||
this.checkIfWhite();
|
|
||||||
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
checkIfWhite() {
|
|
||||||
ban.checkIfWhite().then((res) => {
|
|
||||||
if (res.code == 200 && res.flag == "N") {
|
|
||||||
this.cancode = true;
|
|
||||||
} else if (res.code == 200 && res.flag == "Y") {
|
|
||||||
this.cancode = false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
codeChange(text) {
|
|
||||||
this.tips = text;
|
|
||||||
},
|
|
||||||
getCode() {
|
|
||||||
if (this.dataForm.phone && this.$u.test.mobile(this.dataForm.phone)) {
|
|
||||||
if (this.$refs.uCode.canGetCode) {
|
|
||||||
// 模拟向后端请求验证码
|
|
||||||
uni.showLoading({
|
|
||||||
title: '正在获取验证码'
|
|
||||||
})
|
|
||||||
ban.getVerification({
|
|
||||||
phone: this.dataForm.phone
|
|
||||||
}).then((res) => {
|
|
||||||
uni.hideLoading();
|
|
||||||
// 这里此提示会被this.start()方法中的提示覆盖
|
|
||||||
uni.$u.toast('验证码已发送');
|
|
||||||
// 通知验证码组件内部开始倒计时
|
|
||||||
this.$refs.uCode.start();
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
uni.$u.toast('倒计时结束后再发送');
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
uni.$u.toast(this.dataForm.phone ? '手机号格式不正确' : '请先输入手机号')
|
|
||||||
return
|
|
||||||
}
|
|
||||||
},
|
|
||||||
end() {
|
|
||||||
// uni.$u.toast('倒计时结束');
|
|
||||||
},
|
|
||||||
start() {
|
|
||||||
// uni.$u.toast('倒计时开始');
|
|
||||||
},
|
|
||||||
getList() {
|
|
||||||
ban.getBankCardChoiceList().then(res => {
|
|
||||||
this.bankCardChioceList = [res.data]
|
|
||||||
})
|
|
||||||
|
|
||||||
},
|
|
||||||
bindBank() {
|
|
||||||
if (!this.ifpass &&this.cancode &&this.userInfo.pkCountry == 1) {
|
|
||||||
uni.$u.toast('验证码错误')
|
|
||||||
return
|
|
||||||
}
|
|
||||||
ban.bindWalletBankAdd(this.dataForm).then(res => {
|
|
||||||
if (res.code == 200) {
|
|
||||||
uni.$u.toast(res.msg)
|
|
||||||
setTimeout(() => {
|
|
||||||
uni.navigateBack()
|
|
||||||
}, 1000)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
},
|
|
||||||
submit() {
|
|
||||||
this.$refs.uForm.validate().then(res => {
|
|
||||||
// 没有三方接口 临机写死
|
|
||||||
this.ifpass = true;
|
|
||||||
this.bindBank();
|
|
||||||
|
|
||||||
return
|
|
||||||
if (this.userInfo.pkCountry == 1) {
|
|
||||||
if(this.cancode){
|
|
||||||
ban.verifyBankCard(this.dataForm).then((res) => {
|
|
||||||
if (res.code == 200) {
|
|
||||||
this.ifpass = true;
|
|
||||||
this.bindBank();
|
|
||||||
} else {
|
|
||||||
this.ifpass = false;
|
|
||||||
uni.$u.toast(res.msg)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch((err) => {
|
|
||||||
this.ifpass = false;
|
|
||||||
});
|
|
||||||
}else{
|
|
||||||
this.ifpass = true;
|
|
||||||
this.bindBank();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.bindBank()
|
|
||||||
}
|
|
||||||
|
|
||||||
}).catch(errors => {
|
|
||||||
uni.$u.toast('校验失败')
|
|
||||||
return false
|
|
||||||
})
|
|
||||||
},
|
|
||||||
confirm(e) {
|
|
||||||
this.dataForm.bankName = e.value[0].bankName
|
|
||||||
this.dataForm.pkBank = e.value[0].pkId
|
|
||||||
this.showAmount = false
|
|
||||||
},
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.content {
|
.content {
|
||||||
background: #F2F2F2;
|
background: #f2f2f2;
|
||||||
|
|
||||||
.theform {
|
.theform {
|
||||||
margin-top: 6rpx;
|
margin-top: 6rpx;
|
||||||
background: #FFFFFF;
|
background: #ffffff;
|
||||||
padding: 20rpx 23rpx 0rpx 23rpx;
|
padding: 20rpx 23rpx 0rpx 23rpx;
|
||||||
|
|
||||||
.contentye {
|
.contentye {
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
margin-left: 200rpx;
|
margin-left: 200rpx;
|
||||||
font-family: Source Han Sans CN;
|
font-family: Source Han Sans CN;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
.btnbox {
|
||||||
|
margin-top: 38rpx;
|
||||||
|
padding: 0 20rpx;
|
||||||
|
|
||||||
.btnbox {
|
.subbtn {
|
||||||
margin-top: 38rpx;
|
background: #005bac;
|
||||||
padding: 0 20rpx;
|
border-radius: 46rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
font-family: Source Han Sans CN;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.subbtn {
|
.getcodes {
|
||||||
background: #005BAC;
|
width: 197rpx;
|
||||||
border-radius: 46rpx;
|
height: 76rpx;
|
||||||
font-size: 30rpx;
|
background: #2fbc42;
|
||||||
font-family: Source Han Sans CN;
|
border-radius: 38rpx;
|
||||||
font-weight: 400;
|
color: #fff;
|
||||||
color: #FFFFFF;
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.getcodes {
|
.tip-wrapper {
|
||||||
width: 197rpx;
|
margin: 20rpx 20rpx 0 20rpx;
|
||||||
height: 76rpx;
|
|
||||||
background: #2FBC42;
|
|
||||||
border-radius: 38rpx;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
.tip-content {
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
background: linear-gradient(135deg, #fff3e0 0%, #fff8f0 100%);
|
||||||
|
border: 2rpx solid #ffb74d;
|
||||||
|
border-radius: 16rpx;
|
||||||
|
padding: 20rpx 24rpx;
|
||||||
|
box-shadow: 0 4rpx 12rpx rgba(255, 183, 77, 0.1);
|
||||||
|
|
||||||
}
|
.tip-icon {
|
||||||
|
color: #ff9800;
|
||||||
|
font-size: 28rpx;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-right: 16rpx;
|
||||||
|
margin-top: 2rpx;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tip-text {
|
||||||
|
flex: 1;
|
||||||
|
font-size: 24rpx;
|
||||||
|
line-height: 36rpx;
|
||||||
|
color: #e65100;
|
||||||
|
font-weight: 500;
|
||||||
|
letter-spacing: 0.5rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
|
@ -1,225 +1,265 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<view class="tablebox" v-if="tableData.length > 0">
|
<view class="tablebox" v-if="tableData.length > 0">
|
||||||
<view class="card" v-for="(item, index) in tableData"
|
<view
|
||||||
:style="{ backgroundImage: 'url(' + item.backgroundImg + ')'}" :key="index">
|
class="card"
|
||||||
<view class="cardtopflex">
|
v-for="(item, index) in tableData"
|
||||||
<view class="cardtopflex2">
|
:style="{ backgroundImage: 'url(' + item.backgroundImg + ')' }"
|
||||||
<view class="imgbox"><img :src="item.logo" alt="" /></view>
|
:key="index"
|
||||||
<view class="titlebox">
|
>
|
||||||
<view class="cardtitle">{{item.bankName}}</view>
|
<view class="cardtopflex">
|
||||||
<view class="cardtitle2">{{'储蓄卡'}}</view>
|
<view class="cardtopflex2">
|
||||||
</view>
|
<view class="imgbox"><img :src="item.logo" alt="" /></view>
|
||||||
</view>
|
<view class="titlebox">
|
||||||
<view class="flexs_1" v-if="item.defaultCard==1">
|
<view class="cardtitle">{{ item.bankName }}</view>
|
||||||
<view class="qiu"></view>
|
<view class="cardtitle2">{{ '储蓄卡' }}</view>
|
||||||
<view v-if="userInfo.pkCountry == 1">{{'默认'}}</view>
|
</view>
|
||||||
<view v-else style="color: #000;font-weight: bold;" class="cardfooter">{{'默认'}}</view>
|
</view>
|
||||||
</view>
|
<view class="flexs_1" v-if="item.defaultCard == 1">
|
||||||
<view class="flexs_1" v-else>
|
<view class="qiu"></view>
|
||||||
|
<view v-if="userInfo.pkCountry == 1">{{ '默认' }}</view>
|
||||||
|
<view
|
||||||
|
v-else
|
||||||
|
style="color: #000; font-weight: bold"
|
||||||
|
class="cardfooter"
|
||||||
|
>{{ '默认' }}</view
|
||||||
|
>
|
||||||
|
</view>
|
||||||
|
<view class="flexs_1" v-else>
|
||||||
|
<view
|
||||||
|
style="color: #fff; font-weight: bold; cursor: pointer"
|
||||||
|
@click="setDefault(item.pkId)"
|
||||||
|
class="cardfooter"
|
||||||
|
>{{ '设为默认' }}</view
|
||||||
|
>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="cardNumber">{{ item.cardNumber }}</view>
|
||||||
|
<view
|
||||||
|
v-if="userInfo.pkCountry == 1"
|
||||||
|
class="cardfooter"
|
||||||
|
@click="removeBind(item)"
|
||||||
|
>
|
||||||
|
[{{ '解绑' }}]</view
|
||||||
|
>
|
||||||
|
<view
|
||||||
|
v-else
|
||||||
|
style="color: #000; font-weight: bold"
|
||||||
|
class="cardfooter"
|
||||||
|
@click="removeBind(item)"
|
||||||
|
>
|
||||||
|
[{{ '解绑' }}]</view
|
||||||
|
>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<u-modal
|
||||||
|
:showCancelButton="true"
|
||||||
|
@cancel="modalShow = false"
|
||||||
|
:content="'是否确认解绑银行卡'"
|
||||||
|
:show="modalShow"
|
||||||
|
@confirm="confirmRemove"
|
||||||
|
ref="uModal"
|
||||||
|
:asyncClose="true"
|
||||||
|
></u-modal>
|
||||||
|
<view class="footerbtn" @click="goAdd"> +{{ '添加银行卡' }} </view>
|
||||||
|
|
||||||
<view style="color: #fff; font-weight: bold; cursor: pointer" @click="setDefault(item.pkId)"
|
<u-modal
|
||||||
class="cardfooter">{{'设为默认'}}</view>
|
:showCancelButton="true"
|
||||||
</view>
|
@cancel="modalShow2 = false"
|
||||||
</view>
|
content="当前解绑为默银行卡,请设置为另一张卡为默认银行卡"
|
||||||
<view class="cardNumber">{{ item.cardNumber }}</view>
|
:show="modalShow2"
|
||||||
<view v-if="userInfo.pkCountry == 1" class="cardfooter" @click="removeBind(item)">
|
@confirm="confirmRemove2"
|
||||||
[{{'解绑'}}]</view>
|
ref="uModal"
|
||||||
<view v-else style="color: #000;font-weight: bold;" class="cardfooter" @click="removeBind(item)">
|
:asyncClose="true"
|
||||||
[{{'解绑'}}]</view>
|
></u-modal>
|
||||||
</view>
|
<!-- <el-button class="footerbtn" @click="bindBank(true)">{{'绑定银行卡'}}</el-button> -->
|
||||||
</view>
|
</view>
|
||||||
<u-modal :showCancelButton="true" @cancel="modalShow=false" :content="'是否确认解绑银行卡'" :show="modalShow"
|
|
||||||
@confirm="confirmRemove" ref="uModal" :asyncClose="true"></u-modal>
|
|
||||||
<view class="footerbtn" @click="goAdd">
|
|
||||||
+{{'添加银行卡'}}
|
|
||||||
</view>
|
|
||||||
|
|
||||||
<u-modal :showCancelButton="true" @cancel="modalShow2=false" content="当前解绑为默银行卡,请设置为另一张卡为默认银行卡"
|
|
||||||
:show="modalShow2" @confirm="confirmRemove2" ref="uModal" :asyncClose="true"></u-modal>
|
|
||||||
<!-- <el-button class="footerbtn" @click="bindBank(true)">{{'绑定银行卡'}}</el-button> -->
|
|
||||||
</view>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import * as ban from "@/config/balance.js"
|
import * as ban from '@/config/balance.js'
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
tableData: [],
|
tableData: [],
|
||||||
modalShow: false,
|
modalShow: false,
|
||||||
modalShow2: false,
|
modalShow2: false,
|
||||||
pkId: "",
|
pkId: '',
|
||||||
userInfo: {}
|
userInfo: {},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad() {
|
onLoad() {
|
||||||
this.userInfo = uni.getStorageSync('User')
|
this.userInfo = uni.getStorageSync('User')
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
this.getSearch()
|
this.getSearch()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
setDefault(pkId) {
|
setDefault(pkId) {
|
||||||
ban.updateDefault({
|
ban
|
||||||
pkId: pkId
|
.updateDefault({
|
||||||
}).then((res) => {
|
pkId: pkId,
|
||||||
if (res.code == 200) {
|
})
|
||||||
uni.$u.toast(res.msg)
|
.then(res => {
|
||||||
this.getSearch();
|
if (res.code == 200) {
|
||||||
} else {
|
uni.$u.toast(res.msg)
|
||||||
uni.$u.toast(res.msg)
|
this.getSearch()
|
||||||
}
|
} else {
|
||||||
});
|
uni.$u.toast(res.msg)
|
||||||
},
|
}
|
||||||
goAdd() {
|
})
|
||||||
uni.navigateTo({
|
},
|
||||||
url: '/pages/mine/bindBank/bindBank'
|
goAdd() {
|
||||||
})
|
uni.navigateTo({
|
||||||
},
|
url: '/pages/mine/bindBank/bindBank',
|
||||||
removeBind(item) {
|
})
|
||||||
this.pkId = item.pkId
|
},
|
||||||
if (item.defaultCard == 1) {
|
removeBind(item) {
|
||||||
this.modalShow2 = true
|
this.pkId = item.pkId
|
||||||
} else {
|
if (item.defaultCard == 1) {
|
||||||
this.modalShow = true
|
this.modalShow2 = true
|
||||||
}
|
} else {
|
||||||
|
this.modalShow = true
|
||||||
},
|
}
|
||||||
confirmRemove2() {
|
},
|
||||||
this.modalShow2 =false
|
confirmRemove2() {
|
||||||
this.modalShow = true
|
this.modalShow2 = false
|
||||||
},
|
// this.modalShow = true
|
||||||
//解除绑定
|
},
|
||||||
confirmRemove() {
|
//解除绑定
|
||||||
ban.removeBankBind({
|
confirmRemove() {
|
||||||
pkId: this.pkId
|
ban
|
||||||
}).then((res) => {
|
.removeBankBind({
|
||||||
if (res.code == 200) {
|
pkId: this.pkId,
|
||||||
uni.$u.toast(res.msg)
|
})
|
||||||
this.modalShow = false
|
.then(res => {
|
||||||
this.getSearch();
|
if (res.code == 200) {
|
||||||
} else {
|
uni.$u.toast(res.msg)
|
||||||
uni.$u.toast(res.msg)
|
this.modalShow = false
|
||||||
this.modalShow = false
|
this.getSearch()
|
||||||
}
|
} else {
|
||||||
});
|
uni.$u.toast(res.msg)
|
||||||
},
|
this.modalShow = false
|
||||||
//点击绑定银行卡
|
}
|
||||||
bindBank(val) {
|
})
|
||||||
// this.isAdd = true;
|
},
|
||||||
// this.jdTl = val;
|
//点击绑定银行卡
|
||||||
},
|
bindBank(val) {
|
||||||
getSearch() {
|
// this.isAdd = true;
|
||||||
ban.getBankList().then((res) => {
|
// this.jdTl = val;
|
||||||
this.tableData = res.data;
|
},
|
||||||
});
|
getSearch() {
|
||||||
},
|
ban.getBankList().then(res => {
|
||||||
}
|
this.tableData = res.data
|
||||||
}
|
})
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.content {
|
.content {
|
||||||
background-color: #f9f9f9;
|
background-color: #f9f9f9;
|
||||||
padding: 22rpx;
|
padding: 22rpx;
|
||||||
|
|
||||||
.tablebox {
|
.tablebox {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|
||||||
.card {
|
.card {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background-color: rgba(170, 45, 42, 0.9);
|
background-color: rgba(170, 45, 42, 0.9);
|
||||||
background-size: 100% 100%;
|
background-size: 100% 100%;
|
||||||
border-radius: 20rpx;
|
border-radius: 20rpx;
|
||||||
margin: 20rpx 0;
|
margin: 20rpx 0;
|
||||||
padding: 28rpx 32rpx 40rpx 32rpx;
|
padding: 28rpx 32rpx 40rpx 32rpx;
|
||||||
margin-top: 20rpx;
|
margin-top: 20rpx;
|
||||||
|
|
||||||
.cardtopflex {
|
.cardtopflex {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|
||||||
.flexs_1 {
|
.flexs_1 {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-right: 20rpx;
|
margin-right: 20rpx;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
|
|
||||||
.qiu {
|
.qiu {
|
||||||
margin-right: 10rpx;
|
margin-right: 10rpx;
|
||||||
width: 20rpx;
|
width: 20rpx;
|
||||||
height: 20rpx;
|
height: 20rpx;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
background: rgb(47, 236, 47);
|
background: rgb(47, 236, 47);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.cardtopflex2 {
|
.cardtopflex2 {
|
||||||
.imgbox {
|
.imgbox {
|
||||||
margin-right: 20rpx;
|
margin-right: 20rpx;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: 68rpx;
|
width: 68rpx;
|
||||||
height: 68rpx;
|
height: 68rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.titlebox {
|
.titlebox {
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
|
|
||||||
.cardtitle {
|
.cardtitle {
|
||||||
font-size: 36rpx;
|
font-size: 36rpx;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cardtitle2 {
|
.cardtitle2 {
|
||||||
font-size: 20rpx;
|
font-size: 20rpx;
|
||||||
margin-top: 8rpx;
|
margin-top: 8rpx;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
.cardNumber {
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-family:
|
||||||
|
PingFang SC-Medium,
|
||||||
|
PingFang SC;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #ffffff;
|
||||||
|
margin-top: 100rpx;
|
||||||
|
margin-left: 36rpx;
|
||||||
|
}
|
||||||
|
|
||||||
.cardNumber {
|
.cardfooter {
|
||||||
font-size: 32rpx;
|
text-align: right;
|
||||||
font-family: PingFang SC-Medium, PingFang SC;
|
font-size: 24rpx;
|
||||||
font-weight: 600;
|
font-family:
|
||||||
color: #ffffff;
|
PingFang SC-Regular,
|
||||||
margin-top: 100rpx;
|
PingFang SC;
|
||||||
margin-left: 36rpx;
|
font-weight: 400;
|
||||||
}
|
color: #ffffff;
|
||||||
|
margin-top: 24rpx;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.cardfooter {
|
.footerbtn {
|
||||||
text-align: right;
|
display: flex;
|
||||||
font-size: 24rpx;
|
align-items: center;
|
||||||
font-family: PingFang SC-Regular, PingFang SC;
|
padding: 40rpx;
|
||||||
font-weight: 400;
|
background: #ffffff;
|
||||||
color: #ffffff;
|
font-size: 24rpx;
|
||||||
margin-top: 24rpx;
|
font-weight: 600;
|
||||||
cursor: pointer;
|
border-radius: 20rpx;
|
||||||
}
|
margin-top: 32rpx;
|
||||||
}
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
.footerbtn {
|
|
||||||
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
padding: 40rpx;
|
|
||||||
background: #ffffff;
|
|
||||||
font-size: 24rpx;
|
|
||||||
font-weight: 600;
|
|
||||||
border-radius: 20rpx;
|
|
||||||
margin-top: 32rpx;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
Loading…
Reference in New Issue