"use client" import { AdminNav } from "@/components/admin-nav" import { ThemeToggle } from "@/components/theme-toggle" import { Button } from "@/components/ui/button" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { useToast } from "@/components/ui/use-toast" import { useAuth } from "@/context/auth-context" import { BookOpen, Package, ShoppingBag, Users } from "lucide-react" import Link from "next/link" import { useRouter } from "next/navigation" import { useEffect, useState } from "react" interface Stats { totalBooks: number totalOrders: number totalUsers: number totalPublishers: number } export default function AdminDashboard() { const { user } = useAuth() const router = useRouter() const { toast } = useToast() const [stats, setStats] = useState({ totalBooks: 0, totalOrders: 0, totalUsers: 0, totalPublishers: 0, }) useEffect(() => { // 检查用户是否登录且是管理员 if (!user) { toast({ title: "请先登录", description: "您需要登录后才能访问管理页面", variant: "destructive", }) router.push("/login") return } if (!user.isAdmin) { toast({ title: "权限不足", description: "您没有管理员权限", variant: "destructive", }) router.push("/") return } // 模拟获取统计数据 // 实际项目中应该从API获取 const fetchStats = async () => { // 这里是模拟数据 try { // 模拟API调用 setTimeout(() => { setStats({ totalBooks: 156, totalOrders: 42, totalUsers: 87, totalPublishers: 23, }) }, 500) } catch (error) { console.error("获取统计数据失败", error) } } fetchStats() }, [user, router, toast]) if (!user || !user.isAdmin) { return null } return (
图书管理系统 - 管理后台

管理员控制台

总图书数 系统中的图书总数
{stats.totalBooks}
总订单数 系统中的订单总数
{stats.totalOrders}
总用户数 系统中的用户总数
{stats.totalUsers}
总出版社数 系统中的出版社总数
{stats.totalPublishers}
最近活动

新订单 #1234

10分钟前

新用户注册

30分钟前

新图书添加

1小时前

快速操作
) }