# @cloudtower/eagle > CloudTower 产品的 React UI 组件库,基于 Ant Design 二次封装。 ## 安装与初始化 npm 包名:@cloudtower/eagle 样式引入:import "@cloudtower/eagle/dist/style.css" 使用 UIKitProvider 包裹应用根节点,内部管理 ConfigProvider、i18n、message 等上下文。 ## 反馈 - [SmallDialog](core/SmallDialog/guide.md): 小型对话框(492px),用于简单确认和提示 - [MediumDialog](core/MediumDialog/guide.md): 中型对话框(720px),用于表单和较多内容 - [ImmersiveDialog](core/ImmersiveDialog/guide.md): 沉浸式全屏对话框,支持左右面板布局 - [WizardDialog](core/WizardDialog/guide.md): 向导对话框,支持多步骤流程 - [DeleteDialog](coreX/DeleteDialog/guide.md): 删除确认对话框,基于 SmallDialog 封装,自带 danger 按钮,支持异步删除和错误信息展示 - [RejectDialog](coreX/RejectDialog/guide.md): 操作拒绝反馈对话框,支持 Single/All/Part/Custom 四种模式 - message: 全局提示,支持 success/error/warning/info/loading 类型 - message-group: 消息分组,将多条消息合并为一组展示 - [Alert](core/Alert/guide.md): 提示框,支持 info/error/warning/success/normal 类型,可关闭,支持展开/收起 - Banner: 全局横幅通知,支持 error/info/warning 类型,固定在页面顶部 - notification: 通知提醒(继承 antd notification) ## 数据录入 - Form: 表单容器,封装 antd Form,管理表单数据收集和校验 - FormItem: 表单项,封装 antd Form.Item,提供 label、校验规则等 - Input: 输入框,封装 antd Input - InputNumber: 数字输入框,封装 antd InputNumber - InputInteger: 整数输入框,只允许输入整数 - InputPassword: 密码输入框,支持显示/隐藏切换 - InputGroup: 输入框组合,将多个输入控件组合为一行 - InputTagItem: 标签样式的输入项,用于标签化显示 - TextArea: 多行文本输入框 - Select: 下拉选择器,封装 antd Select,支持搜索和多选 - Cascader: 级联选择器,封装 antd Cascader - AutoComplete: 自动补全输入框 - Checkbox: 复选框 - Radio: 单选框 - Switch: 开关切换 - DateRangePicker: 日期范围选择器,支持绝对日期和相对时间两种模式 - TimePicker: 时间选择器 - Calendar: 日历面板 - TimeZoneSelect: 时区选择器,内置全球时区数据 - [SearchInput](core/SearchInput/guide.md): 搜索输入框,支持防抖搜索、结果导航(上下翻页/计数器)和最近搜索历史 - [TableForm](core/TableForm/guide.md): 表格表单,行内编辑的表格,支持批量填充、多种列类型、增删行、拖拽排序和三种校验模式 - Fields: 表单字段集合,包含 Boolean/DateTime/Enum/Float/Int/String/TextArea 等预设字段 - CronPlan: 定时计划配置组件,支持按天/周/月设置 cron 表达式 - CronCalendar: 定时计划日历预览,可视化展示 cron 表达式的执行日期 - SortableList: 可拖拽排序列表,基于 react-beautiful-dnd - SwitchWithText: 带文字标签的开关组件 ## 数据展示 - [Table](core/Table/guide.md): 表格组件,基于 antd Table 二次封装,支持排序、行选择、展开行、加载/错误状态 - [LogView](core/LogView/guide.md): 日志查看器,基于 xterm 封装,支持静态日志、EventSource 流式日志、搜索导航和滚动缓冲控制 - Tab: 标签页,封装 antd Tabs - Collapse: 折叠面板(继承 antd Collapse) - Tag: 标签,支持多种预设颜色 - Token: 令牌标签,支持颜色、大小和可关闭 - Badge: 徽标数,封装 antd Badge - StatusCapsule: 状态胶囊,圆角标签用于显示状态,支持多种颜色和 loading - Legend: 图例标签,用于图表图例展示,支持多种形状和颜色 - Tooltip: 文字提示气泡 - Truncate: 文本截断,超长文本省略并 hover 显示完整内容 - Card: 卡片容器,封装 antd Card - AccordionCard: 手风琴卡片,支持展开/收起的卡片容器 - DetailCard: 详情卡片,带标题的详情展示卡片 - Avatar: 头像 - Skeleton: 骨架屏,封装 antd Skeleton - Empty: 空状态占位,封装 antd Empty - BlankState: 空白状态页,支持 large/medium/small/area 四种尺寸 - ExpandableList: 可展开列表,包含 ExpandableContainer/ExpandableItem/ExpandIcon/RoundOrder - Overflow: 溢出检测组件,内容溢出时显示替代内容 - OverflowTooltip: 溢出提示,文本溢出时自动显示 Tooltip - NamesTooltip: 名称列表提示,hover 显示完整名称列表 - UnderlineTooltip: 下划线提示,文本带下划线并 hover 显示 Tooltip - SummaryTable: 摘要表格,键值对形式的信息展示 - InfoRowList: 信息行列表,label-content 两列布局的详情信息展示 - CheckPointList: 检查点列表,展示多步骤检查结果和状态 - I18nNameTag: 国际化名称标签,在翻译文本中嵌入名称 Tag - DonutChart: 环形图,基于 recharts 的饼图组件 - LineChart: 折线图,支持指标数据时序展示 - BarChart: 条形图,堆叠式水平条形图 - Metric: 指标图表组件,集成折线图和图例 - ChartWithTooltip: 带 Tooltip 的图表,结合单位格式化展示指标数据 - UnitWithChart: 单位数值与图表组合展示 - Progress: 进度条,支持线形和区域两种模式 - StepProgress: 步骤进度,圆形进度指示器 - Counting: 计数器,按指定间隔自动刷新渲染 ## 通用 - Button: 按钮,封装 antd Button - ButtonGroup: 按钮组,将多个按钮组合为一组 - Icon: 图标容器,统一图标尺寸和样式 - BaseIcon: 基础图标,支持 SVG 图标渲染 - Link: 链接,封装 antd Typography.Link - Typo: 排版样式集合,提供 Display/Heading/Label/Paragraph 等预定义的 Linaria 类名;若需要根据 Figma Typography 名称查找对应样式,请使用公开导出的 `FIGMA_TO_TYPO` - Color: 颜色 token;若目标文件已依赖全局 Sass 变量或已有 `$...` 写法,优先使用 `dist/variables.scss` 中的 Sass 变量,否则优先使用公开导出的 `Color.*` - Loading: 加载中动画,三条竖线动画 - CircleLoading: 圆形加载动画,旋转渐变圆形图标 - Space: 间距组件,封装 antd Space - Antd5Flex: 弹性布局,直接导出 antd5 Flex - Show: 条件渲染组件,根据 condition 决定是否渲染 children - DropdownTransition: 下拉过渡动画,基于 CSSTransition 的显示/隐藏过渡 ## 布局 - Nav: 顶部导航栏,支持左/中/右三区域布局 - Sider: 侧边栏布局,基于 antd Layout.Sider,含菜单和底部操作区 - SidebarMenu: 侧边菜单,多级导航菜单 - SidebarSubtitle: 侧边栏小标题 - Divider: 分隔线(继承 antd Divider) - GoBackButton: 返回按钮,带箭头图标的导航返回按钮 - TabMenu: 标签菜单,顶部标签切换 + 内容区,支持下拉溢出菜单 ## 导航 - Breadcrumb: 面包屑导航 - Pagination: 分页器,封装 antd Pagination - SimplePagination: 简易分页,仅显示页码输入和前后翻页 - Steps: 步骤条,封装 antd Steps - SegmentControl: 分段控制器,封装 antd5 Segmented - DropdownMenu: 下拉菜单,封装 antd Dropdown + Menu - Antd5Dropdown: 下拉菜单,封装 antd5 Dropdown - Antd5Anchor: 锚点导航,封装 antd5 Anchor - Antd5Tree: 树形控件,封装 antd5 Tree - Timeline: 时间线,封装 antd Timeline - BatchOperation: 批量操作工具栏,表格多选后显示的操作栏 ## 数据格式化 - Byte: 字节格式化显示(自动转换 KB/MB/GB 等) - BytePerSecond: 字节每秒速率格式化 - Bit: 比特格式化显示 - BitPerSecond: 比特每秒速率格式化 - Bps: 每秒传输速率格式化 - Frequency: 频率格式化显示(Hz/GHz 等) - Percent: 百分比格式化显示 - Second: 秒数格式化显示 - Speed: 速度格式化显示 - Time: 时间日期格式化显示 - Arch: CPU 架构文本显示(x86_64/aarch64 等国际化文本) ## 错误处理 - Error: 简单错误文本显示 - ErrorBoundary: 错误边界,捕获子组件渲染错误并显示回退 UI - BasicCTError: CloudTower 错误信息展示,解析并展示 CT 业务错误 - FailedLoad: 加载失败组件,展示错误信息和重试按钮 ## 基础设施 - ConfigProvider: 全局配置,管理 antd4/antd5 双版本 locale 和主题 - KitStoreProvider: 组件库 Redux Store Provider,管理弹窗栈等全局状态 - ModalStack: 弹窗栈渲染器,渲染通过 usePushModal 打开的弹窗 - ParrotTrans: 国际化文本组件,封装 react-i18next Trans 并注入 parrot i18n 实例 ## 废弃组件 - [~~LegacyModal~~](core/LegacyModal/migrate-guide.md): 已废弃,请迁移至 SmallDialog / MediumDialog / ImmersiveDialog / WizardDialog - ~~LegacySelect~~: 已废弃,请迁移至 Select - ~~DeprecatedProgress~~: 已废弃,请迁移至 Progress - ~~DeprecatedDonutChart~~: 已废弃,请迁移至 DonutChart - ~~KubeConfigModal~~: 业务专用弹窗,基于 LegacyModal,不建议新代码使用 - ~~Styled~~: 已废弃的通用样式组件集合(CommonContent, ModalBody, WizardBody 等) 各废弃组件的迁移指南见对应目录下的 migrate-guide.md。