191 lines
4.3 KiB
Vue
191 lines
4.3 KiB
Vue
|
|
<template>
|
|||
|
|
<view>
|
|||
|
|
<template v-if="listData.length > 0">
|
|||
|
|
<view class="cared-list">
|
|||
|
|
<view v-for="(item, index) in listData" :key="index" class="card-item hh100">
|
|||
|
|
<image class="mr20 card-bg" :src="item.backgroundImg" mode="aspectFill"></image>
|
|||
|
|
<view class="d-b-c mb20 pr" style="z-index: 1;">
|
|||
|
|
<view class="flex-1 d-b-s" style="height: 80rpx;">
|
|||
|
|
<image class="mr20" :src="item.logo" mode=""
|
|||
|
|
style="width: 80rpx;height: 80rpx;flex-shrink: 0;"></image>
|
|||
|
|
<view class="flex-1">
|
|||
|
|
<view class="f36 fb mb10">{{item.bankName}}</view>
|
|||
|
|
<view class="f24 fb">{{getCardInfo(item.cardNumber,'cardTypeName')}}</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="d-e-c" v-if="item.defaultCard">
|
|||
|
|
<view class="tips-box mr10"></view>
|
|||
|
|
<view class="fb f28">{{$t('w_0263')}}</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="d-e-c" v-else>
|
|||
|
|
<view class="defaul-btn" @click="setDefault(item.pkId)">{{$t('PER_DA_23')}}</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
<view class="pr" style="z-index: 1;margin-top: 180rpx;margin-left: 34rpx;">
|
|||
|
|
<view class="flex-1 f32 fb ">{{ item.cardNumber }}</view>
|
|||
|
|
<view class="d-e-c" style="margin-top: 46rpx;">
|
|||
|
|
<view class="f28 fb ml20" @click="unBind(item.pkId)">[{{$t('MY_ORD_68')}}]</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
<template v-else>
|
|||
|
|
<view>
|
|||
|
|
<image class="card-null" src="/static/bg/card-null.png" mode=""></image>
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
<button class="normal-sub-btn" @click="gotoPage('/pages/user/card/add')">{{$t('w_0179')}}</button>
|
|||
|
|
</view>
|
|||
|
|
</template>
|
|||
|
|
|
|||
|
|
<script>
|
|||
|
|
import cardJs from './card.js';
|
|||
|
|
export default {
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
listData: [
|
|||
|
|
// {
|
|||
|
|
// pkBank: 505, //银行
|
|||
|
|
// cardNumber: '6212613047007675463', //银行卡号
|
|||
|
|
// backgroundImg: 'https://hzs-in.oss-cn-beijing.aliyuncs.com/test-new/20221111/f5f775bb-37ca-43f6-aa0d-6d170cbd13b3.jpg', //背景图
|
|||
|
|
// defaultCard: 1 //是否默认 1:默认 0:非默认
|
|||
|
|
// },
|
|||
|
|
]
|
|||
|
|
};
|
|||
|
|
},
|
|||
|
|
onShow(e) {
|
|||
|
|
this.getData();
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
getCardInfo(card, name) {
|
|||
|
|
if (cardJs.verifyBankCardNumber(card)) {
|
|||
|
|
console.log(cardJs.bankCardAttribution(card));
|
|||
|
|
let res = cardJs.bankCardAttribution(card);
|
|||
|
|
return res[name]
|
|||
|
|
} else {
|
|||
|
|
return ''
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
/*获取数据*/
|
|||
|
|
getData() {
|
|||
|
|
let self = this;
|
|||
|
|
self.loadding = true;
|
|||
|
|
self._get('member/api/bank/list', {}, function(res) {
|
|||
|
|
self.listData = res.data;
|
|||
|
|
self.loadding = false;
|
|||
|
|
uni.hideLoading();
|
|||
|
|
});
|
|||
|
|
},
|
|||
|
|
/*解绑*/
|
|||
|
|
unBind(e) {
|
|||
|
|
let self = this;
|
|||
|
|
uni.showModal({
|
|||
|
|
content: self.$t('MY_ORD_69') + '?',
|
|||
|
|
success(o) {
|
|||
|
|
if (o.confirm) {
|
|||
|
|
uni.showLoading({
|
|||
|
|
title: 'Loading...'
|
|||
|
|
})
|
|||
|
|
self._get(
|
|||
|
|
'member/api/bank/unbind-bank', {
|
|||
|
|
pkId: e
|
|||
|
|
},
|
|||
|
|
function(res) {
|
|||
|
|
self.getData();
|
|||
|
|
uni.showModal({
|
|||
|
|
title: self.$t('w_0034'),
|
|||
|
|
content: self.$t('w_0089')
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
false, com => {
|
|||
|
|
uni.hideLoading();
|
|||
|
|
}
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
|
|||
|
|
},
|
|||
|
|
setDefault(e){
|
|||
|
|
console.log(e);
|
|||
|
|
let self = this;
|
|||
|
|
// self.default_id = e;
|
|||
|
|
self._get(
|
|||
|
|
'member/api/bank/update-default', {
|
|||
|
|
pkId: e
|
|||
|
|
},
|
|||
|
|
function(res) {
|
|||
|
|
self.getData();
|
|||
|
|
uni.showModal({
|
|||
|
|
title: self.$t('w_0034'),
|
|||
|
|
content: self.$t('fn_056')
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
);
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
<style lang="scss">
|
|||
|
|
.card-null {
|
|||
|
|
width: 592rpx;
|
|||
|
|
height: 382rpx;
|
|||
|
|
display: block;
|
|||
|
|
margin: 0 auto;
|
|||
|
|
margin-top: 280rpx;
|
|||
|
|
margin-bottom: 380rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.cared-list {
|
|||
|
|
margin-top: 7rpx;
|
|||
|
|
background-color: #fff;
|
|||
|
|
padding: 0 23rpx;
|
|||
|
|
margin-bottom: 60rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.card-item {
|
|||
|
|
position: relative;
|
|||
|
|
width: 100%;
|
|||
|
|
height: 464rpx;
|
|||
|
|
padding: 44rpx 32rpx 40rpx 32rpx;
|
|||
|
|
box-sizing: border-box;
|
|||
|
|
border-radius: 15rpx;
|
|||
|
|
margin-bottom: 20rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.card-bg {
|
|||
|
|
position: absolute;
|
|||
|
|
width: 100%;
|
|||
|
|
height: 464rpx;
|
|||
|
|
left: 0;
|
|||
|
|
top: 0;
|
|||
|
|
z-index: 0;
|
|||
|
|
border-radius: 15rpx;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.card-item:last-child {
|
|||
|
|
border: none;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.defaul-btn {
|
|||
|
|
font-size: 28rpx;
|
|||
|
|
color: #333;
|
|||
|
|
border: 1rpx solid #333;
|
|||
|
|
border-radius: 20rpx;
|
|||
|
|
height: 39rpx;
|
|||
|
|
text-align: center;
|
|||
|
|
line-height: 39rpx;
|
|||
|
|
padding:0 12rpx;
|
|||
|
|
font-weight: bold;
|
|||
|
|
}
|
|||
|
|
.tips-box{
|
|||
|
|
width: 16rpx;
|
|||
|
|
height: 16rpx;
|
|||
|
|
border-radius: 50%;
|
|||
|
|
background-color: rgb(47, 236, 47);
|
|||
|
|
}
|
|||
|
|
</style>
|