import React, { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { Form, Input, Button, Card, Space, Typography, Alert, Checkbox, Divider } from 'antd'; import { UserOutlined, LockOutlined, CheckSquareOutlined } from '@ant-design/icons'; import { api } from '../api/axios'; const { Title, Text, Link } = Typography; function Login() { const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const navigate = useNavigate(); const onFinish = async (values: any) => { setLoading(true); setError(null); try { const response = await api.post('/auth/login', { username: values.username, password: values.password, }); localStorage.setItem('token', response.data.token); localStorage.setItem('username', values.username); navigate('/'); } catch (err: any) { const errorMessage = err.response?.data?.message || '登录失败,请检查用户名或密码。'; setError(errorMessage); } finally { setLoading(false); } }; return (
Todo List 轻松管理您的任务
{error && ( setError(null)} style={{ marginBottom: 24 }} /> )}
} placeholder="账户" size="large" /> } placeholder="密码" size="large" />
自动登录 忘记密码 注册新账号
); } export default Login;