import React, { useEffect, useState, useCallback } from 'react'; import { Box, Text, VStack, HStack, SimpleGrid, Badge, Button, Spinner } from '@chakra-ui/react'; import DocumentTitle from '@/components/system/pages/DocumentTitle'; import PageContainer from '@/components/system/PageContainer'; import DashboardBackground from '@/components/system/pages/DashboardBackground'; import FadeInWrapper from '@/components/system/layout/FadeInWrapper'; import FeatureCard from '@/components/pages/dashboard/FeatureCard'; import StatCard from '@/components/pages/dashboard/StatCard'; import api from '@/services/api/api'; import ConfigTool from '@/libs/config/ConfigTool'; import Notification from '@/libs/system/Notification'; /** * 控制台 * @returns {JSX.Element} * @constructor */ const Dashboard = () => { const [stats, setStats] = useState({ totalDevices: 0, onlineDevices: 0, lastScan: '', }); const [networkStatus, setNetworkStatus] = useState('loading'); // loading | ok | fail const checkBackend = useCallback(async () => { setNetworkStatus('loading'); try { const res = await api.test(); if (res) { setNetworkStatus('ok'); console.log(JSON.stringify(res)); Notification.info({ title: '成功连接至后端服务!' }); } else { setNetworkStatus('fail'); Notification.error({ title: '后端服务响应异常!' }); } } catch (err) { setNetworkStatus('fail'); Notification.error({ title: '无法连接到后端服务!' }); } }, [Notification]); useEffect(() => { const timer = setTimeout(() => { checkBackend(); }, 3000); return () => clearTimeout(timer); }, [checkBackend]); useEffect(() => { const loadStats = () => { const stats = ConfigTool.getStats(); setStats(stats); }; loadStats(); }, []); return ( {'欢迎使用智能交换机管理系统'} {'实时监控您的网络设备状态,快速配置并掌控全局网络环境'} {'网络健康状态'} {networkStatus === 'loading' && ( {'检测网络中...'} )} {networkStatus === 'ok' && ( {'网络连接正常'} )} {networkStatus === 'fail' && ( {'无法连接后端'} )} {'交换机正常运行'} {'流量监控已启动'} ); }; export default Dashboard;