"use client" import { useState } from "react" import { Card, CardContent } from "@/components/ui/card" import { Badge } from "@/components/ui/badge" import { MoreHorizontal, Edit, Copy, Code, Trash2, Play, Pause } from "lucide-react" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu" import { useRouter } from "next/navigation" import { formatDate } from "@/app/lib/utils" // 分发规则类型定义 export interface DistributionRule { id: string name: string status: "active" | "paused" | "completed" deviceCount: number dailyDistribution: number trafficPoolCount: number totalDistributed: number lastExecuted?: string createdAt: string } interface DistributionRuleCardProps { rule: DistributionRule onDelete: (id: string) => void onStatusChange: (id: string, status: "active" | "paused") => void } export function DistributionRuleCard({ rule, onDelete, onStatusChange }: DistributionRuleCardProps) { const router = useRouter() const [isMenuOpen, setIsMenuOpen] = useState(false) // 状态标签颜色映射 const statusColorMap = { active: "bg-green-100 text-green-800 hover:bg-green-200", paused: "bg-yellow-100 text-yellow-800 hover:bg-yellow-200", completed: "bg-blue-100 text-blue-800 hover:bg-blue-200", } // 状态文本映射 const statusTextMap = { active: "进行中", paused: "已暂停", completed: "已完成", } // 处理编辑按钮点击 const handleEdit = () => { router.push(`/workspace/traffic-distribution/${rule.id}/edit`) } // 处理复制按钮点击 const handleCopy = () => { // 实现复制功能 console.log("复制分发规则:", rule.id) } // 处理接口按钮点击 const handleAPI = () => { router.push(`/workspace/traffic-distribution/${rule.id}/api`) } // 处理删除按钮点击 const handleDelete = () => { onDelete(rule.id) } // 处理状态切换 const handleStatusToggle = () => { const newStatus = rule.status === "active" ? "paused" : "active" onStatusChange(rule.id, newStatus) } return (

{rule.name}

{statusTextMap[rule.status]}
日均分发人数
{rule.dailyDistribution}
分发设备
{rule.deviceCount}
流量池
{rule.trafficPoolCount}
日均分发量
{rule.dailyDistribution}
总流量池数量
{rule.totalDistributed}
编辑计划 复制计划 计划接口 {rule.status === "active" ? ( <> 暂停计划 ) : ( <> 启动计划 )} 删除计划
{rule.lastExecuted && (
上次执行: {formatDate(rule.lastExecuted)}
)}
) }