From 732c30b33f782c2d2ebb62eacda2fb7a453a7ecd Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Sat, 31 Jan 2026 11:01:45 +0800
Subject: [PATCH] 1

---
 src/page/newUser/setting.vue |  328 +++++++++++++++++++++++-------------------------------
 1 files changed, 141 insertions(+), 187 deletions(-)

diff --git a/src/page/newUser/setting.vue b/src/page/newUser/setting.vue
index d1a7530..6a5a3b2 100644
--- a/src/page/newUser/setting.vue
+++ b/src/page/newUser/setting.vue
@@ -1,61 +1,25 @@
 <template>
   <div class="content">
-    <div class="top_back">
+    <van-nav-bar :placeholder="true" :safe-area-inset-top="true" :title="$t('setting')" left-arrow
+      @click-left="$router.go(-1)">
+    </van-nav-bar>
+    <!-- <div class="top_back">
       <div class="left_back_icon" @click="$router.go(-1)">
         <img src="../../assets/img/zuojiantou.png" alt />
       </div>
       <div class="titles">
         <span>{{ $t("setting") }}</span>
       </div>
-    </div>
+    </div> -->
     <div style="width: 100%; height: 10px; background-color: #f8f8f8"></div>
 
-    <div class="jy" @click="handleGoToBankCard()">
-      <div class="left_gn">
-        <div class="l_icon">
-          <!-- <img src="../../assets/img/yeb.png" alt /> -->
-        </div>
-        <div class="r_title">
-          <span>{{ $t("hj147") }}</span>
-        </div>
-      </div>
-      <div class="right_gos">
-        <img src="../../assets/img/youjiantou.png" alt />
-      </div>
-    </div>
-    <div class="jy" @click="goToSettings()">
-      <div class="left_gn">
-        <div class="l_icon">
-          <!-- <img src="../../assets/img/yeb.png" alt /> -->
-        </div>
-        <div class="r_title">
-          <span>{{ $t("hj144") }}</span>
-        </div>
-      </div>
-      <div class="right_gos">
-        <img src="../../assets/img/youjiantou.png" alt />
-      </div>
-    </div>
-
-    <!-- 		<div class="jy" @click="handleGoToTransfer()">
-			<div class="left_gn">
-				<div class="l_icon">
-				</div>
-				<div class="r_title">
-					<span>{{ $t('hj145') }}</span>
-				</div>
-			</div>
-			<div class="right_gos">
-				<img src="../../assets/img/youjiantou.png" alt />
-			</div>
-		</div> -->
     <div class="jy" @click="handleGoToAuthentication()">
       <div class="left_gn">
         <div class="l_icon">
-          <!-- <img src="../../assets/img/yeb.png" alt /> -->
+          <van-icon name="manager" size=".8rem" />
         </div>
         <div class="r_title">
-          <span>{{ $t("hj146") }}</span>
+          <span>{{ $t('rnv') }}</span>
         </div>
       </div>
       <div class="right_gos">
@@ -65,35 +29,50 @@
         <img v-else src="../../assets/img/youjiantou.png" alt />
       </div>
     </div>
-    <!-- 
-		<div class="jy" @click="subclick()">
-			<div class="left_gn">
-				<div class="l_icon">
-				</div>
-				<div class="r_title">
-					<span>{{ $t('subdk') }}</span>
-				</div>
-			</div>
-			<div class="right_gos">
-				<img src="../../assets/img/youjiantou.png" alt />
-			</div>
-		</div>
-
-		<div class="jy" @click="yebclick()">
-			<div class="left_gn">
-				<div class="l_icon">
-				</div>
-				<div class="r_title">
-					<span>{{ $t('yeb') }}</span>
-				</div>
-			</div>
-			<div class="right_gos">
-				<img src="../../assets/img/youjiantou.png" alt />
-			</div>
-		</div> -->
+    <!-- <div class="jy" @click="handleGoToBankCard()">
+      <div class="left_gn">
+        <div class="l_icon">
+          <van-icon name="card" size=".8rem" />
+        </div>
+        <div class="r_title">
+          <span>{{ $t("hj147") }}</span>
+        </div>
+      </div>
+      <div class="right_gos">
+        <img src="../../assets/img/youjiantou.png" alt />
+      </div>
+    </div> -->
+    <div class="jy" @click="goToSettings()">
+      <div class="left_gn">
+        <div class="l_icon">
+          <van-icon name="lock" size=".8rem" />
+        </div>
+        <div class="r_title">
+          <span>{{ $t("hj144") }}</span>
+        </div>
+      </div>
+      <div class="right_gos">
+        <img src="../../assets/img/youjiantou.png" alt />
+      </div>
+    </div>
+    <!-- <div class="jy" @click="handleGoToBankCard1()">
+      <div class="left_gn">
+        <div class="l_icon">
+          <van-icon name="friends" size=".8rem" />
+        </div>
+        <div class="r_title">
+          <span>{{ $t("关于我们") }}</span>
+        </div>
+      </div>
+      <div class="right_gos">
+        <img src="../../assets/img/youjiantou.png" alt />
+      </div>
+    </div> -->
     <div class="jy" @click="clicklang()">
       <div class="left_gn">
-        <div class="l_icon"></div>
+        <div class="l_icon">
+          <img src="../../assets/img/语言切换.png" alt />
+        </div>
         <div class="r_title">
           <span>{{ $t("yy") }}</span>
         </div>
@@ -102,25 +81,8 @@
         <div style="margin-right: 10px">{{ language }}</div>
       </div>
     </div>
-    <van-popup
-      v-model="settingDialog"
-      position="bottom"
-      :style="{ height: '35%' }"
-      @close="popClose"
-    >
-      <div
-        class="lang_box"
-        v-for="(item, index) in actions"
-        :key="index"
-        @click="qkclick(item)"
-      >
-        <div
-          :class="$i18n.locale == item.lang ? 'lang_box_txt' : 'lang_box_txta'"
-        >
-          {{ item.text }}
-        </div>
-      </div>
-    </van-popup>
+    <Language ref="language" @onChange="onChange" />
+
     <van-popup v-model="pswDialog" position="bottom" :style="{ height: '40%' }">
       <div class="setting_content">
         <div class="old_password">
@@ -128,7 +90,7 @@
             <span>{{ $t("hj150") + ":" }}</span>
           </div>
           <div class="right_password_input">
-            <input type="password" v-model="oldPassword" />
+            <input v-model="oldPassword" />
           </div>
         </div>
         <div class="old_password">
@@ -165,6 +127,8 @@
 import { Toast, MessageBox } from "mint-ui";
 import { isNull, pwdReg } from "@/utils/utils";
 import { mapMutations } from "vuex";
+import { Notify } from "vant";
+import Language from "@/components/Language/index.vue";
 
 export default {
   name: "newUser",
@@ -179,54 +143,20 @@
       cirNewPassword: "", // 确认新密码
       userInfo: [],
       onlineService: "",
-      language: "",
-      actions: [
-        {
-          text: "English",
-          icon: require("@/assets/ico/english.png"),
-          lang: "zh-CN",
-        },
-        { text: "हिंदी", icon: require("@/assets/ico/india.png"), lang: "en" },
-        { text: "한국인", icon: require("@/assets/ico/india.png"), lang: "hy" },
-        {
-          text: "ภาษาไทย",
-          icon: require("@/assets/ico/india.png"),
-          lang: "ty",
-        },
-        {
-          text: "日本語にほんご",
-          icon: require("@/assets/ico/india.png"),
-          lang: "ry",
-        },
-
-        // { text: '繁体中文', icon: require('@/assets/ico/tw.png'), lang: 'tw' }
-      ],
+      language: ""
     };
   },
-  components: {},
+  components: { Language },
   created() {
     this.getUserInfo();
-    this.language = window.localStorage.getItem("language");
-    console.log(window.localStorage.getItem("language"));
-    if (this.language == "zh-CN") {
-      this.language = "English";
-    } else {
-      this.language = "हिंदी";
-    }
   },
   methods: {
     ...mapMutations(["undataToken"]),
-    popClose() {
-      this.settingDialog = false;
-    },
-    qkclick(e) {
-      this.settingDialog = false;
-      window.localStorage.setItem("language", e.lang);
-      this.$i18n.locale = e.lang;
-      this.language = e.text;
+    onChange(e) {
+      this.language = e;
     },
     clicklang() {
-      this.settingDialog = true;
+      this.$refs.language.settingDialog = true;
     },
     yebclick() {
       this.$router.push("/yeb");
@@ -275,17 +205,9 @@
       }
     },
     goWall() {
-      if (this.userInfo.length === 0) {
-        this.$store.commit("dialogVisible", true);
-        return;
-      }
       this.$router.push("/wallet");
     },
     gotoa(e) {
-      if (this.userInfo.length === 0) {
-        this.$store.commit("dialogVisible", true);
-        return;
-      }
       if (e == 0) {
         this.$router.push("/wallet");
       } else if (e == 1) {
@@ -303,22 +225,19 @@
     handleZh() {
       this.selectUserFlag = !this.selectUserFlag;
 
-      if (this.userInfo.length === 0) {
-        this.$store.commit("dialogVisible", true);
-        return;
-      }
       if (navigator.vibrate) {
         // 支持
         navigator.vibrate([55]);
       }
     },
+    // 获取用户信息
     async getUserInfo() {
-      // 获取用户信息
       let data = await api.getUserInfo();
       if (data.status === 0) {
         // 判断是否登录
         this.$store.commit("dialogVisible", false);
         this.$store.state.userInfo = data.data;
+        document.title = "Setting";
         this.userInfo = data.data;
       } else {
         this.$store.commit("dialogVisible", true);
@@ -335,67 +254,67 @@
       // }
       this.$router.push("/setting");
     },
+    // 退出登录
     handleOutLoginClick() {
-      // 退出登录
-      MessageBox.confirm(this.$t("hj149") + "?", this.$t("hj165"), {
-        confirmButtonText: this.$t("hj161"),
-        cancelButtonText: this.$t("hj106"),
+      MessageBox.confirm(this.$t("hj149"), this.$t(""), {
+        confirmButtonText: this.$t("qr"),
+        cancelButtonText: this.$t("hj106")
       })
         .then(() => {
           this.toRegister();
         })
-        .catch(() => {});
+        .catch(() => { });
     },
-    goToSettings() {
-      if (this.userInfo.length === 0) {
-        this.$store.commit("dialogVisible", true);
-        return;
-      }
-      // 每次打开dialog 清空密码数据
+    // 每次打开dialog 清空密码数据
+    async goToSettings() {
       this.pswDialog = !this.pswDialog;
       if (this.pswDialog) {
-        this.oldPassword = "";
         this.newPassword = "";
         this.cirNewPassword = "";
+        // 获取旧密码并回显
+        await this.getOldPassword();
+      }
+    },
+    // 获取旧密码
+    async getOldPassword() {
+      try {
+        const data = await api.getPassword();
+        if (data.status === 0) {
+          this.oldPassword = data.data || "";
+        } else {
+          // 如果获取失败,清空旧密码输入框
+          this.oldPassword = "";
+          Toast(data.msg || this.$t("获取数据失败"));
+        }
+      } catch (error) {
+        this.oldPassword = "";
+        Toast(this.$t("获取数据失败"));
       }
     },
     handleGoToTransfer() {
-      if (this.userInfo.length === 0) {
-        this.$store.commit("dialogVisible", true);
-        return;
-      }
       this.$router.push("/transfers");
     },
     handleGoToAuthentication() {
-      if (this.userInfo.length === 0) {
-        this.$store.commit("dialogVisible", true);
-        return;
-      }
       this.$router.push("/authentications");
     },
     handleGoToAuthenticationaz() {
-      if (this.userInfo.length === 0) {
-        this.$store.commit("dialogVisible", true);
-        return;
-      }
       this.$router.push("/download");
     },
     handleGoToBankCard() {
-      if (this.userInfo.length === 0) {
-        this.$store.commit("dialogVisible", true);
-        return;
-      }
-      this.$router.push("/bankCard");
+      // this.$router.push("/bankCard");
+      this.$router.push("/banklist");
+    },
+    handleGoToBankCard1() {
+      this.$router.push("/bankCard1");
     },
     async toRegister() {
       // 注销登陆
-
       window.localStorage.removeItem("USERTOKEN"); // 清空本地存储 USERTOKEN字段
       this.clearCookie();
       let data = await api.logout();
       if (data.status === 0) {
-        this.undataToken("");
         // Toast(data.msg)
+        this.undataToken(null);
         this.$router.push("/login");
       } else {
         Toast(data.msg);
@@ -419,13 +338,19 @@
         if (this.newPassword === this.cirNewPassword) {
           let opts = {
             oldPwd: this.oldPassword,
-            newPwd: this.newPassword,
+            newPwd: this.newPassword
           };
           let data = await api.changePassword(opts);
           if (data.status === 0) {
             this.changeLoginPsdBox = false;
-            Toast(data.msg);
+
+            this.pswDialog = false;
             this.settingDialog = false;
+            Notify({
+              type: "success",
+              message: this.$t("密码修改成功")
+            });
+            this.toRegister();
           } else {
             Toast(data.msg);
             this.settingDialog = false;
@@ -439,15 +364,35 @@
         // 支持
         navigator.vibrate([55]);
       }
-    },
-  },
+    }
+  }
 };
 </script>
 
 <style scoped lang="less">
+@green: #c4d600;
+
+/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: 700;
+  font-size: 0.48rem;
+  color: #14181f;
+}
+
 .right_gos_txt {
   margin-right: 15px;
 }
+
 .setting_content {
   width: 100%;
   height: 5rem;
@@ -492,7 +437,7 @@
     width: 100%;
     height: 1.3rem;
     border-radius: 0.15rem;
-    background: #2d6ae9;
+    background: @green;
     color: #fff;
     font-size: 0.4615rem;
     margin-top: 0.5rem;
@@ -505,6 +450,7 @@
     }
   }
 }
+
 .lang_box_txta {
   width: 100%;
   height: 100px;
@@ -512,6 +458,7 @@
   line-height: 100px;
   border-bottom: 1px solid #ecf5ff;
 }
+
 .lang_box_txt {
   width: 100%;
   height: 100px;
@@ -520,6 +467,7 @@
   border-bottom: 1px solid #ecf5ff;
   color: #2196f3;
 }
+
 .lang_box {
   width: 100%;
   display: flex;
@@ -527,25 +475,28 @@
   align-items: center;
   flex-direction: column;
 }
+
 .btn_s_box {
-  border: none;
-  background: #409eff;
-  color: #fff;
+  border: @green solid 0.01em;
+  background: #fff;
+  color: @green;
   height: 70px;
   width: 100%;
   line-height: 70px;
   font-size: 16px;
   text-align: center;
-  border-radius: 15px;
+  border-radius: 5px;
   font-weight: 600;
   margin: 40px 20px 0 20px;
 }
+
 .btn_s {
   width: 100%;
   display: flex;
   justify-content: center;
   align-items: center;
 }
+
 .jy {
   width: 100%;
   height: 1.5rem;
@@ -569,10 +520,11 @@
       display: flex;
       justify-content: center;
       align-items: center;
+      padding-left: 0.4rem;
 
       img {
-        width: 0.5041rem;
-        height: 0.5041rem;
+        width: .8rem;
+        height: .8rem;
       }
     }
 
@@ -583,7 +535,7 @@
       align-items: center;
       font-size: 0.4046rem;
       color: #404040;
-      padding-left: 0.4rem;
+      padding-left: 0.2rem;
 
       span {
         font-weight: 600;
@@ -604,6 +556,7 @@
     }
   }
 }
+
 body {
   background-color: #f8f8f8;
 }
@@ -669,7 +622,8 @@
     height: 2rem;
     display: flex;
     background-color: #fff;
-    > div {
+
+    >div {
       width: 10%;
       height: 100%;
       display: flex;
@@ -698,4 +652,4 @@
     }
   }
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3