forked from angelo/web-retail-h5
Compare commits
No commits in common. "737d39e3d14a77174d2897301b94a0bd4b822484" and "50798c937640d28687620222833ed54370ff34f3" have entirely different histories.
737d39e3d1
...
50798c9376
|
|
@ -77,7 +77,11 @@
|
|||
<!-- 普通列表数据 -->
|
||||
<view v-if="normalList.length > 0" class="normal-list">
|
||||
<view class="list-content">
|
||||
<view v-for="item in normalList" :key="item.id" class="list-item">
|
||||
<view
|
||||
v-for="(item, index) in normalList"
|
||||
:key="item.id"
|
||||
class="list-item"
|
||||
>
|
||||
<!-- <view class="item-index" :class="getRankClass(index + 1)">{{
|
||||
index + 1
|
||||
}}</view> -->
|
||||
|
|
@ -128,22 +132,14 @@
|
|||
></u-loading-icon>
|
||||
<text class="loading-text">加载中...</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 空状态 - 基于total为0判断 -->
|
||||
<view v-if="!loading && total === 0" class="empty-state-container">
|
||||
<view class="empty-state">
|
||||
<view class="empty-icon">
|
||||
<u-icon name="file-text" color="#d0d7de" size="60"></u-icon>
|
||||
</view>
|
||||
<text class="empty-title">暂无业绩数据</text>
|
||||
<text class="empty-desc"
|
||||
>{{ whatYear }}年{{ whatMounth }}月暂时没有业绩分布数据</text
|
||||
<!-- 空状态 -->
|
||||
<view
|
||||
v-if="!loading && normalList.length === 0 && !specialData"
|
||||
class="empty-state"
|
||||
>
|
||||
<view class="empty-action" @tap="refresh">
|
||||
<u-icon name="reload" color="#005bac" size="16"></u-icon>
|
||||
<text class="refresh-text">点击刷新</text>
|
||||
<view class="empty-icon">📊</view>
|
||||
<text class="empty-text">暂无业绩数据</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -172,8 +168,6 @@ export default {
|
|||
yjTypeList: [],
|
||||
yearShow: false,
|
||||
whatYear: '',
|
||||
currentYear: new Date().getFullYear(), // 当前真实年份
|
||||
currentMonth: new Date().getMonth() + 1, // 当前真实月份
|
||||
selYearList: [
|
||||
{
|
||||
value: 0,
|
||||
|
|
@ -184,7 +178,56 @@ export default {
|
|||
label: new Date().getFullYear(),
|
||||
},
|
||||
],
|
||||
mounthList: [], // 改为动态生成
|
||||
mounthList: [
|
||||
{
|
||||
value: '01',
|
||||
label: 1 + '月',
|
||||
},
|
||||
{
|
||||
value: '02',
|
||||
label: 2 + '月',
|
||||
},
|
||||
{
|
||||
value: '03',
|
||||
label: 3 + '月',
|
||||
},
|
||||
{
|
||||
value: '04',
|
||||
label: 4 + '月',
|
||||
},
|
||||
{
|
||||
value: '05',
|
||||
label: 5 + '月',
|
||||
},
|
||||
{
|
||||
value: '06',
|
||||
label: 6 + '月',
|
||||
},
|
||||
{
|
||||
value: '07',
|
||||
label: 7 + '月',
|
||||
},
|
||||
{
|
||||
value: '08',
|
||||
label: 8 + '月',
|
||||
},
|
||||
{
|
||||
value: '09',
|
||||
label: 9 + '月',
|
||||
},
|
||||
{
|
||||
value: '10',
|
||||
label: 10 + '月',
|
||||
},
|
||||
{
|
||||
value: '11',
|
||||
label: 11 + '月',
|
||||
},
|
||||
{
|
||||
value: '12',
|
||||
label: 12 + '月',
|
||||
},
|
||||
],
|
||||
|
||||
// 列表数据相关
|
||||
specialData: null, // 特殊数据(第一页第一条)
|
||||
|
|
@ -202,47 +245,19 @@ export default {
|
|||
},
|
||||
methods: {
|
||||
changeYear(e) {
|
||||
const selectedYear = this.selYearList[e.detail.value].label
|
||||
this.whatYear = selectedYear
|
||||
|
||||
// 生成新的月份列表
|
||||
this.generateMonthList(selectedYear)
|
||||
|
||||
// 如果从上一年切换到当年,且当前选中月份大于真实当前月,则调整为当前月
|
||||
if (selectedYear === this.currentYear) {
|
||||
const currentMonthNum = parseInt(this.whatMounth)
|
||||
if (currentMonthNum > this.currentMonth) {
|
||||
this.whatMounth = this.currentMonth.toString().padStart(2, '0')
|
||||
}
|
||||
}
|
||||
|
||||
this.whatYear = this.selYearList[e.detail.value].label
|
||||
this.refresh()
|
||||
},
|
||||
bindPickerChange(e) {
|
||||
// 使用月份列表中的value值
|
||||
this.whatMounth = this.mounthList[e.detail.value].value
|
||||
this.whatMounth = e.detail.value
|
||||
this.refresh()
|
||||
},
|
||||
|
||||
// 获取当前年/月
|
||||
initDate() {
|
||||
this.whatMounth = this.currentMonth.toString().padStart(2, '0')
|
||||
this.whatYear = this.currentYear
|
||||
// 初始化月份列表
|
||||
this.generateMonthList(this.currentYear)
|
||||
},
|
||||
|
||||
// 动态生成月份列表
|
||||
generateMonthList(year) {
|
||||
const maxMonth = year === this.currentYear ? this.currentMonth : 12
|
||||
this.mounthList = []
|
||||
|
||||
for (let i = 1; i <= maxMonth; i++) {
|
||||
this.mounthList.push({
|
||||
value: i.toString().padStart(2, '0'),
|
||||
label: i + '月',
|
||||
})
|
||||
}
|
||||
const month = new Date().getMonth() + 1
|
||||
this.whatMounth = month.toString().padStart(2, '0')
|
||||
this.whatYear = new Date().getFullYear()
|
||||
},
|
||||
|
||||
// 获取月度业绩数据
|
||||
|
|
@ -332,7 +347,7 @@ export default {
|
|||
|
||||
// 全宽日期选择器样式
|
||||
.date-selector-container {
|
||||
padding: 10rpx 20rpx 10rpx;
|
||||
padding: 20rpx;
|
||||
}
|
||||
|
||||
.date-selector-full {
|
||||
|
|
@ -426,7 +441,7 @@ export default {
|
|||
|
||||
/* 业绩分布列表样式 */
|
||||
.performance-list-container {
|
||||
padding: 10rpx 20rpx 0;
|
||||
padding: 20rpx;
|
||||
padding-bottom: 60rpx;
|
||||
background-color: #f5f7fa;
|
||||
min-height: 100vh;
|
||||
|
|
@ -659,79 +674,20 @@ export default {
|
|||
font-size: 20rpx;
|
||||
}
|
||||
|
||||
/* 空状态容器样式 */
|
||||
.empty-state-container {
|
||||
background: #ffffff;
|
||||
border-radius: 16rpx;
|
||||
margin: 0;
|
||||
box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
.empty-state {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 100rpx 40rpx 80rpx;
|
||||
padding: 80rpx 40rpx;
|
||||
gap: 20rpx;
|
||||
}
|
||||
|
||||
.empty-icon {
|
||||
margin-bottom: 16rpx;
|
||||
opacity: 0.6;
|
||||
animation: float 3s ease-in-out infinite;
|
||||
font-size: 80rpx;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.empty-title {
|
||||
color: #333333;
|
||||
font-size: 28rpx;
|
||||
font-weight: 600;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
|
||||
.empty-desc {
|
||||
color: #666666;
|
||||
font-size: 24rpx;
|
||||
text-align: center;
|
||||
line-height: 1.5;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
|
||||
.empty-action {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 8rpx;
|
||||
padding: 12rpx 24rpx;
|
||||
background: rgba(0, 91, 172, 0.1);
|
||||
border-radius: 20rpx;
|
||||
border: 1rpx solid rgba(0, 91, 172, 0.2);
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.empty-action:active {
|
||||
background: rgba(0, 91, 172, 0.15);
|
||||
transform: scale(0.98);
|
||||
}
|
||||
|
||||
.refresh-text {
|
||||
color: #005bac;
|
||||
font-size: 22rpx;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* 浮动动画 */
|
||||
@keyframes float {
|
||||
0%,
|
||||
100% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
50% {
|
||||
transform: translateY(-8rpx);
|
||||
}
|
||||
}
|
||||
|
||||
/* 旧的空状态样式保留(以防其他地方使用) */
|
||||
.empty-text {
|
||||
color: #999999;
|
||||
font-size: 24rpx;
|
||||
|
|
|
|||
|
|
@ -18,6 +18,12 @@ export const getDefaultBank = params =>
|
|||
params,
|
||||
})
|
||||
|
||||
//校验是否绑定银行卡
|
||||
export const checkIsbindBank = params =>
|
||||
http.get('/member/api/bank/is-bind', {
|
||||
params,
|
||||
})
|
||||
|
||||
//提现页面展示
|
||||
export const getWidthdrawShow = params =>
|
||||
http.get('/member/api/withdraw/show/add', {
|
||||
|
|
@ -84,6 +90,12 @@ export const getVerification = params =>
|
|||
export const verifyBankCard = params =>
|
||||
http.post('/member/api/bank/verify-bank-card', params)
|
||||
|
||||
//是否配置白名单 白名单不进行银行卡四要素校验
|
||||
export const checkIfWhite = params =>
|
||||
http.get('/member/api/bank/is-white-list', {
|
||||
params,
|
||||
})
|
||||
|
||||
//银行卡选择下拉选
|
||||
export const getBankCardChoiceList = params =>
|
||||
http.get('/system/api/bank/list', {
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ module.exports = vm => {
|
|||
|
||||
//#ifdef DEV_SERVER
|
||||
console.log('DEV_SERVER')
|
||||
config.baseURL = 'https://t-bl.beida777.com/prod-api'
|
||||
config.baseURL = 'http://192.168.0.86:8080'
|
||||
//#endif
|
||||
|
||||
//#ifdef QA_SERVER
|
||||
|
|
|
|||
|
|
@ -232,14 +232,13 @@ export default {
|
|||
url: item.path,
|
||||
})
|
||||
} else if (res.code == 200 && res.flag == 'N') {
|
||||
this.smShow = true
|
||||
uni.showToast({
|
||||
title: '请先进行实名认证',
|
||||
})
|
||||
setTimeout(() => {
|
||||
uni.navigateTo({
|
||||
url: '/pages/selfService/realName/realName',
|
||||
})
|
||||
}, 300)
|
||||
uni.navigateTo({
|
||||
url: '/pages/selfService/realName/realName',
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
|||
|
|
@ -134,16 +134,7 @@
|
|||
<u-button class="subbtn" @click="submit">{{ '提现' }}</u-button>
|
||||
</view>
|
||||
<u-toast ref="uToast"></u-toast>
|
||||
<u-modal
|
||||
:show="unBindDefaultModal"
|
||||
showCancelButton
|
||||
@cancel="unBindDefaultModal = false"
|
||||
cancelText="取消"
|
||||
confirmText="确定"
|
||||
@confirm="unBindDefaultConfirm"
|
||||
>
|
||||
请先绑定默认银行卡
|
||||
</u-modal>
|
||||
|
||||
<!-- 提现引导弹窗 -->
|
||||
<!-- <WithdrawalGuide
|
||||
:show="showWithdrawalGuide"
|
||||
|
|
@ -202,9 +193,8 @@ export default {
|
|||
bankData: {},
|
||||
widthDrwaData: {},
|
||||
ifeye: false,
|
||||
canbind: true,
|
||||
canbind: false,
|
||||
showWithdrawalGuide: false,
|
||||
unBindDefaultModal: false,
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
|
@ -215,7 +205,7 @@ export default {
|
|||
url: '/pages/mine/balance/withdrawlDetail',
|
||||
})
|
||||
},
|
||||
onShow() {
|
||||
onLoad() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
|
|
@ -243,26 +233,16 @@ export default {
|
|||
}
|
||||
})
|
||||
bal.getDefaultBank().then(res => {
|
||||
if (res.data && Object.keys(res.data).length > 0) {
|
||||
this.bankData = res.data
|
||||
this.dataForm.pkBank = res.data.pkId
|
||||
} else {
|
||||
this.unBindDefaultModal = true
|
||||
}
|
||||
this.bankData = res.data
|
||||
this.dataForm.pkBank = res.data.pkId
|
||||
})
|
||||
//校验是否绑定银行卡
|
||||
// bal.checkIsbindBank().then(res => {
|
||||
// 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',
|
||||
bal.checkIsbindBank().then(res => {
|
||||
if (res.flag == 'Y') {
|
||||
this.canbind = false
|
||||
} else if (res.flag == 'N') {
|
||||
this.canbind = true
|
||||
}
|
||||
})
|
||||
},
|
||||
submit() {
|
||||
|
|
@ -272,13 +252,10 @@ export default {
|
|||
bal.addWithdraw(this.dataForm).then(res => {
|
||||
if (res.code == 200) {
|
||||
this.$refs.uToast.show({
|
||||
message: res.msg || '提现成功',
|
||||
message: res.msg,
|
||||
type: 'success',
|
||||
})
|
||||
setTimeout(() => {
|
||||
uni.navigateBack()
|
||||
}, 500)
|
||||
|
||||
uni.navigateBack()
|
||||
// 显示提现引导弹窗
|
||||
// setTimeout(() => {
|
||||
// this.showWithdrawalGuide = true
|
||||
|
|
|
|||
|
|
@ -7,9 +7,21 @@
|
|||
:rules="rules"
|
||||
ref="uForm"
|
||||
>
|
||||
<u-form-item
|
||||
label-width="200rpx"
|
||||
:label="'银行卡号'"
|
||||
borderBottom
|
||||
prop="cardNumber"
|
||||
ref="item1"
|
||||
>
|
||||
<u--input
|
||||
v-model="dataForm.cardNumber"
|
||||
disabledColor="#F5F5F5;"
|
||||
border="none"
|
||||
></u--input>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
borderBottom
|
||||
required
|
||||
label-width="200rpx"
|
||||
:label="'银行名称'"
|
||||
prop="bankName"
|
||||
|
|
@ -28,7 +40,6 @@
|
|||
<u-form-item
|
||||
label-width="200rpx"
|
||||
:label="'开户支行'"
|
||||
required
|
||||
prop="subBankName"
|
||||
borderBottom
|
||||
ref="item1"
|
||||
|
|
@ -41,22 +52,7 @@
|
|||
</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
|
||||
:label="'真实姓名'"
|
||||
prop="accountName"
|
||||
borderBottom
|
||||
ref="item1"
|
||||
|
|
@ -70,7 +66,6 @@
|
|||
<u-form-item
|
||||
label-width="200rpx"
|
||||
:label="'证件号码'"
|
||||
required
|
||||
prop="idCard"
|
||||
borderBottom
|
||||
ref="item1"
|
||||
|
|
@ -86,7 +81,6 @@
|
|||
label-width="200rpx"
|
||||
:label="'联系方式'"
|
||||
prop="phone"
|
||||
required
|
||||
borderBottom
|
||||
ref="item1"
|
||||
>
|
||||
|
|
@ -101,7 +95,6 @@
|
|||
v-if="userInfo.pkCountry == 1 && cancode"
|
||||
label-width="200rpx"
|
||||
:label="'验证码'"
|
||||
required
|
||||
prop="verificationCode"
|
||||
borderBottom
|
||||
ref="item1"
|
||||
|
|
@ -138,13 +131,6 @@
|
|||
></u-picker>
|
||||
</u--form>
|
||||
</view>
|
||||
<view class="tip-wrapper">
|
||||
<view class="tip-content">
|
||||
<view class="tip-text"
|
||||
>银行卡号、真实姓名、证件号码、联系方式,请与银行预留信息保持一致</view
|
||||
>
|
||||
</view>
|
||||
</view>
|
||||
<view class="btnbox">
|
||||
<u-button class="subbtn" @click="submit">{{ '确定' }}</u-button>
|
||||
</view>
|
||||
|
|
@ -235,8 +221,18 @@ export default {
|
|||
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
|
||||
},
|
||||
|
|
@ -299,7 +295,9 @@ export default {
|
|||
.then(res => {
|
||||
// 没有三方接口 临机写死
|
||||
this.ifpass = true
|
||||
this.bindBank()
|
||||
|
||||
return
|
||||
if (this.userInfo.pkCountry == 1) {
|
||||
if (this.cancode) {
|
||||
ban
|
||||
|
|
@ -376,37 +374,5 @@ export default {
|
|||
border-radius: 38rpx;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.tip-wrapper {
|
||||
margin: 20rpx 20rpx 0 20rpx;
|
||||
|
||||
.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>
|
||||
|
|
|
|||
|
|
@ -1,265 +1,225 @@
|
|||
<template>
|
||||
<view class="content">
|
||||
<view class="tablebox" v-if="tableData.length > 0">
|
||||
<view
|
||||
class="card"
|
||||
v-for="(item, index) in tableData"
|
||||
:style="{ backgroundImage: 'url(' + item.backgroundImg + ')' }"
|
||||
:key="index"
|
||||
>
|
||||
<view class="cardtopflex">
|
||||
<view class="cardtopflex2">
|
||||
<view class="imgbox"><img :src="item.logo" alt="" /></view>
|
||||
<view class="titlebox">
|
||||
<view class="cardtitle">{{ item.bankName }}</view>
|
||||
<view class="cardtitle2">{{ '储蓄卡' }}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flexs_1" v-if="item.defaultCard == 1">
|
||||
<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 class="content">
|
||||
<view class="tablebox" v-if="tableData.length > 0">
|
||||
<view class="card" v-for="(item, index) in tableData"
|
||||
:style="{ backgroundImage: 'url(' + item.backgroundImg + ')'}" :key="index">
|
||||
<view class="cardtopflex">
|
||||
<view class="cardtopflex2">
|
||||
<view class="imgbox"><img :src="item.logo" alt="" /></view>
|
||||
<view class="titlebox">
|
||||
<view class="cardtitle">{{item.bankName}}</view>
|
||||
<view class="cardtitle2">{{'储蓄卡'}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flexs_1" v-if="item.defaultCard==1">
|
||||
<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>
|
||||
|
||||
<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>
|
||||
<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>
|
||||
|
||||
<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>
|
||||
|
||||
<script>
|
||||
import * as ban from '@/config/balance.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tableData: [],
|
||||
modalShow: false,
|
||||
modalShow2: false,
|
||||
pkId: '',
|
||||
userInfo: {},
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.userInfo = uni.getStorageSync('User')
|
||||
},
|
||||
onShow() {
|
||||
this.getSearch()
|
||||
},
|
||||
methods: {
|
||||
setDefault(pkId) {
|
||||
ban
|
||||
.updateDefault({
|
||||
pkId: pkId,
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 200) {
|
||||
uni.$u.toast(res.msg)
|
||||
this.getSearch()
|
||||
} else {
|
||||
uni.$u.toast(res.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
goAdd() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/mine/bindBank/bindBank',
|
||||
})
|
||||
},
|
||||
removeBind(item) {
|
||||
this.pkId = item.pkId
|
||||
if (item.defaultCard == 1) {
|
||||
this.modalShow2 = true
|
||||
} else {
|
||||
this.modalShow = true
|
||||
}
|
||||
},
|
||||
confirmRemove2() {
|
||||
this.modalShow2 = false
|
||||
// this.modalShow = true
|
||||
},
|
||||
//解除绑定
|
||||
confirmRemove() {
|
||||
ban
|
||||
.removeBankBind({
|
||||
pkId: this.pkId,
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 200) {
|
||||
uni.$u.toast(res.msg)
|
||||
this.modalShow = false
|
||||
this.getSearch()
|
||||
} else {
|
||||
uni.$u.toast(res.msg)
|
||||
this.modalShow = false
|
||||
}
|
||||
})
|
||||
},
|
||||
//点击绑定银行卡
|
||||
bindBank(val) {
|
||||
// this.isAdd = true;
|
||||
// this.jdTl = val;
|
||||
},
|
||||
getSearch() {
|
||||
ban.getBankList().then(res => {
|
||||
this.tableData = res.data
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
import * as ban from "@/config/balance.js"
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tableData: [],
|
||||
modalShow: false,
|
||||
modalShow2: false,
|
||||
pkId: "",
|
||||
userInfo: {}
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
this.userInfo = uni.getStorageSync('User')
|
||||
},
|
||||
onShow() {
|
||||
this.getSearch()
|
||||
},
|
||||
methods: {
|
||||
setDefault(pkId) {
|
||||
ban.updateDefault({
|
||||
pkId: pkId
|
||||
}).then((res) => {
|
||||
if (res.code == 200) {
|
||||
uni.$u.toast(res.msg)
|
||||
this.getSearch();
|
||||
} else {
|
||||
uni.$u.toast(res.msg)
|
||||
}
|
||||
});
|
||||
},
|
||||
goAdd() {
|
||||
uni.navigateTo({
|
||||
url: '/pages/mine/bindBank/bindBank'
|
||||
})
|
||||
},
|
||||
removeBind(item) {
|
||||
this.pkId = item.pkId
|
||||
if (item.defaultCard == 1) {
|
||||
this.modalShow2 = true
|
||||
} else {
|
||||
this.modalShow = true
|
||||
}
|
||||
|
||||
},
|
||||
confirmRemove2() {
|
||||
this.modalShow2 =false
|
||||
this.modalShow = true
|
||||
},
|
||||
//解除绑定
|
||||
confirmRemove() {
|
||||
ban.removeBankBind({
|
||||
pkId: this.pkId
|
||||
}).then((res) => {
|
||||
if (res.code == 200) {
|
||||
uni.$u.toast(res.msg)
|
||||
this.modalShow = false
|
||||
this.getSearch();
|
||||
} else {
|
||||
uni.$u.toast(res.msg)
|
||||
this.modalShow = false
|
||||
}
|
||||
});
|
||||
},
|
||||
//点击绑定银行卡
|
||||
bindBank(val) {
|
||||
// this.isAdd = true;
|
||||
// this.jdTl = val;
|
||||
},
|
||||
getSearch() {
|
||||
ban.getBankList().then((res) => {
|
||||
this.tableData = res.data;
|
||||
});
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.content {
|
||||
background-color: #f9f9f9;
|
||||
padding: 22rpx;
|
||||
.content {
|
||||
background-color: #f9f9f9;
|
||||
padding: 22rpx;
|
||||
|
||||
.tablebox {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
.tablebox {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
|
||||
.card {
|
||||
width: 100%;
|
||||
background-color: rgba(170, 45, 42, 0.9);
|
||||
background-size: 100% 100%;
|
||||
border-radius: 20rpx;
|
||||
margin: 20rpx 0;
|
||||
padding: 28rpx 32rpx 40rpx 32rpx;
|
||||
margin-top: 20rpx;
|
||||
.card {
|
||||
width: 100%;
|
||||
background-color: rgba(170, 45, 42, 0.9);
|
||||
background-size: 100% 100%;
|
||||
border-radius: 20rpx;
|
||||
margin: 20rpx 0;
|
||||
padding: 28rpx 32rpx 40rpx 32rpx;
|
||||
margin-top: 20rpx;
|
||||
|
||||
.cardtopflex {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
.cardtopflex {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
.flexs_1 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 20rpx;
|
||||
color: #ffffff;
|
||||
font-size: 24rpx;
|
||||
.flexs_1 {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 20rpx;
|
||||
color: #ffffff;
|
||||
font-size: 24rpx;
|
||||
|
||||
.qiu {
|
||||
margin-right: 10rpx;
|
||||
width: 20rpx;
|
||||
height: 20rpx;
|
||||
border-radius: 50%;
|
||||
background: rgb(47, 236, 47);
|
||||
}
|
||||
}
|
||||
.qiu {
|
||||
margin-right: 10rpx;
|
||||
width: 20rpx;
|
||||
height: 20rpx;
|
||||
border-radius: 50%;
|
||||
background: rgb(47, 236, 47);
|
||||
}
|
||||
}
|
||||
|
||||
.cardtopflex2 {
|
||||
.imgbox {
|
||||
margin-right: 20rpx;
|
||||
.cardtopflex2 {
|
||||
.imgbox {
|
||||
margin-right: 20rpx;
|
||||
|
||||
img {
|
||||
width: 68rpx;
|
||||
height: 68rpx;
|
||||
}
|
||||
}
|
||||
img {
|
||||
width: 68rpx;
|
||||
height: 68rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.titlebox {
|
||||
color: #ffffff;
|
||||
text-align: left;
|
||||
.titlebox {
|
||||
color: #ffffff;
|
||||
text-align: left;
|
||||
|
||||
.cardtitle {
|
||||
font-size: 36rpx;
|
||||
font-weight: 600;
|
||||
}
|
||||
.cardtitle {
|
||||
font-size: 36rpx;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.cardtitle2 {
|
||||
font-size: 20rpx;
|
||||
margin-top: 8rpx;
|
||||
font-weight: 400;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.cardtitle2 {
|
||||
font-size: 20rpx;
|
||||
margin-top: 8rpx;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
.cardfooter {
|
||||
text-align: right;
|
||||
font-size: 24rpx;
|
||||
font-family:
|
||||
PingFang SC-Regular,
|
||||
PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
margin-top: 24rpx;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
.cardNumber {
|
||||
font-size: 32rpx;
|
||||
font-family: PingFang SC-Medium, PingFang SC;
|
||||
font-weight: 600;
|
||||
color: #ffffff;
|
||||
margin-top: 100rpx;
|
||||
margin-left: 36rpx;
|
||||
}
|
||||
|
||||
.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>
|
||||
.cardfooter {
|
||||
text-align: right;
|
||||
font-size: 24rpx;
|
||||
font-family: PingFang SC-Regular, PingFang SC;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
margin-top: 24rpx;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.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>
|
||||
Loading…
Reference in New Issue