/** * DC模块 - 工具卡片组件 * * 用于Portal页面的3个工具快速启动卡片 * 设计参考:智能数据清洗工作台V2.html */ import { useNavigate } from 'react-router-dom'; import { FileSpreadsheet, Bot, Table2, ArrowRight, LucideIcon } from 'lucide-react'; import type { ToolCard as ToolCardType } from '../types/portal'; interface ToolCardProps { tool: ToolCardType; } const iconMap: Record = { FileSpreadsheet, Bot, Table2 }; const colorMap = { blue: { bg: 'bg-blue-100', icon: 'text-blue-600', decorBg: 'bg-blue-50', hoverText: 'group-hover:text-blue-600', actionText: 'text-blue-600' }, purple: { bg: 'bg-purple-100', icon: 'text-purple-600', decorBg: 'bg-purple-50', hoverText: 'group-hover:text-purple-600', actionText: 'text-purple-600' }, emerald: { bg: 'bg-emerald-100', icon: 'text-emerald-600', decorBg: 'bg-emerald-50', hoverText: 'group-hover:text-emerald-600', actionText: 'text-emerald-600' } }; const ToolCard = ({ tool }: ToolCardProps) => { const navigate = useNavigate(); const Icon = iconMap[tool.icon] || Bot; const colors = colorMap[tool.color]; const isDisabled = tool.status === 'disabled'; const handleClick = () => { if (!isDisabled) { navigate(tool.route); } }; return (
{/* 装饰性圆形背景 */}
{/* 图标 */}
{/* 标题 */}

{tool.title}

{/* 描述 - 固定高度确保对齐 */}

{tool.description}

{/* 行动按钮 */} {isDisabled ? (
敬请期待
) : (
{tool.id === 'tool-a' ? '开始合并' : tool.id === 'tool-b' ? '新建提取任务' : '打开编辑器'}
)}
); }; export default ToolCard;