import { Button, Tag } from 'antd'; import React from 'react'; import { Column } from '@ant-design/charts'; import { ArrowRightOutlined, SyncOutlined } from '@ant-design/icons'; import { DateFilter } from './DateFilter'; import { HealthBar } from './HealthBar'; export const WebsiteOverview: React.FC = React.memo(() => { return (
Tianji ({ status: 'health' }))} />
); }); WebsiteOverview.displayName = 'WebsiteOverview'; const MetricCard: React.FC<{ label: string; value: number; diff: number; unit?: string; }> = React.memo((props) => { const unit = props.unit ?? ''; return (
{String(props.value)} {unit}
{props.label} = 0 ? 'green' : 'red'}> {props.diff >= 0 ? `+${props.diff}${unit}` : `${props.diff}${unit}`}
); }); MetricCard.displayName = 'MetricCard'; export const DemoChart: React.FC = React.memo(() => { const data = [ { type: '家具家电', sales: 38, }, { type: '粮油副食', sales: 52, }, { type: '生鲜水果', sales: 61, }, { type: '美容洗护', sales: 145, }, { type: '母婴用品', sales: 48, }, { type: '进口食品', sales: 38, }, { type: '食品饮料', sales: 38, }, { type: '家庭清洁', sales: 38, }, ]; const config = { data, xField: 'type', yField: 'sales', label: { // 可手动配置 label 数据标签位置 position: 'middle' as const, // 'top', 'bottom', 'middle', // 配置样式 style: { fill: '#FFFFFF', opacity: 0.6, }, }, xAxis: { label: { autoHide: true, autoRotate: false, }, }, meta: { type: { alias: '类别', }, sales: { alias: '销售额', }, }, }; return ; }); DemoChart.displayName = 'DemoChart';