From 3a4c266b791c86b6701567e4b52de82fb528f77e Mon Sep 17 00:00:00 2001
From: lxf <1371462558@qq.com>
Date: Fri, 06 Jun 2025 18:32:35 +0800
Subject: [PATCH] 银行卡功能修改
---
src/page/bankCard/index.vue | 635 +++++++++++++++++++++++++++++++--------------------------
1 files changed, 347 insertions(+), 288 deletions(-)
diff --git a/src/page/bankCard/index.vue b/src/page/bankCard/index.vue
index 8c50f43..251bd2d 100644
--- a/src/page/bankCard/index.vue
+++ b/src/page/bankCard/index.vue
@@ -1,47 +1,62 @@
<template>
- <div class="bank_card_page">
+ <div class="bank_card_page">
<van-nav-bar
:placeholder="true"
:safe-area-inset-top="true"
- :title=" addBank ? $t('hj211') : $t('hj212')"
+ :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="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">
+ <!-- <div class="titles">
<span>{{ }}</span>
</div> -->
- <div class="bank_name" v-if="addBank==false&&bankName">
- <div class="lefts">
- <span>{{ $t('hj213') }}</span>
- </div>
- <div class="rights">
- <input type="text" :placeholder="$t('hj306')" v-model="bankName" :disabled="!addBank" />
- </div>
- </div>
- <div class="bank_name" v-if="addBank==false&&bankNo">
- <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==false&&banif">
- <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==false&&bankun">
+ <div class="bank_name" v-if="addBank == false && bankName">
+ <div class="lefts">
+ <span>{{ $t("hj213") }}</span>
+ </div>
+ <div class="rights">
+ <input
+ type="text"
+ :placeholder="$t('hj306')"
+ v-model="bankName"
+ :disabled="!addBank"
+ />
+ </div>
+ </div>
+ <div class="bank_name" v-if="addBank == false && bankNo">
+ <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 == false && banif">
+ <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==false&&bankun">
<div class="lefts">
<span>{{ $t('hj304') }}</span>
</div>
@@ -50,54 +65,74 @@
</div>
</div> -->
- <div class="bank_name" @click.stop="gotodaka" v-if="addBank==true">
- <div class="lefts">
- <span>{{ $t('hj213') }}</span>
- </div>
+ <div class="bank_name" @click.stop="gotodaka" v-if="addBank == true">
+ <div class="lefts">
+ <span>{{ $t("hj213") }}</span>
+ </div>
- <div class="rights" style="justify-content: none;">{{name}}
+ <div class="rights" style="justify-content: none;">
+ {{ name }}
<!-- <input type="text" :placeholder="$t('hj306')" v-model="bankName" :disabled="!addBank" /> -->
- <!-- <picker @change="bindPickerChange" :value="index" :range="array">
+ <!-- <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('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">
+ <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('hj16')}}</span>
- </div>
- <div class="rights">
- <input type="text" :placeholder="$t('请输入电子邮箱')" v-model="bankEmail" :disabled="!addBank" />
- </div>
+ <div class="bank_name" v-if="addBank == true && !_id">
+ <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==false">
+
+ <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>
@@ -105,232 +140,256 @@
<input type="text" :placeholder="$t('hj309')" v-model="bankun" :disabled="!addBank" />
</div>
</div> -->
- <div class="bank_name bind" @click="toSure" v-if="addBank">
- <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>
+ <div class="bank_name bind" @click="toSure" v-if="addBank">
+ <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>
<script>
- import * as api from "@/axios/api";
- import {
- Toast
- } from "mint-ui";
- import {
- isNull,
- bankNoReg,
- isName
- } from '@/utils/utils'
+import * as api from "@/axios/api";
+import { Toast } from "mint-ui";
+import { isNull, bankNoReg, isName } from "@/utils/utils";
- export default {
- name: "bankCard",
- data() {
- return {
- showPicker: false,
- bankName: "", //银行名称,
- bankAddress: "", //需要精确到分行或者支行,
- bankNo: "", // 印象卡号
- banif: "",
- bankun: "",
- bankEmail:"",
- bankCardholderName:"",
- array: [],
- index:0,
- addBank: false,
- id:'',
- code:'',
- name:'',
- };
- },
- created() {
- 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)) {
- Toast(this.$t("hj217"));
- } else if (isNull(this.name)) {
- Toast(this.$t("hj218"));
- }else if (isNull(this.banif)) {
- Toast(this.$t("hj218a"));
- }
- // else if (isNull(this.bankAddress) ) {
- // Toast(this.$t("hj219"));
- // }
- else {
- let opts = {
- bankName: this.name,
- bankNo: this.bankNo,
- bankAddress: this.banif,
- bankImg: this.code,
- bankEmail:this.bankEmail,
- bankCardholderName:this.bankCardholderName
- };
- let data = await api.addBankCard(opts);
- if (data.status === 0) {
- Toast(this.$t("hj220"));
- this.$router.push("/newUser");
- } else {
- Toast(data.msg);
- }
- }
- },
- async getCardDetail() {
- // 获取银行卡信息
- 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 = true;
- } else {
- this.addBank = true;
- }
- },
- }
- };
+export default {
+ name: "bankCard",
+ data() {
+ return {
+ showPicker: false,
+ bankName: "", //银行名称,
+ bankAddress: "", //需要精确到分行或者支行,
+ bankNo: "", // 印象卡号
+ banif: "",
+ bankun: "",
+ bankEmail: "",
+ bankCardholderName: "",
+ array: [],
+ index: 0,
+ addBank: false,
+ id: "",
+ code: "",
+ name: "",
+ _id: null
+ };
+ },
+ created() {
+ // 判断是否有路由参数(如id),有则为编辑
+ const params = this.$route.query;
+ if (params && params.id) {
+ // 编辑模式
+ this.addBank = true;
+ this._id = params.id;
+ this.bankNo = params.bankNo || "";
+ this.banif = params.bankAddress || "";
+ this.name = 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)) {
+ Toast(this.$t("hj217"));
+ } else if (isNull(this.name)) {
+ Toast(this.$t("hj218"));
+ } else if (isNull(this.banif)) {
+ Toast(this.$t("hj218a"));
+ }
+ // else if (isNull(this.bankAddress) ) {
+ // Toast(this.$t("hj219"));
+ // }
+ else {
+ let opts = {
+ bankName: this.name,
+ bankNo: this.bankNo,
+ bankAddress: this.banif,
+ bankImg: this.code,
+ bankEmail: this.bankEmail,
+ bankCardholderName: this.bankCardholderName
+ };
+
+ 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() {
+ // 获取银行卡信息
+ 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 = true;
+ } else {
+ this.addBank = true;
+ }
+ }
+ }
+};
</script>
<style scoped lang="less">
- .bank_card_page {
- width: 100%;
- height: 100%;
- background: #fff;
+.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;
- display: flex;
- padding: 0 0.2rem;
- background: rgb(247, 247, 247);
- border-radius: 0.2rem;
- margin-top: 0.3rem;
-
- .lefts {
- 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%;
- }
- }
- }
- }
-
- .bank_name.bind {
- display: flex;
- align-items: center;
- justify-content: center;
- background: #1B79F5;
- font-size: 0.4103rem;
- color: #fff;
-
- span {
- font-weight: 600;
- }
- }
- /deep/ .van-nav-bar__content {
- height: 65px;
- }
- /deep/ .van-nav-bar__title {
- font-family: "DINPro";
+ .content {
width: 100%;
- height: 1.17333rem;
- display: flex;
- justify-content: center;
- align-items: center;
- font-style: normal;
- font-weight: 500;
- font-size: 0.48rem;
- color: #14181f;
+ 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;
+ display: flex;
+ padding: 0 0.2rem;
+ background: rgb(247, 247, 247);
+ border-radius: 0.2rem;
+ margin-top: 0.3rem;
+
+ .lefts {
+ 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%;
+ }
+ }
+ }
+}
+
+.bank_name.bind {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: #1b79f5;
+ font-size: 0.4103rem;
+ color: #fff;
+
+ span {
+ font-weight: 600;
+ }
+}
+/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.48rem;
+ color: #14181f;
+}
</style>
--
Gitblit v1.9.3