| | |
| | | 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>() |
| | |
| | | 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 |
| | | } |
| | | } |