diff --git a/src/components/ServerCard.tsx b/src/components/ServerCard.tsx index 6bb7520..7f736fe 100644 --- a/src/components/ServerCard.tsx +++ b/src/components/ServerCard.tsx @@ -11,7 +11,7 @@ import PlanInfo from "./PlanInfo" import BillingInfo from "./billingInfo" import { Card, CardContent, CardHeader, CardFooter } from "./ui/card" import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./ui/tooltip" -import { ArrowDown, ArrowUp, Clock, Cpu, HardDrive, Server, Activity, BarChart3, Calendar } from "lucide-react" +import { ArrowDown, ArrowUp, Clock, Cpu, HardDrive, Server, Activity, BarChart3 } from "lucide-react" interface ServerCardProps { now: number; @@ -19,9 +19,10 @@ interface ServerCardProps { cycleStats?: { [key: string]: CycleTransferData }; + groupName?: string; } -export default function ServerCard({ now, serverInfo, cycleStats }: ServerCardProps) { +export default function ServerCard({ now, serverInfo, cycleStats, groupName }: ServerCardProps) { const { t } = useTranslation() const navigate = useNavigate() const { @@ -44,7 +45,6 @@ export default function ServerCard({ now, serverInfo, cycleStats }: ServerCardPr udp, process, uptime, - last_active_time_string, arch, swap, swap_total @@ -201,7 +201,17 @@ export default function ServerCard({ now, serverInfo, cycleStats }: ServerCardPr onClick={cardClick} >
- + + {/* 离线卡片的分组标签 */} + {groupName && ( +
+
+ {groupName} +
+
+ )} + +
{showFlag && } @@ -272,14 +282,20 @@ export default function ServerCard({ now, serverInfo, cycleStats }: ServerCardPr )} onClick={cardClick} > + {/* 左侧状态条 */}
- +
{showFlag && }

{name}

+ {groupName && ( +
+ {groupName} +
+ )}
@@ -308,13 +324,6 @@ export default function ServerCard({ now, serverInfo, cycleStats }: ServerCardPr {formatUptime(uptime, t)}
)} - - {last_active_time_string && ( -
- - {last_active_time_string} -
- )}
@@ -434,8 +443,8 @@ export default function ServerCard({ now, serverInfo, cycleStats }: ServerCardPr
90 ? "bg-red-500/10 text-red-600 dark:text-red-400" : - Number(swap) > 70 ? "bg-orange-500/10 text-orange-600 dark:text-orange-400" : "")}> + Number(swap) > 90 ? "bg-red-500/10 text-red-600 dark:text-red-400" : + Number(swap) > 70 ? "bg-orange-500/10 text-orange-600 dark:text-orange-400" : "")}> SWAP:{swap.toFixed(0)}%
@@ -453,7 +462,7 @@ export default function ServerCard({ now, serverInfo, cycleStats }: ServerCardPr
- ):( + ) : (
-
diff --git a/src/pages/Server.tsx b/src/pages/Server.tsx index 1a393aa..1a04f9f 100644 --- a/src/pages/Server.tsx +++ b/src/pages/Server.tsx @@ -335,14 +335,22 @@ export default function Servers() { {showMap === "1" && } {showServices === "1" && }
- {filteredServers.map((serverInfo) => ( - - ))} + {filteredServers.map((serverInfo) => { + // 查找服务器所属的分组 + const serverGroup = groupData?.data?.find( + (g: ServerGroup) => Array.isArray(g.servers) && g.servers.includes(serverInfo.id) + ); + + return ( + + ); + })}
)