import { useIntl } from '@umijs/max'; import { Card, Col, Row, Space } from 'antd'; import _ from 'lodash'; import React, { useContext } from 'react'; import { overviewConfigs } from '../config'; import { DashboardContext } from '../config/dashboard-context'; import '../styles/index.less'; import styles from './over-view.less'; const renderCardItem = (data: { label: string; value: React.ReactNode; bgColor: string; }) => { const { label, value, bgColor } = data; return (
{label}
{value}
); }; const Overview: React.FC = () => { const intl = useIntl(); const data = useContext(DashboardContext).resource_counts || {}; console.log('overview==='); const renderValue = ( value: | number | { healthy: number; warning: number; error: number; } ) => { if (typeof value === 'number') { return value; } return ( {value.healthy} {value.warning} {value.error} ); }; return (
{overviewConfigs.map((config, index) => ( {renderCardItem({ label: intl.formatMessage({ id: config.label }), value: renderValue(_.get(data, config.key, 0)), bgColor: config.backgroundColor })} ))}
); }; export default Overview;