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