"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

{task?.status === "running" ? ( ) : ( )}
) }