import { Typography, Statistic, Card, Progress} from "antd"; const { Text } = Typography; interface StatisticItemProps { title?: string, value?: any, prefix?: JSX.Element, color?: string, progress?: boolean, centered?: boolean, formatter?: any, }; const defaultProps = { title: '', value: 0, prefix: null, color: '', progress: false, centered: false, formatter: null, }; function ProgressView({ title, value, prefix, color }: StatisticItemProps) { const endColor = value > 90 ? 'red' : color; const content = (
{prefix}
{title}
{value}%
) return ( content} /> ) } ProgressView.defaultProps = defaultProps; function StatisticView({ title, value, prefix, formatter }: StatisticItemProps) { return ( ); } StatisticView.defaultProps = defaultProps; export default function StatisticItem(props: StatisticItemProps) { const { progress, centered } = props; const View = progress ? ProgressView : StatisticView; const style = centered ? {display: 'flex', alignItems: 'center', justifyContent: 'center'} : {}; return (
); } StatisticItem.defaultProps = defaultProps;