import React, { useState } from 'react' import Icon from '@ant-design/icons' // import { DualAxes, DualAxesConfig } from '@ant-design/plots' import '@/assets/css/pages/system/index.scss' import { useUpdatedEffect } from '@/util/hooks' import { utcToLocalTime } from '@/util/datetime' import { r_sys_statistics_hardware, r_sys_statistics_software } from '@/services/system' import Card from '@/components/common/Card' import FlexBox from '@/components/common/FlexBox' import FitFullScreen from '@/components/common/FitFullScreen' import HideScrollbar from '@/components/common/HideScrollbar' import LoadingMask from '@/components/common/LoadingMask' interface CommonCardProps extends React.PropsWithChildren { icon: IconComponent title: string loading?: boolean } const CommonCard: React.FC = (props) => { return (
{props.title}
) } const SoftwareInfo: React.FC = () => { const [softwareInfoData, setSoftwareInfoData] = useState() useUpdatedEffect(() => { void r_sys_statistics_software().then((res) => { const response = res.data if (response.success) { response.data && setSoftwareInfoData(response.data) } else { void message.error('获取软件信息失败,请稍后重试') } }) }, []) return (
操作系统
位数
Java
Java 供应商
Runtime
JVM
JVM 供应商
操作系统启动时间
后端服务器启动时间
{softwareInfoData?.os}
{softwareInfoData?.bitness}
{`${softwareInfoData?.javaVersion} (${softwareInfoData?.javaVersionDate})`}
{softwareInfoData?.javaVendor}
{`${softwareInfoData?.javaRuntime} (build ${softwareInfoData?.javaRuntimeVersion})`}
{`${softwareInfoData?.jvm} (build ${softwareInfoData?.jvmVersion}, ${softwareInfoData?.jvmInfo})`}
{softwareInfoData?.jvmVendor}
{softwareInfoData?.osBootTime && utcToLocalTime(softwareInfoData?.osBootTime)}
{softwareInfoData?.serverStartupTime && utcToLocalTime(softwareInfoData.serverStartupTime)}
) } const HardwareInfo: React.FC = () => { const [hardwareInfoData, setHardwareInfoData] = useState() useUpdatedEffect(() => { void r_sys_statistics_hardware().then((res) => { const response = res.data if (response.success) { response.data && setHardwareInfoData(response.data) } else { void message.error('获取硬件信息失败,请稍后重试') } }) }, []) return (
CPU
架构
微架构
64位
CPU 插槽
CPU 内核
CPU 逻辑处理器
{hardwareInfoData?.cpu}
{hardwareInfoData?.arch}
{hardwareInfoData?.microarchitecture}
{hardwareInfoData?.is64Bit ? '是' : '否'}
{hardwareInfoData?.cpuPhysicalPackageCount}
{hardwareInfoData?.cpuPhysicalProcessorCount}
{hardwareInfoData?.cpuLogicalProcessorCount}
) } const System: React.FC = () => { /* const dualAxesData = [ { year: '1991', value: 3, count: 10 }, { year: '1992', value: 4, count: 4 }, { year: '1993', value: 3.5, count: 5 }, { year: '1994', value: 5, count: 5 }, { year: '1995', value: 4.9, count: 4.9 }, { year: '1996', value: 6, count: 35 }, { year: '1997', value: 7, count: 7 }, { year: '1998', value: 9, count: 1 }, { year: '1999', value: 13, count: 20 } ] const userStatisticsData = [ { time: '2023-12-01', type: 'register', number: 23 }, { time: '2023-12-02', type: 'register', number: 123 }, { time: '2023-12-03', type: 'register', number: 1432 }, { time: '2023-12-05', type: 'register', number: 1 }, { time: '2023-12-04', type: 'register', number: 234 }, { time: '2023-12-06', type: 'register', number: 23 }, { time: '2023-12-07', type: 'register', number: 54 }, { time: '2023-12-08', type: 'register', number: 87 }, { time: '2023-12-09', type: 'register', number: 12 }, { time: '2023-12-10', type: 'register', number: 123 }, { time: '2023-12-11', type: 'register', number: 20 }, { time: '2023-12-01', type: 'login', number: 433 }, { time: '2023-12-02', type: 'login', number: 2 }, { time: '2023-12-03', type: 'login', number: 34 }, { time: '2023-12-05', type: 'login', number: 12 }, { time: '2023-12-04', type: 'login', number: 345 }, { time: '2023-12-06', type: 'login', number: 121 }, { time: '2023-12-07', type: 'login', number: 2 }, { time: '2023-12-08', type: 'login', number: 435 }, { time: '2023-12-09', type: 'login', number: 1 }, { time: '2023-12-10', type: 'login', number: 54 }, { time: '2023-12-11', type: 'login', number: 56 } ] const dualAxesConfig: DualAxesConfig = { data: userStatisticsData, slider: { x: true }, shapeField: 'smooth', xField: 'time', children: [ { type: 'line', yField: 'number', colorField: 'type' } ] } */ return ( <> {/**/}
) } export default System