"use client" import { useState, useEffect, use } from "react" import { DashboardShell } from "@/components/dashboard-shell" import { DashboardHeader } from "@/components/dashboard-header" import { Button } from "@/components/ui/button" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" import { Badge } from "@/components/ui/badge" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" import { ArrowLeft, Edit, AlertTriangle, FileText, Plus, Download, Loader2 } from "lucide-react" import Link from "next/link" import { AddPrintBatchDialog } from "@/components/outfits/add-print-batch-dialog" import { ExportCardsDialog } from "@/components/outfits/export-cards-dialog" import { isSuperUser } from "@/lib/api/auth" import { getOutfit } from "@/lib/api/outfits" import type { Outfit } from "@/lib/api/types" export default function OutfitDetailPage({ params }: { params: Promise<{ id: string }> }) { const { id } = use(params) const [outfit, setOutfit] = useState(null) const [loading, setLoading] = useState(true) const [error, setError] = useState(null) useEffect(() => { const fetchOutfit = async () => { try { setLoading(true) setError(null) const data = await getOutfit(id) setOutfit(data) } catch (err) { console.error("获取服装详情失败:", err) setError(`找不到ID为 ${id} 的服装`) } finally { setLoading(false) } } fetchOutfit() }, [id]) if (loading) { return (
加载中...
) } if (error || !outfit) { return (

服装不存在

{error || `找不到ID为 ${id} 的服装`}

) } const isPublished = outfit.status === "已发布" const printedCount = outfit.batchesCount || 0 const activatedCount = outfit.activeCardsCount || 0 const activationRate = printedCount > 0 ? Math.round((activatedCount / printedCount) * 100) : 0 return (
{(!isPublished || isSuperUser()) && ( )}
服装详情 批次管理 数据分析
服装预览
{outfit.imageUrl && !outfit.imageUrl.includes("placeholder") ? ( {outfit.name} ) : (
暂无图片
)}
{outfit.status || "未发布"}
服装详情

服装类型

{outfit.category || "-"}

稀有度

{outfit.rarity || "-"}

发布日期

{outfit.publishedAt || "尚未发布"}

激活数量

{activatedCount}

创建日期

{outfit.createdAt || "-"}

激活率

{activationRate}%

服装描述

{outfit.description || "暂无描述"}

{isPublished && (

{isSuperUser() ? "该服装已发布,您以超级管理员身份仍可编辑和删除。请谨慎操作。" : "该服装已发布,基本属性不可修改。您仍可以增加印刷数量。"}

)}
印刷批次管理 管理服装卡牌的印刷批次和卡牌ID
批次ID 创建日期 数量 状态 操作
批次数据将从后端加载
批次操作 批量管理卡牌批次
激活数据分析 服装卡牌激活情况统计

激活数据图表将在此显示

地区分布

地区分布图表将在此显示

时间趋势

时间趋势图表将在此显示

) }