"use client" import type React from "react" import { useState } from "react" import Link from "next/link" import { useRouter } from "next/navigation" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" import { Label } from "@/components/ui/label" import { Checkbox } from "@/components/ui/checkbox" import { Sparkles, Mail, Lock, Phone, ArrowRight, Loader2 } from "lucide-react" import { emailLogin, saveAuthToken } from "@/lib/api/auth" export default function LoginPage() { const router = useRouter() const [isLoading, setIsLoading] = useState(false) const [loginMethod, setLoginMethod] = useState<"email" | "phone">("email") const [email, setEmail] = useState("") const [password, setPassword] = useState("") const [phone, setPhone] = useState("") const [verificationCode, setVerificationCode] = useState("") const [isSendingCode, setIsSendingCode] = useState(false) const [countdown, setCountdown] = useState(0) const handleLogin = async (e: React.FormEvent) => { e.preventDefault() setIsLoading(true) try { if (loginMethod === "email") { // 使用真实的邮箱登录接口 const response = await emailLogin(email, password) console.log(response) // 保存登录凭证(包含角色信息) saveAuthToken(response.data.token, response.data.is_superuser, response.data.role) // 设置登录状态 localStorage.setItem("isLoggedIn", "true") // 登录成功后跳转到首页 router.push("/") } else { // 手机号登录逻辑保持不变 // 模拟登录请求 await new Promise((resolve) => setTimeout(resolve, 1500)) // 设置登录状态 localStorage.setItem("isLoggedIn", "true") // 登录成功后跳转到首页 router.push("/") } } catch (error) { console.error("登录失败", error) alert(error instanceof Error ? error.message : "登录失败,请重试") } finally { setIsLoading(false) } } const handleSendVerificationCode = async () => { if (!phone || phone.length !== 11 || isSendingCode) return setIsSendingCode(true) try { // 模拟发送验证码请求 await new Promise((resolve) => setTimeout(resolve, 1000)) // 开始倒计时 setCountdown(60) const timer = setInterval(() => { setCountdown((prev) => { if (prev <= 1) { clearInterval(timer) setIsSendingCode(false) return 0 } return prev - 1 }) }, 1000) } catch (error) { console.error("发送验证码失败", error) setIsSendingCode(false) } } return (