# StatCard 组件 ## 组件说明 统计卡片组件,用于展示数值型统计数据。支持图标、颜色主题、趋势指示器等功能,适合在仪表盘或信息面板中使用。 ## 组件位置 ``` src/components/StatCard/StatCard.jsx src/components/StatCard/StatCard.css ``` ## 参数说明 | 参数名 | 类型 | 必填 | 默认值 | 说明 | |--------|------|------|--------|------| | title | string | 是 | - | 卡片标题 | | value | number \| string | 是 | - | 统计值 | | icon | ReactNode | 否 | - | 图标 | | color | string | 否 | 'blue' | 主题颜色:blue/green/orange/red/purple/gray 或自定义颜色值 | | trend | TrendConfig | 否 | - | 趋势信息 | | suffix | string | 否 | '' | 后缀单位 | | layout | string | 否 | 'column' | 布局模式:'column'(一列)\| 'row'(两列) | | className | string | 否 | '' | 自定义类名 | ### TrendConfig 配置项 | 属性名 | 类型 | 必填 | 说明 | |--------|------|------|------| | value | number | 是 | 趋势值(百分比,自动取绝对值) | | direction | 'up' \| 'down' | 是 | 趋势方向 | ### 颜色预设 | 颜色名 | 色值 | 适用场景 | |--------|------|---------| | blue | #1677ff | 默认、总数、常规数据 | | green | #52c41a | 成功、在线、正常状态 | | orange | #faad14 | 警告、待处理 | | red | #ff4d4f | 错误、危险、异常 | | purple | #722ed1 | 特殊、高级功能 | | gray | #8c8c8c | 禁用、离线、未激活 | ## 使用示例 ### 基础用法 ```jsx import StatCard from '../components/StatCard/StatCard' import { DatabaseOutlined } from '@ant-design/icons' } /> ``` ### 带颜色主题 ```jsx } color="green" /> } color="red" /> ``` ### 带趋势指示 ```jsx } trend={{ value: 12.5, direction: 'up' }} /> ``` ### 自定义颜色 ```jsx ``` ### 布局模式 StatCard 支持两种布局模式,通过 `layout` 参数配置: #### 一列布局(默认) 标题和图标在上方,数值和趋势在下方。适合垂直排列的卡片网格。 ```jsx } color="blue" trend={{ value: 5, direction: 'up' }} /> ``` #### 两列布局 左侧显示标题和图标,右侧显示数值和趋势。适合在较宽的容器中横向展示数据。 ```jsx } color="orange" trend={{ value: 3, direction: 'down' }} /> ``` #### 布局模式选择建议 - **一列布局(column)**: - 适用于窄宽度容器(如侧边信息面板) - 适用于网格布局中垂直排列 - 数值作为视觉焦点,强调数据本身 - **两列布局(row)**: - 适用于较宽的容器(宽度 > 300px) - 适用于列表或卡片中横向展示 - 平衡展示标题和数值,节省垂直空间 ### 网格布局 ```jsx
} color="blue" /> } color="green" trend={{ value: 12, direction: 'up' }} /> } color="gray" />
``` ### 配合 SideInfoPanel 使用 ```jsx import SideInfoPanel from '../components/SideInfoPanel/SideInfoPanel' import StatCard from '../components/StatCard/StatCard' } trend={{ value: 5, direction: 'up' }} /> ), }, ]} /> ``` ## 样式定制 组件提供以下 CSS 类名供自定义样式: - `.stat-card` - 卡片容器 - `.stat-card-column` - 一列布局模式 - `.stat-card-row` - 两列布局模式 - `.stat-card-header` - 卡片头部 - `.stat-card-title` - 标题文本 - `.stat-card-icon` - 图标 - `.stat-card-body` - 卡片内容 - `.stat-card-value` - 统计值 - `.stat-card-suffix` - 后缀单位 - `.stat-card-trend` - 趋势指示器 - `.trend-up` - 上升趋势 - `.trend-down` - 下降趋势 ### 自定义样式示例 ```css /* 修改卡片圆角 */ .stat-card { border-radius: 12px; } /* 自定义标题样式 */ .stat-card-title { font-size: 14px; font-weight: 600; } /* 自定义数值大小 */ .stat-card-value { font-size: 28px; } ``` ## 使用场景 1. **仪表盘概览** - 展示关键业务指标 2. **系统监控** - 展示CPU、内存、磁盘使用率 3. **数据统计** - 展示用户数、订单数等统计数据 4. **性能指标** - 展示响应时间、吞吐量等性能数据 ## 注意事项 1. **数值格式化**: - 大数值建议使用千分位格式(如 1,250) - 小数建议保留 1-2 位 - 使用 suffix 添加单位,而不是直接拼接在 value 中 2. **颜色使用**: - 保持颜色语义一致(绿色=正常,红色=错误) - 避免过多颜色,建议同一页面不超过 4 种 - 优先使用预设颜色,保持风格统一 3. **趋势指示**: - 趋势值会自动取绝对值显示 - 上升趋势不一定是好事(如错误率上升) - 根据业务含义选择合适的颜色 4. **布局建议**: - 一列布局(column):适合侧边信息面板和网格垂直排列 - 两列布局(row):适合较宽容器和横向展示 - 网格布局推荐使用:`display: grid; gap: 12px;` - 避免卡片过宽,建议最大宽度 400px - 根据容器宽度选择合适的 layout 模式 5. **图标选择**: - 使用与数据相关的图标 - 保持图标风格统一 - 避免过于复杂的图标 ## 配合使用的组件 - **SideInfoPanel** - 侧边信息面板(推荐) - **SplitLayout** - 分栏布局 - **ChartPanel** - 图表面板(配合使用)