import { useState } from 'react' import { useNavigate } from 'react-router-dom' import { api, setToken } from '@/lib/api' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' export default function Login() { // 不预填账号密码:预填等于把后台凭证写在页面上 const [username, setUsername] = useState('') const [password, setPassword] = useState('') const [error, setError] = useState('') const [loading, setLoading] = useState(false) const navigate = useNavigate() async function submit(e: React.FormEvent) { e.preventDefault() if (!username.trim() || !password) { setError('请输入账号和密码') return } setLoading(true) setError('') try { const res = await api.login(username.trim(), password) setToken(res.token, res.refresh_token) navigate('/') } catch (err: any) { setError(err.message || '登录失败') } finally { setLoading(false) } } return (
🐾
肉垫计划 · 后台管理
setUsername(e.target.value)} />
setPassword(e.target.value)} />
{error &&

{error}

}
) }