"use client"; import { useEffect, useState } from "react"; import Link from "next/link"; import { Warning, Users, Percent, ListMagnifyingGlass, } from "@phosphor-icons/react"; import { AdminLayout } from "@/components/layout/admin-layout"; import { PageHeader } from "@/components/layout/page-header"; import { Card } from "@/components/ui/card"; import { useAuth } from "@/hooks/use-auth"; import { adminGetAlerts } from "@/lib/frontend/api-client"; interface EntryCard { href: string; title: string; desc: string; icon: typeof Warning; badge?: number; } export default function DashboardPage() { const { token } = useAuth(); const [openAlerts, setOpenAlerts] = useState(0); useEffect(() => { if (!token) return; void adminGetAlerts("", token, 1, 1, undefined, "open").then((res) => { if (res.code === 0) { setOpenAlerts(res.data.total); } }); }, [token]); const entries: EntryCard[] = [ { href: "/admin/alerts", title: "预警中心", desc: "查看查价失败根因与客户地址货物信息", icon: Warning, badge: openAlerts, }, { href: "/admin/queues", title: "查价记录", desc: "最近询价流水、成功失败与客户查询详情", icon: ListMagnifyingGlass, }, { href: "/admin/customers", title: "客户管理", desc: "新增客户、签发 API Key 与状态管理", icon: Users, }, { href: "/admin/markup", title: "加价配置", desc: "按客户设置报价加价比例", icon: Percent, }, ]; return (
{entries.map((entry) => { const Icon = entry.icon; return (
{entry.badge ? ( {entry.badge} 条待处理 ) : null}

{entry.title}

{entry.desc}

); })}
); }