// 登录页(独立模式 / MF 未启用时使用) // 依据:02-architecture-design.md §3.1 路由结构、ISSUE-004 登录走 REST // MF 启用时由 Shell 提供登录;独立模式由本页提供 // mock 账号:parent@example.com / password "use client"; import { useState, type FormEvent } from "react"; import { useRouter } from "next/navigation"; import { login } from "@/lib/auth"; import { cn } from "@/lib/utils"; export default function LoginPage() { const router = useRouter(); const [email, setEmail] = useState("parent@example.com"); const [password, setPassword] = useState("password"); const [error, setError] = useState(null); const [loading, setLoading] = useState(false); async function handleSubmit(e: FormEvent) { e.preventDefault(); setError(null); setLoading(true); try { await login(email, password); router.push("/parent/dashboard"); } catch (err) { setError(err instanceof Error ? err.message : "登录失败"); } finally { setLoading(false); } } return (

Edu 家长端

登录查看子女学习情况

setEmail(e.target.value)} className="w-full rounded border border-rule bg-paper px-3 py-2 text-sm outline-none focus:border-accent" />
setPassword(e.target.value)} className="w-full rounded border border-rule bg-paper px-3 py-2 text-sm outline-none focus:border-accent" />
{error && ( )}

mock 账号:parent@example.com / password

); }