Просмотр исходного кода

fix: 修复后台登录成功后的崩溃bug (防止重复提交 + catch块防御)

Sisyphus 4 месяцев назад
Родитель
Сommit
3c0993bd26
1 измененных файлов с 10 добавлено и 2 удалено
  1. 10 2
      cfc-web/src/views/Login.vue

+ 10 - 2
cfc-web/src/views/Login.vue

@@ -349,6 +349,9 @@ export default {
         this.$message.warning('请先完成滑动验证')
         return
       }
+      if (this.loading) {
+        return
+      }
       this.$refs.loginForm.validate(async (valid) => {
         if (!valid) return
         this.loading = true
@@ -366,9 +369,14 @@ export default {
           localStorage.setItem('roles', JSON.stringify(roles))
           this.$message.success('登录成功')
           await this.$nextTick()
-          this.$router.push({ path: '/' })
+          this.$router.replace({ path: '/' })
         } catch (e) {
-          this.$message.error(e.message || '登录失败,请检查账号密码')
+          const msg = e && e.message ? e.message : '登录失败,请检查账号密码'
+          if (this.$message) {
+            this.$message.error(msg)
+          } else {
+            console.error(msg)
+          }
           this.resetCaptcha()
         } finally {
           this.loading = false