# 组件文档目录
## 概述
本目录包含 Nex Design 系统所有主要组件的详细文档,包括组件说明、参数配置、使用示例等。
## 组件列表
### 页面布局组件
1. **PageTitleBar** - 页面标题栏组件
- 显示页面标题、描述和操作按钮
- 支持展开/收起功能
- 适用于所有页面的顶部区域
### 布局容器组件
2. **SplitLayout** - 主内容区布局容器
- 支持横向(左右)和纵向(上下)分栏
- 主内容区 + 扩展信息区
- 响应式设计
3. **ExtendInfoPanel** - 扩展信息面板
- 多个可折叠的信息区块
- 支持垂直堆叠和水平排列
- 配合 SplitLayout 使用
### 列表相关组件
4. **ListActionBar** - 列表操作栏组件
- 提供操作按钮、搜索、筛选功能
- 适用于列表页面的顶部操作区
5. **TreeFilterPanel** - 树形筛选面板组件
- 树形结构的数据筛选
- 支持搜索和多级展开
- 配合 ListActionBar 使用
6. **ListTable** - 列表表格组件
- 统一的表格样式和交互
- 支持行选择、分页、排序
- 适用于所有列表页面
### 详情展示组件
7. **DetailDrawer** - 详情抽屉组件
- 从右侧滑出的详情面板
- 支持标签页和操作按钮
- 固定头部,内容可滚动
8. **InfoPanel** - 信息展示面板组件
- 网格布局展示结构化数据
- 支持自定义字段渲染
- 配合 DetailDrawer 使用
### 数据展示组件
9. **StatCard** - 统计卡片组件
- 展示数值型统计数据
- 支持图标、颜色主题、趋势指示器
- 支持网格布局(单列/双列)
- 配合 ExtendInfoPanel 使用
10. **ChartPanel** - 图表面板组件
- 基于 ECharts 的图表展示
- 支持折线图、柱状图、饼图、环形图
- 自适应容器尺寸
- 配合 ExtendInfoPanel 使用
### 交互反馈组件
11. **ConfirmDialog** - 确认对话框组件
- 提供统一的确认对话框样式
- 支持删除、警告、通用确认等场景
- 支持异步操作
12. **Toast** - 通知反馈组件
- 操作完成后的提示信息
- 支持成功、错误、警告、信息四种类型
- 从右上角滑出,自动消失
## 组件关系图
### 页面布局结构
#### 横向布局(左右分栏)
适用场景:需要持续展示扩展信息的页面(如监控页面、数据分析页面)
```
┌─────────────────────────────────────────────────────────┐
│ PageTitleBar (页面标题栏) │
├─────────────────────────────────┬───────────────────────┤
│ │ │
│ 主内容区 (Main Content) │ 扩展信息区 │
│ │ (Extend Info) │
│ ┌───────────────────────────┐ │ ┌─────────────────┐ │
│ │ ListActionBar (操作栏) │ │ │ ExtendInfoPanel │ │
│ │ ├─ 操作按钮 │ │ │ │ │
│ │ ├─ 搜索框 │ │ │ - 概览区块 │ │
│ │ └─ TreeFilterPanel │ │ │ - 图表区块 │ │
│ ├───────────────────────────┤ │ │ - 监控区块 │ │
│ │ ListTable (数据表格) │ │ │ │ │
│ │ └─ 点击行 → DetailDrawer │ │ │ (StatCard + │ │
│ └───────────────────────────┘ │ │ ChartPanel) │ │
│ │ └─────────────────┘ │
│ SplitLayout (direction="horizontal") │
└─────────────────────────────────┴───────────────────────┘
```
#### 纵向布局(上下分栏)
适用场景:需要可展开/收起的统计面板(如用户列表、主机列表)
```
┌─────────────────────────────────────────────────────────┐
│ PageTitleBar (页面标题栏 + Toggle 控制) │
├─────────────────────────────────────────────────────────┤
│ │
│ 扩展信息区 (Extend Info - 可展开/收起) │
│ ┌─────────────────────────────────────────────────┐ │
│ │ ExtendInfoPanel (layout="horizontal") │ │
│ │ │ │
│ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │ │
│ │ │ 总数 │ │ 在线 │ │ 离线 │ │ 筛选 │ │ │
│ │ │ Card │ │ Card │ │ Card │ │ Card │ │ │
│ │ └──────┘ └──────┘ └──────┘ └──────┘ │ │
│ │ (StatCard 组件,水平排列) │ │
│ └─────────────────────────────────────────────────┘ │
│ │
├─────────────────────────────────────────────────────────┤
│ │
│ 主内容区 (Main Content) │
│ ┌─────────────────────────────────────────────────┐ │
│ │ ListActionBar (操作栏) │ │
│ │ ├─ 操作按钮 │ │
│ │ ├─ 搜索框 │ │
│ │ └─ TreeFilterPanel (高级筛选) │ │
│ ├─────────────────────────────────────────────────┤ │
│ │ ListTable (数据表格) │ │
│ │ └─ 点击行 → DetailDrawer │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ SplitLayout (direction="vertical", extendPosition="top") │
└─────────────────────────────────────────────────────────┘
```
详情抽屉 (从右侧滑出):
```
┌─────────────────────────────────┐
│ DetailDrawer │
│ ├─ InfoPanel (基本信息) │
│ └─ Tabs (关联数据标签页) │
└─────────────────────────────────┘
交互反馈流程:
操作 → ConfirmDialog (确认) → Toast (结果反馈)
```
### 组件依赖关系
```
PageTitleBar (独立使用)
SplitLayout (布局容器)
├─ mainContent
│ ├─ ListActionBar
│ │ └─ TreeFilterPanel
│ └─ ListTable
│ └─ DetailDrawer
│ └─ InfoPanel
└─ extendContent
└─ ExtendInfoPanel
├─ StatCard
└─ ChartPanel
ConfirmDialog (全局调用)
Toast (全局调用)
```
## 典型页面组合
### 1. 标准列表页面(横向布局)
```jsx
>
}
extendContent={
},
{
key: 'monitor',
title: '性能监控',
content:
}
]}
/>
}
/>
```
### 2. 带统计面板的列表页面(纵向布局)
```jsx
}}
/>
>
}
extendContent={
}
]}
/>
}
showExtend={showStats}
/>
```
### 3. 删除操作流程
```jsx
// 1. 点击删除按钮
// 2. 显示确认对话框
ConfirmDialog.delete({
itemName: record.name,
onOk: async () => {
// 3. 执行删除
await api.delete(record.id)
// 4. 显示结果反馈
Toast.success('删除成功')
}
})
```
## 组件选择指南
### 布局组件
| 场景 | 推荐组件 | 说明 |
|------|---------|------|
| 需要右侧信息面板 | SplitLayout (horizontal) + ExtendInfoPanel | 监控页面、数据分析页面 |
| 需要顶部统计面板 | SplitLayout (vertical) + ExtendInfoPanel | 可展开的统计信息 |
| 简单列表页 | ListActionBar + ListTable | 无扩展信息需求 |
### 数据展示组件
| 数据类型 | 推荐组件 | 说明 |
|---------|---------|------|
| 统计数值 | StatCard | 简洁的数值展示 |
| 趋势图表 | ChartPanel (line) | 时间序列数据 |
| 分布数据 | ChartPanel (pie/ring) | 占比分析 |
| 对比数据 | ChartPanel (bar) | 类别对比 |
| 结构化信息 | InfoPanel | 对象详细属性 |
### 交互组件
| 场景 | 推荐组件 | 说明 |
|------|---------|------|
| 危险操作确认 | ConfirmDialog.delete | 删除确认 |
| 一般操作确认 | ConfirmDialog.confirm | 普通确认 |
| 操作结果反馈 | Toast | 成功/失败提示 |
| 筛选数据 | TreeFilterPanel | 树形结构筛选 |
## 使用指南
### 开始使用
1. 从左侧菜单选择组件查看详细文档
2. 了解组件的参数配置和使用场景
3. 参考示例代码进行开发
4. 根据实际需求调整参数
### 设计原则
- **一致性** - 所有组件使用统一的设计语言
- **可复用** - 组件高度封装,易于复用
- **可配置** - 提供丰富的配置选项
- **易用性** - API 设计简洁直观
- **响应式** - 自适应不同屏幕尺寸
### 技术栈
- React 18
- Ant Design 5.x
- ECharts 5.x
- CSS Modules
### 命名规范
- **组件名**:PascalCase(如 PageTitleBar)
- **参数名**:camelCase(如 showToggle)
- **CSS 类名**:kebab-case(如 page-title-bar)
- **文件名**:与组件名一致(如 PageTitleBar.jsx)
## 更新记录
- 2025-11-13: 新增布局系统(SplitLayout + ExtendInfoPanel)
- 2025-11-13: 新增数据展示组件(StatCard + ChartPanel)
- 2025-11-04: 初始版本,包含 8 个核心组件文档
## 相关文档
- **主内容区布局** - 详细的布局使用指南
- **设计手册** - 设计规范和最佳实践