feat(bindBank): 绑定银行卡逻辑迁移

This commit is contained in:
woody 2025-09-04 14:20:15 +08:00
parent f592fee699
commit 7036a53cae
4 changed files with 672 additions and 482 deletions

View File

@ -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', {

View File

@ -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 => {
if (res.data && Object.keys(res.data).length > 0) {
this.bankData = res.data this.bankData = res.data
this.dataForm.pkBank = res.data.pkId this.dataForm.pkBank = res.data.pkId
}) } else {
// this.unBindDefaultModal = true
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',
})
},
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()
}, },
}, },
} }

View File

@ -1,109 +1,228 @@
<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
required
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-icon slot="right" name="arrow-right"></u-icon>
</u-form-item> </u-form-item>
<u-form-item
<u-form-item label-width="200rpx" :label="'开户支行'" prop="subBankName" borderBottom ref="item1"> label-width="200rpx"
<u--input v-model="dataForm.subBankName" disabledColor="#F5F5F5;" border="none"></u--input> :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>
<u-form-item label-width="200rpx" :label="'真实姓名'" prop="accountName" borderBottom ref="item1"> <u-form-item
<u--input :placeholder="'请输入'" v-model="dataForm.accountName" border="none"></u--input> 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>
<u-form-item label-width="200rpx" :label="'证件号码'" prop="idCard" borderBottom ref="item1"> <u-form-item
<u--input v-model="dataForm.idCard" :placeholder="'请输入'" disabledColor="#F5F5F5;" label-width="200rpx"
border="none"></u--input> label="开户姓名"
required
prop="accountName"
borderBottom
ref="item1"
>
<u--input
:placeholder="'请输入'"
v-model="dataForm.accountName"
border="none"
></u--input>
</u-form-item> </u-form-item>
<u-form-item label-width="200rpx" :label="'联系方式'" prop="phone" borderBottom ref="item1"> <u-form-item
<u--input v-model="dataForm.phone" :placeholder="'请输入'" maxlength="20" border="none"></u--input> 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>
<u-form-item v-if="userInfo.pkCountry==1&&cancode" label-width="200rpx" :label="'验证码'" <u-form-item
prop="verificationCode" borderBottom ref="item1"> label-width="200rpx"
<u--input v-model="dataForm.verificationCode" :placeholder="'请输入'" border="none"></u--input> :label="'联系方式'"
<u-button @tap='getCode' class="getcodes" type="primary" shape="circle" :text="tips" prop="phone"
color="#2FBC42"></u-button> 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>
<u-code :seconds="seconds" @end="end" @start="start" ref="uCode" @change="codeChange"></u-code> <u-code
<u-picker @cancel='showAmount=false' :show="showAmount" ref="uPicker" :columns="bankCardChioceList" :seconds="seconds"
@confirm="confirm" keyName='bankName'></u-picker> @end="end"
@start="start"
ref="uCode"
@change="codeChange"
></u-code>
<u-picker
@cancel="showAmount = false"
:show="showAmount"
ref="uPicker"
:columns="bankCardChioceList"
@confirm="confirm"
keyName="bankName"
></u-picker>
</u--form> </u--form>
</view>
<view class="tip-wrapper">
<view class="tip-content">
<view class="tip-text"
>银行卡号真实姓名证件号码联系方式请与银行预留信息保持一致</view
>
</view>
</view> </view>
<view class="btnbox"> <view class="btnbox">
<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>
</view> </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: [], bankCardChioceList: [],
rules: { rules: {
cardNumber: [{ cardNumber: [
{
type: 'string', type: 'string',
required: true, required: true,
message: '请输入', message: '请输入',
trigger: ['blur', 'change'] trigger: ['blur', 'change'],
}], },
subBankName: [{ ],
subBankName: [
{
type: 'string', type: 'string',
required: true, required: true,
message: '请输入', message: '请输入',
trigger: ['blur', 'change'] trigger: ['blur', 'change'],
}], },
accountName: [{ ],
accountName: [
{
type: 'string', type: 'string',
required: true, required: true,
message: '请输入', message: '请输入',
trigger: ['blur', 'change'] trigger: ['blur', 'change'],
}], },
idCard: [{ ],
idCard: [
{
type: 'string', type: 'string',
required: true, required: true,
message: '请输入', message: '请输入',
trigger: ['blur', 'change'] trigger: ['blur', 'change'],
}], },
phone: [{ ],
phone: [
{
type: 'string', type: 'string',
required: true, required: true,
message: '请输入', message: '请输入',
trigger: ['blur', 'change'] trigger: ['blur', 'change'],
}], },
verificationCode: [{ ],
verificationCode: [
{
type: 'string', type: 'string',
required: true, required: true,
message: '请输入', message: '请输入',
trigger: ['blur', 'change'] trigger: ['blur', 'change'],
}], },
bankName: [{ ],
bankName: [
{
required: true, required: true,
message: '请选择', message: '请选择',
trigger: ['change'] trigger: ['change'],
}], },
],
}, },
tips: '', tips: '',
// refCode: null, // refCode: null,
@ -111,49 +230,41 @@
ifpass: false, ifpass: false,
userInfo: {}, userInfo: {},
cancode: true, // cancode: true, //
} }
}, },
onLoad() { onLoad() {
this.userInfo = uni.getStorageSync('User') this.userInfo = uni.getStorageSync('User')
this.getList() this.getList()
this.checkIfWhite();
}, },
methods: { 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) { codeChange(text) {
this.tips = text; this.tips = text
}, },
getCode() { getCode() {
if (this.dataForm.phone && this.$u.test.mobile(this.dataForm.phone)) { if (this.dataForm.phone && this.$u.test.mobile(this.dataForm.phone)) {
if (this.$refs.uCode.canGetCode) { if (this.$refs.uCode.canGetCode) {
// //
uni.showLoading({ uni.showLoading({
title: '正在获取验证码' title: '正在获取验证码',
}) })
ban.getVerification({ ban
phone: this.dataForm.phone .getVerification({
}).then((res) => { phone: this.dataForm.phone,
uni.hideLoading(); })
.then(res => {
uni.hideLoading()
// this.start() // this.start()
uni.$u.toast('验证码已发送'); uni.$u.toast('验证码已发送')
// //
this.$refs.uCode.start(); this.$refs.uCode.start()
}) })
} else { } else {
uni.$u.toast('倒计时结束后再发送'); uni.$u.toast('倒计时结束后再发送')
} }
} else { } else {
uni.$u.toast(this.dataForm.phone ? '手机号格式不正确' : '请先输入手机号') uni.$u.toast(
this.dataForm.phone ? '手机号格式不正确' : '请先输入手机号'
)
return return
} }
}, },
@ -167,10 +278,9 @@
ban.getBankCardChoiceList().then(res => { ban.getBankCardChoiceList().then(res => {
this.bankCardChioceList = [res.data] this.bankCardChioceList = [res.data]
}) })
}, },
bindBank() { bindBank() {
if (!this.ifpass &&this.cancode &&this.userInfo.pkCountry == 1) { if (!this.ifpass && this.cancode && this.userInfo.pkCountry == 1) {
uni.$u.toast('验证码错误') uni.$u.toast('验证码错误')
return return
} }
@ -182,38 +292,39 @@
}, 1000) }, 1000)
} }
}) })
}, },
submit() { submit() {
this.$refs.uForm.validate().then(res => { this.$refs.uForm
.validate()
.then(res => {
// //
this.ifpass = true; this.ifpass = true
this.bindBank();
return
if (this.userInfo.pkCountry == 1) { if (this.userInfo.pkCountry == 1) {
if(this.cancode){ if (this.cancode) {
ban.verifyBankCard(this.dataForm).then((res) => { ban
.verifyBankCard(this.dataForm)
.then(res => {
if (res.code == 200) { if (res.code == 200) {
this.ifpass = true; this.ifpass = true
this.bindBank(); this.bindBank()
} else { } else {
this.ifpass = false; this.ifpass = false
uni.$u.toast(res.msg) uni.$u.toast(res.msg)
} }
}) })
.catch((err) => { .catch(err => {
this.ifpass = false; this.ifpass = false
}); })
}else{ } else {
this.ifpass = true; this.ifpass = true
this.bindBank(); this.bindBank()
} }
} else { } else {
this.bindBank() this.bindBank()
} }
})
}).catch(errors => { .catch(errors => {
uni.$u.toast('校验失败') uni.$u.toast('校验失败')
return false return false
}) })
@ -223,18 +334,17 @@
this.dataForm.pkBank = e.value[0].pkId this.dataForm.pkBank = e.value[0].pkId
this.showAmount = false 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 {
@ -243,7 +353,6 @@
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: 400; font-weight: 400;
} }
} }
.btnbox { .btnbox {
@ -251,23 +360,53 @@
padding: 0 20rpx; padding: 0 20rpx;
.subbtn { .subbtn {
background: #005BAC; background: #005bac;
border-radius: 46rpx; border-radius: 46rpx;
font-size: 30rpx; font-size: 30rpx;
font-family: Source Han Sans CN; font-family: Source Han Sans CN;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #ffffff;
} }
} }
.getcodes { .getcodes {
width: 197rpx; width: 197rpx;
height: 76rpx; height: 76rpx;
background: #2FBC42; background: #2fbc42;
border-radius: 38rpx; border-radius: 38rpx;
color: #fff; 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> </style>

View File

@ -1,56 +1,91 @@
<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"
v-for="(item, index) in tableData"
:style="{ backgroundImage: 'url(' + item.backgroundImg + ')' }"
:key="index"
>
<view class="cardtopflex"> <view class="cardtopflex">
<view class="cardtopflex2"> <view class="cardtopflex2">
<view class="imgbox"><img :src="item.logo" alt="" /></view> <view class="imgbox"><img :src="item.logo" alt="" /></view>
<view class="titlebox"> <view class="titlebox">
<view class="cardtitle">{{item.bankName}}</view> <view class="cardtitle">{{ item.bankName }}</view>
<view class="cardtitle2">{{'储蓄卡'}}</view> <view class="cardtitle2">{{ '储蓄卡' }}</view>
</view> </view>
</view> </view>
<view class="flexs_1" v-if="item.defaultCard==1"> <view class="flexs_1" v-if="item.defaultCard == 1">
<view class="qiu"></view> <view class="qiu"></view>
<view v-if="userInfo.pkCountry == 1">{{'默认'}}</view> <view v-if="userInfo.pkCountry == 1">{{ '默认' }}</view>
<view v-else style="color: #000;font-weight: bold;" class="cardfooter">{{'默认'}}</view> <view
v-else
style="color: #000; font-weight: bold"
class="cardfooter"
>{{ '默认' }}</view
>
</view> </view>
<view class="flexs_1" v-else> <view class="flexs_1" v-else>
<view
<view style="color: #fff; font-weight: bold; cursor: pointer" @click="setDefault(item.pkId)" style="color: #fff; font-weight: bold; cursor: pointer"
class="cardfooter">{{'设为默认'}}</view> @click="setDefault(item.pkId)"
class="cardfooter"
>{{ '设为默认' }}</view
>
</view> </view>
</view> </view>
<view class="cardNumber">{{ item.cardNumber }}</view> <view class="cardNumber">{{ item.cardNumber }}</view>
<view v-if="userInfo.pkCountry == 1" class="cardfooter" @click="removeBind(item)"> <view
[{{'解绑'}}]</view> v-if="userInfo.pkCountry == 1"
<view v-else style="color: #000;font-weight: bold;" class="cardfooter" @click="removeBind(item)"> class="cardfooter"
[{{'解绑'}}]</view> @click="removeBind(item)"
>
[{{ '解绑' }}]</view
>
<view
v-else
style="color: #000; font-weight: bold"
class="cardfooter"
@click="removeBind(item)"
>
[{{ '解绑' }}]</view
>
</view> </view>
</view> </view>
<u-modal :showCancelButton="true" @cancel="modalShow=false" :content="'是否确认解绑银行卡'" :show="modalShow" <u-modal
@confirm="confirmRemove" ref="uModal" :asyncClose="true"></u-modal> :showCancelButton="true"
<view class="footerbtn" @click="goAdd"> @cancel="modalShow = false"
+{{'添加银行卡'}} :content="'是否确认解绑银行卡'"
</view> :show="modalShow"
@confirm="confirmRemove"
ref="uModal"
:asyncClose="true"
></u-modal>
<view class="footerbtn" @click="goAdd"> +{{ '添加银行卡' }} </view>
<u-modal :showCancelButton="true" @cancel="modalShow2=false" content="当前解绑为默银行卡,请设置为另一张卡为默认银行卡" <u-modal
:show="modalShow2" @confirm="confirmRemove2" ref="uModal" :asyncClose="true"></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> --> <!-- <el-button class="footerbtn" @click="bindBank(true)">{{'绑定银行卡'}}</el-button> -->
</view> </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() {
@ -61,20 +96,22 @@
}, },
methods: { methods: {
setDefault(pkId) { setDefault(pkId) {
ban.updateDefault({ ban
pkId: pkId .updateDefault({
}).then((res) => { pkId: pkId,
})
.then(res => {
if (res.code == 200) { if (res.code == 200) {
uni.$u.toast(res.msg) uni.$u.toast(res.msg)
this.getSearch(); this.getSearch()
} else { } else {
uni.$u.toast(res.msg) uni.$u.toast(res.msg)
} }
}); })
}, },
goAdd() { goAdd() {
uni.navigateTo({ uni.navigateTo({
url: '/pages/mine/bindBank/bindBank' url: '/pages/mine/bindBank/bindBank',
}) })
}, },
removeBind(item) { removeBind(item) {
@ -84,26 +121,27 @@
} else { } else {
this.modalShow = true this.modalShow = true
} }
}, },
confirmRemove2() { confirmRemove2() {
this.modalShow2 =false this.modalShow2 = false
this.modalShow = true // this.modalShow = true
}, },
// //
confirmRemove() { confirmRemove() {
ban.removeBankBind({ ban
pkId: this.pkId .removeBankBind({
}).then((res) => { pkId: this.pkId,
})
.then(res => {
if (res.code == 200) { if (res.code == 200) {
uni.$u.toast(res.msg) uni.$u.toast(res.msg)
this.modalShow = false this.modalShow = false
this.getSearch(); this.getSearch()
} else { } else {
uni.$u.toast(res.msg) uni.$u.toast(res.msg)
this.modalShow = false this.modalShow = false
} }
}); })
}, },
// //
bindBank(val) { bindBank(val) {
@ -111,16 +149,16 @@
// this.jdTl = val; // this.jdTl = val;
}, },
getSearch() { getSearch() {
ban.getBankList().then((res) => { ban.getBankList().then(res => {
this.tableData = res.data; 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;
@ -185,12 +223,13 @@
} }
} }
} }
} }
.cardNumber { .cardNumber {
font-size: 32rpx; font-size: 32rpx;
font-family: PingFang SC-Medium, PingFang SC; font-family:
PingFang SC-Medium,
PingFang SC;
font-weight: 600; font-weight: 600;
color: #ffffff; color: #ffffff;
margin-top: 100rpx; margin-top: 100rpx;
@ -200,7 +239,9 @@
.cardfooter { .cardfooter {
text-align: right; text-align: right;
font-size: 24rpx; font-size: 24rpx;
font-family: PingFang SC-Regular, PingFang SC; font-family:
PingFang SC-Regular,
PingFang SC;
font-weight: 400; font-weight: 400;
color: #ffffff; color: #ffffff;
margin-top: 24rpx; margin-top: 24rpx;
@ -210,7 +251,6 @@
} }
.footerbtn { .footerbtn {
display: flex; display: flex;
align-items: center; align-items: center;
padding: 40rpx; padding: 40rpx;
@ -221,5 +261,5 @@
margin-top: 32rpx; margin-top: 32rpx;
width: 100%; width: 100%;
} }
} }
</style> </style>