# 通用组件使用指南
本文档介绍5个新创建的通用组件的使用方法和API。
## 🔧 A) XtStickyActionBar - 底部粘性操作栏
### 功能描述
底部固定的操作栏,显示状态信息和操作按钮,支持响应式设计和明暗主题。
### Props
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| dirtyCount | Number | 0 | 变更项数量 |
| errorCount | Number | 0 | 错误项数量 |
| loading | Object | `{}` | 加载状态对象 |
| showProgress | Boolean | false | 是否显示进度条 |
| progressPercent | Number | 0 | 进度百分比(0-100) |
### Events
| 事件名 | 参数 | 说明 |
|--------|------|------|
| save | - | 保存草稿 |
| test | - | 测试全部 |
| publish | - | 发布 |
| rollback | - | 回滚 |
| reset | - | 重置变更 |
| export | - | 导出配置 |
### 使用示例
```vue
```
---
## 📋 B) XtGroupedFormCard - 分组表单卡片
### 功能描述
可折叠的分组表单卡片,支持自定义操作按钮和过渡动画。
### Props
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| title | String | - | 卡片标题(必填) |
| desc | String | '' | 卡片描述 |
| collapsible | Boolean | true | 是否可折叠 |
| defaultCollapsed | Boolean | false | 默认是否折叠 |
### Events
| 事件名 | 参数 | 说明 |
|--------|------|------|
| test | - | 测试按钮点击 |
| reset | - | 重置按钮点击 |
| toggle | collapsed | 折叠状态变化 |
### Slots
| 插槽名 | 说明 |
|--------|------|
| default | 表单内容区域 |
| actions | 自定义右上角操作按钮 |
### 使用示例
```vue
```
---
## 🔗 C) XtTestConnectionDrawer - 测试连接抽屉
### 功能描述
右侧抽屉展示测试连接的时间轴日志,支持重新测试和日志管理。
### Props
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| visible | Boolean | false | 是否显示抽屉 |
| title | String | '连接测试' | 抽屉标题 |
| logs | Array | [] | 测试日志数组 |
| loading | Boolean | false | 加载状态 |
### Events
| 事件名 | 参数 | 说明 |
|--------|------|------|
| close | - | 关闭抽屉 |
| retest | - | 重新测试 |
| clear-logs | - | 清空日志 |
### 日志数据格式
```javascript
{
ts: 1640995200000, // 时间戳
step: '连接数据库', // 步骤名称
status: 'ok', // 状态: 'ok'|'warn'|'fail'
cost: 120, // 耗时(ms)
tip: '连接成功', // 提示信息
details: '详细日志信息...' // 详细信息(可选)
}
```
### 使用示例
```vue
测试连接
```
---
## 📊 D) XtDiffPublishDialog - 差异发布对话框
### 功能描述
展示配置变更的对比对话框,支持选择性发布和搜索过滤。
### Props
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| visible | Boolean | false | 是否显示对话框 |
| diffs | Array | [] | 差异数据数组 |
| loading | Boolean | false | 加载状态 |
| publishing | Boolean | false | 发布状态 |
### Events
| 事件名 | 参数 | 说明 |
|--------|------|------|
| confirm | selectedKeys | 确认发布,返回选中的key数组 |
| cancel | - | 取消发布 |
### 差异数据格式
```javascript
{
key: 'database.host', // 配置键
name: '数据库主机', // 显示名称
path: 'config.database', // 配置路径
oldValue: 'localhost', // 原值
newValue: '192.168.1.100', // 新值
isChanged: true, // 是否变更
isNew: false, // 是否新增
isDeleted: false, // 是否删除
description: '主机地址变更' // 变更说明
}
```
### 使用示例
```vue
发布配置
```
---
## 📈 E) XtRightSummaryPanel - 右侧摘要面板
### 功能描述
右侧固定的摘要面板,显示统计信息、配置项状态和快速操作。
### Props
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| stats | Object | `{}` | 统计数据对象 |
| items | Array | [] | 配置项数组 |
| loading | Boolean | false | 加载状态 |
| activeItemKey | String | '' | 当前激活的配置项key |
### Events
| 事件名 | 参数 | 说明 |
|--------|------|------|
| item-click | item | 配置项点击 |
| publish-changes | - | 发布变更 |
| fix-risks | - | 修复风险 |
| test-all | - | 重新测试 |
### 统计数据格式
```javascript
{
changed: 5, // 变更数量
passed: 12, // 通过数量
risk: 2, // 风险数量
lastTestAt: 1640995200000 // 最后测试时间
}
```
### 配置项数据格式
```javascript
{
key: 'database.host', // 配置键
name: '数据库主机', // 显示名称
path: 'config.database', // 配置路径
group: 'Database', // 分组
status: 'passed', // 状态: 'passed'|'risk'|'pending'|'changed'
isChanged: false // 是否变更
}
```
### 使用示例
```vue
```
---
## 🎨 主题适配
所有组件都完全支持明暗主题切换,使用了设计令牌系统中的颜色变量。组件会自动响应主题变化,无需额外配置。
## 📱 响应式设计
所有组件都内置了响应式设计支持:
- **移动端优化**:在小屏幕设备上自动调整布局
- **触摸友好**:按钮和交互元素针对触摸操作优化
- **自适应尺寸**:根据容器大小自动调整组件尺寸
## 🔧 自定义样式
如需自定义组件样式,可以通过以下方式:
1. **使用设计令牌**:修改CSS变量来调整主题色彩
2. **CSS类覆盖**:使用更高优先级的CSS类覆盖默认样式
3. **插槽定制**:利用组件提供的插槽来自定义内容
## 🚀 性能优化
- **虚拟滚动**:大列表组件支持虚拟滚动
- **懒加载**:按需加载数据和组件
- **防抖节流**:搜索和频繁操作使用防抖节流
- **内存管理**:组件销毁时正确清理事件监听器
## 📞 技术支持
如有任何问题或建议,请联系前端开发团队。
**Happy Coding! 🎉**