浏览代码

添加记住账号

yangg 3 周之前
父节点
当前提交
821b64bb9d

文件差异内容过多而无法显示
+ 0 - 0
dist/assets/forget-password-ydZddpZo.js


文件差异内容过多而无法显示
+ 0 - 1
dist/assets/index-bEeCHtmf.js


文件差异内容过多而无法显示
+ 0 - 0
dist/assets/login-BU7vppkf.js


文件差异内容过多而无法显示
+ 0 - 0
dist/assets/login-C2o8u4wI.js


文件差异内容过多而无法显示
+ 0 - 0
dist/assets/login-CYreIHF3.css


文件差异内容过多而无法显示
+ 0 - 0
dist/assets/login-l82me9bj.css


文件差异内容过多而无法显示
+ 0 - 0
dist/assets/register-Busoj2MW.js


文件差异内容过多而无法显示
+ 0 - 0
dist/assets/report-QuUxcPRx.js


+ 1 - 1
dist/index.html

@@ -5,7 +5,7 @@
     <link rel="icon" type="image/svg+xml" href="/vite.svg" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title></title>
-    <script type="module" crossorigin src="/assets/index-LwTZcWjh.js"></script>
+    <script type="module" crossorigin src="/assets/index-bEeCHtmf.js"></script>
     <link rel="modulepreload" crossorigin href="/assets/vendor-BfKWghV4.js">
     <link rel="stylesheet" crossorigin href="/assets/index-CVrWfcbZ.css">
   </head>

+ 57 - 13
src/views/login.vue

@@ -191,7 +191,7 @@
 </template>
 
 <script>
-import { defineComponent, reactive, ref, nextTick, onUnmounted } from 'vue';
+import { defineComponent, reactive, ref, nextTick, onUnmounted, onMounted, watch } from 'vue';
 import { useRouter } from 'vue-router';
 import { useStore } from 'vuex';
 import axios from 'axios';
@@ -332,7 +332,6 @@ export default defineComponent({
               store.commit('app/setUser', {
                 user: userInfoResponse.data.data,
                 permission: userInfoResponse.data.data || [],
-             
               });
 
               // 同时存储到 localStorage
@@ -350,10 +349,21 @@ export default defineComponent({
           // 记住账号
           if (rememberMe.value) {
             if (loginType.value === 'account') {
-              localStorage.setItem('username', formData.username);
+              localStorage.setItem('rememberedAccount', JSON.stringify({
+                username: formData.username,
+                merchant_code: formData.merchant_code,
+                loginType: 'account'
+              }));
             } else if (loginType.value === 'mobile') {
-              localStorage.setItem('mobile', formData.mobile);
+              localStorage.setItem('rememberedAccount', JSON.stringify({
+                mobile: formData.mobile,
+                merchant_code: formData.merchant_code,
+                loginType: 'mobile'
+              }));
             }
+          } else {
+            // 如果取消记住账号,则清除保存的信息
+            localStorage.removeItem('rememberedAccount');
           }
 
           message.success('登录成功');
@@ -385,14 +395,47 @@ export default defineComponent({
     };
 
     // 初始化时从本地存储获取记住的信息
-    if (localStorage.getItem('username')) {
-      formData.username = localStorage.getItem('username');
-      rememberMe.value = true;
-    } else if (localStorage.getItem('mobile')) {
-      formData.mobile = localStorage.getItem('mobile');
-      loginType.value = 'mobile';
-      rememberMe.value = true;
-    }
+    const initRememberedAccount = () => {
+      const rememberedAccount = localStorage.getItem('rememberedAccount');
+      if (rememberedAccount) {
+        try {
+          const accountInfo = JSON.parse(rememberedAccount);
+          rememberMe.value = true;
+          
+          if (accountInfo.loginType === 'account') {
+            loginType.value = 'account';
+            formData.username = accountInfo.username;
+            /* formData.merchant_code = accountInfo.merchant_code; */
+          } else if (accountInfo.loginType === 'mobile') {
+            loginType.value = 'mobile';
+            formData.mobile = accountInfo.mobile;
+            /* formData.merchant_code = accountInfo.merchant_code; */
+          }
+        } catch (error) {
+          console.error('解析记住的账号信息失败:', error);
+          localStorage.removeItem('rememberedAccount');
+        }
+      }
+    };
+
+    // 清除记住的账号信息
+    const clearRememberedAccount = () => {
+      localStorage.removeItem('rememberedAccount');
+      rememberMe.value = false;
+      message.success('已清除记住的账号信息');
+    };
+
+    // 监听记住账号复选框变化
+    watch(rememberMe, (newValue) => {
+      if (!newValue) {
+        clearRememberedAccount();
+      }
+    });
+
+    // 在组件挂载时初始化记住的账号信息
+    onMounted(() => {
+      initRememberedAccount();
+    });
 
     // 切换到手机号登录
     const switchToMobileLogin = () => {
@@ -558,7 +601,8 @@ export default defineComponent({
       wechatLoginModal,
       wechatQrCode,
       getWechatQrCode,
-      handleWechatLoginCancel
+      handleWechatLoginCancel,
+      clearRememberedAccount
     };
   }
 });

部分文件因为文件数量过多而无法显示