Эх сурвалжийг харах

polish: 登录页记住账号→记住我,同时记住账号和密码

- 存储格式改为 JSON {username, password}
- 页面加载时恢复账号和密码
- 取消时清空两者

Co-Authored-By: Claude <noreply@anthropic.com>
skyline 1 өдөр өмнө
parent
commit
ca7938e98a

+ 19 - 12
haha-admin-mp/src/pages/login/login.vue

@@ -25,11 +25,11 @@
             </view>
           </view>
         </view>
-        <view class="remember-row" @click="rememberAccount = !rememberAccount">
-          <view :class="['remember-checkbox', { checked: rememberAccount }]">
-            <text v-if="rememberAccount" class="check-mark">✓</text>
+        <view class="remember-row" @click="rememberMe = !rememberMe">
+          <view :class="['remember-checkbox', { checked: rememberMe }]">
+            <text v-if="rememberMe" class="check-mark">✓</text>
           </view>
-          <text class="remember-label">记住账号</text>
+          <text class="remember-label">记住</text>
         </view>
         <button class="login-btn" :loading="loading" :disabled="loading" @click="handleLogin">
           <text v-if="!loading">立即登录</text>
@@ -91,20 +91,24 @@ const wechatLoading = ref(false);
 const showBindInput = ref(false);
 const bindingCode = ref('');
 const bindLoading = ref(false);
-const rememberAccount = ref(false);
+const rememberMe = ref(false);
 
-const REMEMBERED_KEY = 'remembered_username';
+const REMEMBERED_KEY = 'remembered_login';
 
 onMounted(() => {
   if (isLoggedIn()) {
     navigateHome();
     return;
   }
-  // 读取记住的账号
+  // 读取记住的账号和密码
   const saved = uni.getStorageSync(REMEMBERED_KEY);
   if (saved) {
-    formData.username = saved;
-    rememberAccount.value = true;
+    try {
+      const data = JSON.parse(saved);
+      if (data.username) formData.username = data.username;
+      if (data.password) formData.password = data.password;
+      rememberMe.value = true;
+    } catch { /* ignore */ }
   }
 });
 
@@ -121,9 +125,12 @@ const handleLogin = async () => {
   loading.value = true;
   try {
     await login(formData);
-    // 记住/清除账号
-    if (rememberAccount.value) {
-      uni.setStorageSync(REMEMBERED_KEY, formData.username);
+    // 记住/清除账号和密码
+    if (rememberMe.value) {
+      uni.setStorageSync(REMEMBERED_KEY, JSON.stringify({
+        username: formData.username,
+        password: formData.password,
+      }));
     } else {
       uni.removeStorageSync(REMEMBERED_KEY);
     }