// 服务器管理共享纯函数/常量 // Logan.Li import { Badge } from '@/components/ui/badge'; import type { Server as ServerType } from '@/types'; // 解析标签:后端 tags 可能是 JSON 字符串(JSON数组/对象)、逗号分隔字符串或数组 // Logan.Li export function getTags(server: any): string[] { const tags = server.tags; if (!tags) return []; if (Array.isArray(tags)) return tags; try { const parsed = JSON.parse(tags); if (Array.isArray(parsed)) return parsed; // JSON 对象 → key:value 格式展示(如 project:prod) // Logan.Li if (typeof parsed === 'object' && parsed !== null) { return Object.entries(parsed).map(([k, v]) => `${k}:${String(v)}`); } return [String(parsed)]; } catch { return String(tags) .split(',') .map((t: string) => t.trim()) .filter(Boolean); } } // 服务器状态徽章 // Logan.Li export function getStatusBadge(status: ServerType['status']) { switch (status) { case 'running': return (
运行中 ); case 'stopped': return ( 已停止 ); case 'maintenance': return (
维护中 ); case 'offline': return ( 离线 ); default: return null; } } // 使用率进度条颜色(CPU/内存通用)— 绿色<60% 黄色60-80% 红色>80% // Logan.Li export function getUsageColor(usage: number): string { return usage > 80 ? 'bg-red-400' : usage > 60 ? 'bg-amber-400' : 'bg-emerald-400'; }