From b692ba7af6ea0313599073a5d0304f3a0decf801 Mon Sep 17 00:00:00 2001 From: FatttSnake Date: Sun, 10 Dec 2023 12:41:53 +0800 Subject: [PATCH] Finish storage information in statistics management page --- src/assets/css/pages/system/index.scss | 5 + src/constants/urls.constants.ts | 3 +- src/global.d.ts | 17 +- src/pages/system/index.tsx | 301 +++++++++++++------------ src/services/system.tsx | 7 +- 5 files changed, 182 insertions(+), 151 deletions(-) diff --git a/src/assets/css/pages/system/index.scss b/src/assets/css/pages/system/index.scss index abdc828..ecf9e7a 100644 --- a/src/assets/css/pages/system/index.scss +++ b/src/assets/css/pages/system/index.scss @@ -28,6 +28,11 @@ display: flex; font-size: 1.2em; } + + :nth-child(n+3) { + flex: 0 0 auto; + color: constants.$font-main-color; + } } .card-content { diff --git a/src/constants/urls.constants.ts b/src/constants/urls.constants.ts index c668bea..2de2b64 100644 --- a/src/constants/urls.constants.ts +++ b/src/constants/urls.constants.ts @@ -15,8 +15,7 @@ export const URL_SYS_STATISTICS = '/system/statistics' export const URL_SYS_STATISTICS_SOFTWARE = `${URL_SYS_STATISTICS}/software` export const URL_SYS_STATISTICS_HARDWARE = `${URL_SYS_STATISTICS}/hardware` export const URL_SYS_STATISTICS_CPU = `${URL_SYS_STATISTICS}/cpu` -export const URL_SYS_STATISTICS_MEMORY = `${URL_SYS_STATISTICS}/memory` -export const URL_SYS_STATISTICS_JVM = `${URL_SYS_STATISTICS}/jvm` +export const URL_SYS_STATISTICS_STORAGE = `${URL_SYS_STATISTICS}/storage` export const URL_API_V1 = '/api/v1' export const URL_API_V1_AVATAR_RANDOM_BASE64 = `${URL_API_V1}/avatar/base64` diff --git a/src/global.d.ts b/src/global.d.ts index 16a1fab..9be10db 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -365,13 +365,20 @@ interface CpuInfoVo { processors: CpuInfoVo[] } -interface MemoryInfoVo { - total: number - free: number - virtualInUse: number - virtualMax: number +interface StorageInfoVo { + memoryTotal: number + memoryFree: number + virtualMemoryInUse: number + virtualMemoryMax: number swapTotal: number swapUsed: number jvmTotal: number jvmFree: number + fileStores: FileStoreInfoVo[] +} + +interface FileStoreInfoVo { + mount: string + total: number + free: number } diff --git a/src/pages/system/index.tsx b/src/pages/system/index.tsx index f2d4b29..4a8bb2a 100644 --- a/src/pages/system/index.tsx +++ b/src/pages/system/index.tsx @@ -11,31 +11,25 @@ import { BarChart, BarSeriesOption } from 'echarts/charts' import { SVGRenderer } from 'echarts/renderers' import '@/assets/css/pages/system/index.scss' import { useUpdatedEffect } from '@/util/hooks' +import { formatByteSize } from '@/util/common' import { utcToLocalTime } from '@/util/datetime' import { r_sys_statistics_cpu, r_sys_statistics_hardware, - r_sys_statistics_memory, - r_sys_statistics_software + r_sys_statistics_software, + r_sys_statistics_storage } 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' -import { formatByteSize } from '@/util/common.tsx' echarts.use([TooltipComponent, GridComponent, BarChart, SVGRenderer]) type EChartsOption = echarts.ComposeOption< TooltipComponentOption | GridComponentOption | BarSeriesOption > -interface CommonCardProps extends React.PropsWithChildren { - icon: IconComponent - title: string - loading?: boolean -} - const barDefaultSeriesOption: BarSeriesOption = { type: 'bar', stack: 'total', @@ -76,6 +70,13 @@ const eChartsBaseOption: EChartsOption = { } } +interface CommonCardProps extends React.PropsWithChildren { + icon: IconComponent + title: string + loading?: boolean + expand?: React.ReactNode +} + const CommonCard: React.FC = (props) => { return ( @@ -83,6 +84,7 @@ const CommonCard: React.FC = (props) => {
{props.title}
+ {props.expand}