/* Copyright (C) 2025 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ import React from 'react'; import { Card, Button, Spin, Tabs, TabPane, Tag, Empty, } from '@douyinfe/semi-ui'; import { Gauge, RefreshCw } from 'lucide-react'; import { IllustrationConstruction, IllustrationConstructionDark, } from '@douyinfe/semi-illustrations'; import ScrollableContainer from '../common/ui/ScrollableContainer'; const UptimePanel = ({ uptimeData, uptimeLoading, activeUptimeTab, setActiveUptimeTab, loadUptimeData, uptimeLegendData, renderMonitorList, CARD_PROPS, ILLUSTRATION_SIZE, t, }) => { return (
{t('大模型部署定制服务')}

{t( '支持构建高效稳定的 Token 工厂,实现大规模生成能力的标准化与可控化', )}

} bodyStyle={{ padding: 0 }} > {/* 内容区域 */}
{uptimeData.length > 0 ? ( uptimeData.length === 1 ? ( {renderMonitorList(uptimeData[0].monitors)} ) : ( {uptimeData.map((group, groupIdx) => ( {group.categoryName} {group.monitors ? group.monitors.length : 0} } itemKey={group.categoryName} key={groupIdx} > {renderMonitorList(group.monitors)} ))} ) ) : (
} darkModeImage={ } title={t('暂无监控数据')} description={t('请联系管理员在系统设置中配置Uptime')} />
)}
{/* 图例 */} {uptimeData.length > 0 && (
{uptimeLegendData.map((legend, index) => (
{legend.label}
))}
)} ); }; export default UptimePanel;