"use client" import { useState } from "react" import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog" import { Button } from "@/components/ui/button" import { Badge } from "@/components/ui/badge" import { Progress } from "@/components/ui/progress" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" import { ScrollArea } from "@/components/ui/scroll-area" import { Play, Pause, RefreshCw, Clock, CheckCircle, XCircle } from "lucide-react" interface TaskDetailDialogProps { open: boolean onOpenChange: (open: boolean) => void task?: { id: string name: string type: string status: string progress: number schedule: string lastRun: string nextRun: string duration: string } } const TASK_LOGS = [ { time: "14:35:12", level: "INFO", message: "任务开始执行" }, { time: "14:35:13", level: "INFO", message: "连接数据源成功" }, { time: "14:35:15", level: "INFO", message: "开始读取数据 (批次 1/10)" }, { time: "14:35:22", level: "INFO", message: "批次 1 处理完成, 共 12,895 条" }, { time: "14:35:25", level: "INFO", message: "开始读取数据 (批次 2/10)" }, { time: "14:35:32", level: "WARN", message: "批次 2 发现 3 条异常数据" }, { time: "14:35:35", level: "INFO", message: "批次 2 处理完成, 共 12,456 条" }, { time: "14:36:02", level: "INFO", message: "任务进度: 67%" }, ] const EXECUTION_STATS = [ { label: "总处理记录", value: "128,956" }, { label: "成功记录", value: "128,931" }, { label: "失败记录", value: "25" }, { label: "平均速度", value: "3,800 条/秒" }, { label: "内存使用", value: "2.4 GB" }, { label: "CPU使用", value: "45%" }, ] export function TaskDetailDialog({ open, onOpenChange, task }: TaskDetailDialogProps) { const [activeTab, setActiveTab] = useState("overview") const getStatusBadge = (status: string) => { switch (status) { case "running": return ( 运行中 ) case "completed": return ( 已完成 ) case "failed": return ( 失败 ) case "waiting": return ( 等待中 ) default: return {status} } } return ( {task?.name || "任务详情"} {getStatusBadge(task?.status || "waiting")} 查看任务执行详情、日志和统计信息 {task?.status === "running" && ( 执行进度 {task.progress}% )} 概览 执行日志 任务配置 调度规则 {task?.schedule || "*/5 * * * *"} 执行耗时 {task?.duration || "2分30秒"} 上次执行 {task?.lastRun || "-"} 下次执行 {task?.nextRun || "-"} {EXECUTION_STATS.map((stat, i) => ( {stat.value} {stat.label} ))} {TASK_LOGS.map((log, i) => ( {log.time} [{log.level}] {log.message} ))} 任务类型 {task?.type || "数据同步"} 超时时间 30分钟 重试次数 3次 并发数 4 onOpenChange(false)}> 关闭 {task?.status === "running" ? ( 暂停任务 ) : ( 立即执行 )} ) }
{task?.schedule || "*/5 * * * *"}
{task?.duration || "2分30秒"}
{task?.lastRun || "-"}
{task?.nextRun || "-"}
{stat.value}
{stat.label}
{task?.type || "数据同步"}
30分钟
3次
4