From 5dfb843c29fdcc1693961b70a36ddee3fea85a4a Mon Sep 17 00:00:00 2001
From: jhzh <1628036192@qq.com>
Date: Fri, 27 Feb 2026 16:33:11 +0800
Subject: [PATCH] 1
---
src/page/bankCard/index.vue | 331 +++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 285 insertions(+), 46 deletions(-)
diff --git a/src/page/bankCard/index.vue b/src/page/bankCard/index.vue
index cee31e1..7d9c505 100644
--- a/src/page/bankCard/index.vue
+++ b/src/page/bankCard/index.vue
@@ -1,43 +1,180 @@
<template>
<div class="bank_card_page">
+ <van-nav-bar
+ :placeholder="true"
+ :safe-area-inset-top="true"
+ :title="addBank ? $t('hj211') : $t('hj212')"
+ left-arrow
+ @click-left="$router.go(-1)"
+ >
+ </van-nav-bar>
<div class="content">
- <div class="top_back">
- <div class="left_back_icon" @click="$router.go(-1)">
- <img src="../../assets/img/zuojiantou.png" alt />
- </div>
- </div>
- <div class="titles">
- <span>{{ addBank ? '绑定银行卡' : '银行卡信息' }}</span>
- </div>
- <div class="bank_name">
+ <!-- <div class="top_back">
+ <div class="left_back_icon" @click="$router.go(-1)">
+ <img src="../../assets/img/zuojiantou.png" alt />
+ </div>
+ </div> -->
+ <!-- <div class="titles">
+ <span>{{ }}</span>
+ </div> -->
+ <div class="bank_name" v-if="addBank == false && bankName">
<div class="lefts">
- <span>{{ '银行名称:' }}</span>
+ <span>{{ $t("hj213") }}</span>
</div>
<div class="rights">
- <input type="text" v-model="bankName" :disabled="!addBank" />
+ <input
+ type="text"
+ :placeholder="$t('hj306')"
+ v-model="bankName"
+ :disabled="!addBank"
+ />
</div>
</div>
- <div class="bank_name">
+ <div class="bank_name" v-if="addBank == false && bankNo">
<div class="lefts">
- <span>{{ '开户支行:' }}</span>
+ <span>{{ $t("hj215") }}</span>
</div>
<div class="rights">
- <input type="text" v-model="bankAddress" :disabled="!addBank" />
+ <input
+ type="text"
+ :placeholder="$t('hj307')"
+ v-model="bankNo"
+ :disabled="!addBank"
+ />
</div>
</div>
- <div class="bank_name">
+ <div class="bank_name" v-if="addBank == false && banif">
<div class="lefts">
- <span>{{ '银行卡号:' }}</span>
+ <span>{{ $t("hj303") }}</span>
</div>
<div class="rights">
- <input type="text" v-model="bankNo" :disabled="!addBank" />
+ <input
+ type="text"
+ :placeholder="$t('hj308')"
+ v-model="banif"
+ :disabled="!addBank"
+ />
</div>
</div>
+ <!-- <div class="bank_name" v-if="addBank==false&&bankun">
+ <div class="lefts">
+ <span>{{ $t('hj304') }}</span>
+ </div>
+ <div class="rights">
+ <input type="text" :placeholder="$t('hj309')" v-model="bankun" :disabled="!addBank" />
+ </div>
+ </div> -->
+
+ <!-- <div class="bank_name" @click.stop="gotodaka" v-if="addBank == true"> -->
+ <div class="bank_name" v-if="addBank == true">
+ <div class="lefts">
+ <span>{{ $t("hj213") }}</span>
+ </div>
+
+ <div class="rights" style="justify-content: none;">
+ <input type="text" :placeholder="$t('hj306')" v-model="bankName" :disabled="!addBank" />
+ <!-- <picker @change="bindPickerChange" :value="index" :range="array">
+ <view >{{array[index].name}}</view>
+ </picker> -->
+ </div>
+ </div>
+ <div class="bank_name" v-if="addBank == true">
+ <div class="lefts">
+ <span>{{ $t("hj214") }}</span>
+ </div>
+
+ <div class="rights" style="justify-content: none;">
+ <input type="text" :placeholder="$t('hj219')" v-model="bankAddress" :disabled="!addBank" />
+ </div>
+ </div>
+ <div class="bank_name" v-if="addBank == true">
+ <div class="lefts">
+ <span>{{ $t("支行番号") }}</span>
+ </div>
+
+ <div class="rights" style="justify-content: none;">
+ <input type="text" :placeholder="$t('请输入支行番号')" v-model="branchNo" :disabled="!addBank" />
+ </div>
+ </div>
+
+ <div class="bank_name" v-if="addBank == true">
+ <div class="lefts">
+ <span>{{ $t("hj215") }}</span>
+ </div>
+ <div class="rights">
+ <input
+ type="text"
+ :placeholder="$t('hj307')"
+ v-model="bankNo"
+ :disabled="!addBank"
+ />
+ </div>
+ </div>
+ <!-- <div class="bank_name" v-if="addBank == true">
+ <div class="lefts">
+ <span>{{ $t("hj303") }}</span>
+ </div>
+ <div class="rights">
+ <input
+ type="text"
+ :placeholder="$t('hj308')"
+ v-model="banif"
+ :disabled="!addBank"
+ />
+ </div>
+ </div> -->
+
+ <div class="bank_name" v-if="addBank == true ">
+ <div class="lefts">
+ <span>{{ $t("银行卡户主名称") }}</span>
+ </div>
+ <div class="rights">
+ <input
+ type="text"
+ :placeholder="$t('请输入银行卡户主名称')"
+ v-model="bankCardholderName"
+ :disabled="!addBank"
+ />
+ </div>
+ </div>
+
+ <!-- <div class="bank_name" v-if="addBank == true && !_id">
+ <div class="lefts">
+ <span>{{ $t("hj16") }}</span>
+ </div>
+ <div class="rights">
+ <input
+ type="text"
+ :placeholder="$t('请输入电子邮箱')"
+ v-model="bankEmail"
+ :disabled="!addBank"
+ />
+ </div>
+ </div> -->
+ <!-- <div class="bank_name" v-if="addBank==false">
+ <div class="lefts">
+ <span>{{ $t('hj304') }}123</span>
+ </div>
+ <div class="rights">
+ <input type="text" :placeholder="$t('hj309')" v-model="bankun" :disabled="!addBank" />
+ </div>
+ </div> -->
<div class="bank_name bind" @click="toSure" v-if="addBank">
- <span>{{ '确认绑定' }}</span>
+ <span>{{ $t("hj216") }}</span>
</div>
<div class="bank_hck"></div>
<div class="bank_code"></div>
+ <van-popup v-model="showPicker" round position="bottom">
+ <van-picker
+ :confirm-button-text="$t('hj161')"
+ :cancel-button-text="$t('hj106')"
+ value-key="name"
+ :columns="array"
+ @cancel="quxiao"
+ @confirm="onConfirm"
+ show-toolbar
+ />
+ </van-popup>
</div>
</div>
</template>
@@ -45,95 +182,176 @@
<script>
import * as api from "@/axios/api";
import { Toast } from "mint-ui";
-import { isNull, bankNoReg, isName } from '@/utils/utils'
+import { isNull, bankNoReg, isName } from "@/utils/utils";
export default {
name: "bankCard",
data() {
return {
+ showPicker: false,
bankName: "", //银行名称,
bankAddress: "", //需要精确到分行或者支行,
+ branchNo:"",//支行番號
bankNo: "", // 印象卡号
- addBank: false
+ banif: "",
+ bankun: "",
+ bankEmail: "",
+ bankCardholderName: "",
+ array: [],
+ index: 0,
+ addBank: false,
+ id: "",
+ code: "",
+ name: "",
+ _id: null
};
},
created() {
- this.getCardDetail();
+ // 判断是否有路由参数(如id),有则为编辑
+ const params = this.$route.query;
+ if (params && params.id) {
+ // 编辑模式
+ this.addBank = true;
+ this._id = params.id;
+ this.bankNo = params.bankNo || "";
+ this.bankAddress = params.branchName || "";
+ this.branchNo = params.branchNo || "";
+ this.bankName = params.bankName || "";
+ this.code = params.bankImg || "";
+ this.bankEmail = params.bankEmail || "";
+ this.bankCardholderName = params.bankCardholderName || "";
+ } else {
+ // 新增模式
+ // this.id = null;
+ this.getCardDetail();
+ }
+ this.getbanklist();
},
methods: {
+ quxiao() {
+ this.showPicker = false;
+ },
+ gotodaka() {
+ this.showPicker = true;
+ },
+ onConfirm(item) {
+ console.log(item);
+ this.id = item.id;
+ this.code = item.code;
+ this.name = item.name;
+ this.showPicker = !this.showPicker;
+ // this.lever = item.value
+ },
+ async getbanklist() {
+ // 获取银行名称
+ let data = await api.getbank();
+ if (data.status === 0) {
+ console.log(data);
+ this.array = data.data;
+ console.log(this.array);
+ } else {
+ }
+ },
async toSure() {
// 添加银行卡
- if (isNull(this.bankNo) || !bankNoReg(this.bankNo)) {
- Toast("请输入银行卡号");
- } else if (isNull(this.bankName) || !isName(this.bankName)) {
- Toast("请输入银行名称");
- } else if (isNull(this.bankAddress) || !isName(this.bankAddress)) {
- Toast("请输入开户支行");
- } else {
+ if (isNull(this.bankNo)) {
+ Toast(this.$t("hj217"));
+ } else if (isNull(this.bankName)) {
+ Toast(this.$t("hj218"));
+ } else if (isNull(this.bankAddress)) {
+ Toast(this.$t("hj218a"));
+ }
+ // else if (isNull(this.bankAddress) ) {
+ // Toast(this.$t("hj219"));
+ // }
+ else {
let opts = {
bankName: this.bankName,
bankNo: this.bankNo,
- bankAddress: this.bankAddress
+ branchName: this.bankAddress,
+ branchNo: this.branchNo,
+ bankImg: this.code,
+ bankEmail: this.bankEmail,
+ bankCardholderName: this.bankCardholderName
};
- let data = await api.addBankCard(opts);
- if (data.status === 0) {
- Toast("添加成功!");
- this.$router.push("/newUser");
- } else {
- Toast(data.msg);
- }
+
+ let data;
+ if (this._id) {
+ // 编辑
+ opts.id = this._id;
+ data = await api.getUpdate(opts);
+ } else {
+ // 新增
+ data = await api.addBankCard(opts);
+ }
+ if (data.status === 0) {
+ Toast(this.$t("hj220"));
+ this.$router.push("/banklist");
+ } else {
+ Toast(data.msg);
+ }
}
},
- async getCardDetail () {
+ async getCardDetail() {
// 获取银行卡信息
- let data = await api.getBankCard()
- if (data.status === 0) {
- const {bankAddress, bankName, bankNo} = data.data;
- this.bankAddress = bankAddress;
+ let data = await api.getBankCard();
+ if (data.status == 0) {
+ const { bankAddress, bankName, bankNo, bankImg } = data.data;
+ this.banif = bankAddress;
this.bankName = bankName;
+ this.bankun = bankImg;
this.bankNo = bankNo;
- this.addBank = false;
+ // this.addBank = false;
+ this.addBank = true;
} else {
this.addBank = true;
}
- },
+ }
}
};
</script>
<style scoped lang="less">
+
.bank_card_page {
width: 100%;
height: 100%;
background: #fff;
+
.content {
width: 100%;
height: 100%;
padding: 0 0.6rem;
+
.top_back {
width: 100%;
height: 2rem;
+
> div {
width: 10%;
height: 100%;
display: flex;
align-items: center;
}
+
img {
width: 0.6rem;
height: 0.6rem;
}
}
+
.titles {
width: 100%;
height: 1.5rem;
font-size: 0.641rem;
margin-top: 1rem;
+
span {
font-weight: 600;
}
}
}
+
.bank_name {
width: 100%;
height: 1.5rem;
@@ -142,22 +360,26 @@
background: rgb(247, 247, 247);
border-radius: 0.2rem;
margin-top: 0.3rem;
+
.lefts {
- width: 25%;
+ width: 38%;
height: 100%;
display: flex;
align-items: center;
font-size: 0.3846rem;
+
span {
font-weight: 600;
}
}
+
.rights {
width: 75%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
+
input {
width: 100%;
height: 100%;
@@ -165,15 +387,32 @@
}
}
}
+
.bank_name.bind {
display: flex;
align-items: center;
justify-content: center;
- background: #2d6ae9;
+ background: #185546;
font-size: 0.4103rem;
color: #fff;
+
span {
font-weight: 600;
}
}
-</style>
\ No newline at end of file
+/deep/ .van-nav-bar__content {
+ height: 65px;
+}
+/deep/ .van-nav-bar__title {
+ font-family: "DINPro";
+ width: 100%;
+ height: 1.17333rem;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-style: normal;
+ font-weight: 500;
+ font-size: 0.35rem;
+ color: #14181f;
+}
+</style>
--
Gitblit v1.9.3