diff --git a/src/pages/Login/index.vue b/src/pages/Login/index.vue index d4013d3..3859837 100644 --- a/src/pages/Login/index.vue +++ b/src/pages/Login/index.vue @@ -110,12 +110,13 @@ const router = useRouter(); const route = useRoute(); const userStore = useUserStore(); const tokenManager = TokenManager.getInstance(); +const KEEP_KEY = "keep_login_remember"; const loginFormRef = ref(); const loading = ref(false); const loginForm = reactive({ - username: "18280362106", - password: "123456789", + username: "", + password: "", remember:false }); @@ -159,22 +160,46 @@ const handleLogin = async () => { userStore.setToken(refresh_token); // 获取用户信息 userStore.setUserInfo(userInfo); - // TODO:记住密码功能 + // 记住密码功能 + if (loginForm.remember) { + const saveInfo = { + username: loginForm.username, + password: loginForm.password // TODO:密码要加密才行 + }; + tokenManager.setToken(KEEP_KEY, JSON.stringify(saveInfo)); + } else { + // 如果用户取消勾选,则移除 + tokenManager.removeToken(KEEP_KEY); + } ElMessage.success("登录成功"); // 跳转到首页或之前访问的页面 - const redirect = (route.query.redirect as string) || "/"; - router.push(redirect); + const redirect = (route.query.redirect as string); + router.push({path:'/',query:redirect}); } } catch (error: any) { console.error("Login error:", error); - ElMessage.error(error.error || "登录失败,请稍后重试"); } finally { loading.value = false; } }); }; + + +onMounted(() => { + const savedInfo = tokenManager.getToken(KEEP_KEY); + if (savedInfo) { + try { + const { username, password } = JSON.parse(savedInfo); + loginForm.username = username; + loginForm.password = password; + loginForm.remember = true; + } catch (e) { + console.error("解析记住的密码失败", e); + } + } +});