diff --git a/ruoyi-ui-next/src/views/login.vue b/ruoyi-ui-next/src/views/login.vue index a977ae8..d716544 100644 --- a/ruoyi-ui-next/src/views/login.vue +++ b/ruoyi-ui-next/src/views/login.vue @@ -51,6 +51,7 @@ const router = useRouter() const userStore = useUserStore() const formRef = ref() const loading = ref(false) +const isSubmitting = ref(false) const loginForm = reactive({ username: '', @@ -63,12 +64,13 @@ const rules = { } const handleLogin = async () => { - if (!formRef.value) return + if (!formRef.value || isSubmitting.value) return + isSubmitting.value = true + loading.value = true try { // 使用 Promise 方式等待校验完成 await formRef.value.validate() - loading.value = true await userStore.login(loginForm.username, loginForm.password) ElMessage.success('登录成功') // 使用 window.location.replace 确保页面完全刷新并跳转到首页 @@ -78,6 +80,7 @@ const handleLogin = async () => { ElMessage.error(error.message || '登录失败,请检查用户名和密码') } finally { loading.value = false + isSubmitting.value = false } }