lrj
3 天以前 7ba080d35812e6db7bd5aa8f88161c02653eb6c1
web/src/views/login/index.vue
@@ -62,6 +62,8 @@
import { useRouter } from 'vue-router'
import { ElMessage } from 'element-plus'
import type { FormInstance, FormRules } from 'element-plus'
import { loginApi } from '@/utils/graphql'
import { setToken, setUserInfo } from '@/utils/auth'
const router = useRouter()
const loginFormRef = ref<FormInstance>()
@@ -93,17 +95,38 @@
    await loginFormRef.value.validate()
    loading.value = true
    
    // TODO: 调用登录API
    // 模拟登录
    setTimeout(() => {
      localStorage.setItem('token', 'mock-token-' + Date.now())
      ElMessage.success('登录成功')
      router.push('/')
      loading.value = false
    }, 1000)
    // 调用登录API
    const response = await loginApi({
      phone: loginForm.phone,
      password: loginForm.password
    })
    
  } catch (error) {
    // 保存token和用户信息
    setToken(response.token)
    setUserInfo(response.userInfo)
    ElMessage.success('登录成功')
    router.push('/')
  } catch (error: any) {
    console.error('登录失败:', error)
    // 显示错误信息
    let errorMessage = '登录失败'
    if (error.message) {
      if (error.message.includes('用户不存在')) {
        errorMessage = '用户不存在,请检查手机号'
      } else if (error.message.includes('密码不正确')) {
        errorMessage = '密码不正确,请重新输入'
      } else if (error.message.includes('没有权限')) {
        errorMessage = '您没有访问权限,请联系管理员'
      } else {
        errorMessage = error.message
      }
    }
    ElMessage.error(errorMessage)
  } finally {
    loading.value = false
  }
}