Browse Source

🎈 perf:避免表单值被后续函数修改导致页面异常

preschool 10 months ago
parent
commit
16c919ce02
2 changed files with 10 additions and 8 deletions
  1. 5 4
      src/views/Login/SocialLogin.vue
  2. 5 4
      src/views/Login/components/LoginForm.vue

+ 5 - 4
src/views/Login/SocialLogin.vue

@@ -276,10 +276,11 @@ const handleLogin = async (params) => {
     const code = route?.query?.code as string
     const state = route?.query?.state as string
 
+    const loginDataLoginForm = { ...loginData.loginForm }
     const res = await LoginApi.login({
       // 账号密码登录
-      username: loginData.loginForm.username,
-      password: loginData.loginForm.password,
+      username: loginDataLoginForm.username,
+      password: loginDataLoginForm.password,
       captchaVerification: params.captchaVerification,
       // 社交登录
       socialCode: code,
@@ -294,8 +295,8 @@ const handleLogin = async (params) => {
       text: '正在加载系统中...',
       background: 'rgba(0, 0, 0, 0.7)'
     })
-    if (loginData.loginForm.rememberMe) {
-      authUtil.setLoginForm(loginData.loginForm)
+    if (loginDataLoginForm.rememberMe) {
+      authUtil.setLoginForm(loginDataLoginForm)
     } else {
       authUtil.removeLoginForm()
     }

+ 5 - 4
src/views/Login/components/LoginForm.vue

@@ -249,8 +249,9 @@ const handleLogin = async (params) => {
     if (!data) {
       return
     }
-    loginData.loginForm.captchaVerification = params.captchaVerification
-    const res = await LoginApi.login(loginData.loginForm)
+    const loginDataLoginForm = { ...loginData.loginForm }
+    loginDataLoginForm.captchaVerification = params.captchaVerification
+    const res = await LoginApi.login(loginDataLoginForm)
     if (!res) {
       return
     }
@@ -259,8 +260,8 @@ const handleLogin = async (params) => {
       text: '正在加载系统中...',
       background: 'rgba(0, 0, 0, 0.7)'
     })
-    if (loginData.loginForm.rememberMe) {
-      authUtil.setLoginForm(loginData.loginForm)
+    if (loginDataLoginForm.rememberMe) {
+      authUtil.setLoginForm(loginDataLoginForm)
     } else {
       authUtil.removeLoginForm()
     }