# 组件使用文档 ## 概述 本文档说明项目中全局组件的使用方法和API。 ## 组件注册 所有全局组件在 `src/components/index.ts` 中注册,在 `src/main.ts` 中通过 `app.use(Components)` 全局注册。 ## 布局组件 ### LayoutContainer 布局容器组件,用于包裹页面内容。 ```vue ``` ### LoginContainer 登录容器组件,用于登录页面布局。 ```vue ``` ## 业务组件 ### CardBox 通用卡片组件,用于展示卡片式内容。 ```vue ``` **Props:** - `title`: 卡片标题 - `description`: 卡片描述 - `image`: 卡片图片URL - 其他自定义props **Events:** - `click`: 点击事件 ### CardBoxAgent 智能体卡片组件,用于展示智能体信息。 ```vue ``` **Props:** - `agent`: 智能体数据对象 **Events:** - `click`: 点击事件 - `edit`: 编辑事件 - `delete`: 删除事件 ### CardBoxDataset 数据集卡片组件,用于展示知识库信息。 ```vue ``` **Props:** - `dataset`: 数据集数据对象 **Events:** - `click`: 点击事件 ### CardAdd 添加卡片组件,用于添加新项。 ```vue ``` **Events:** - `click`: 点击添加事件 ### CardCheckbox 带复选框的卡片组件。 ```vue ``` **Props:** - `modelValue`: 是否选中 - `data`: 卡片数据 **Events:** - `update:modelValue`: 选中状态更新 ## 表格组件 ### AppTable 增强的表格组件,基于Element Plus Table封装。 ```vue ``` **Props:** - `data`: 表格数据 - `columns`: 列配置 - `loading`: 加载状态 - 其他Element Plus Table的props **Events:** - `selection-change`: 选择变化事件 - 其他Element Plus Table的事件 ## 编辑器组件 ### MdEditor Markdown编辑器组件,基于md-editor-v3。 ```vue ``` **Props:** - `modelValue`: 编辑器内容 - `height`: 编辑器高度 - `toolbars`: 工具栏配置 - 其他md-editor-v3的props **Events:** - `update:modelValue`: 内容更新事件 - 其他md-editor-v3的事件 ### MdPreview Markdown预览组件。 ```vue ``` **Props:** - `modelValue`: Markdown内容 - `editorId`: 编辑器唯一ID - 其他md-editor-v3的props ### MdEditorMagnify Markdown编辑器放大模式。 ```vue ``` ### NewMdPreview 新版Markdown预览组件。 ```vue ``` ## 其他组件 ### AppAvatar 头像组件。 ```vue ``` **Props:** - `src`: 头像图片URL - `size`: 头像大小 - `name`: 用户名(用于生成默认头像) ### AppIcon 应用图标组件。 ```vue ``` **Props:** - `name`: 图标名称 ### BackButton 返回按钮组件。 ```vue ``` **Events:** - `click`: 点击事件 ### InfiniteScroll 无限滚动组件。 ```vue ``` **Props:** - `loading`: 加载中状态 - `finished`: 是否加载完成 **Events:** - `load`: 加载更多事件 ### AutoTooltip 自动提示组件,文本溢出时显示tooltip。 ```vue ``` **Props:** - `content`: 文本内容 - `maxWidth`: 最大宽度 ### TagEllipsis 标签省略组件,多个标签时自动省略。 ```vue ``` **Props:** - `tags`: 标签数组 - `max`: 最大显示数量 ### TagInputWrapper 标签输入包装组件。 ```vue ``` **Props:** - `modelValue`: 标签数组 - `placeholder`: 占位符 **Events:** - `update:modelValue`: 标签更新事件 ### TopTabs 顶部标签页组件。 ```vue ``` **Props:** - `modelValue`: 当前激活的标签 - `tabs`: 标签列表 **Events:** - `update:modelValue`: 标签切换事件 ### DialogBox 对话框组件。 ```vue ``` **Props:** - `modelValue`: 是否显示 - `title`: 标题 - `width`: 宽度 - 其他Element Plus Dialog的props **Events:** - `update:modelValue`: 显示状态更新 - 其他Element Plus Dialog的事件 ### JustMine "仅我的"筛选组件。 ```vue ``` **Props:** - `modelValue`: 是否仅显示我的 **Events:** - `update:modelValue`: 状态更新 - `change`: 变化事件 ### AppLink 应用链接组件。 ```vue ``` **Props:** - `to`: 路由目标 - `target`: 打开方式 ### CommonList 通用列表组件。 ```vue ``` **Props:** - `data`: 列表数据 - `loading`: 加载状态 **Events:** - `item-click`: 列表项点击事件 ### ReadWrite 读写组件,用于展示可编辑内容。 ```vue ``` **Props:** - `modelValue`: 内容 - `readonly`: 是否只读 **Events:** - `update:modelValue`: 内容更新 ### Logo组件 #### LogoFull 完整Logo组件。 ```vue ``` #### LogoIcon Logo图标组件。 ```vue ``` #### SendIcon 发送图标组件。 ```vue ``` ## 动态表单组件 ### DynamicsForm 动态表单组件,支持根据配置动态生成表单。 ```vue ``` **Props:** - `config`: 表单配置 - `modelValue`: 表单数据 **Events:** - `update:modelValue`: 表单数据更新 - `submit`: 提交事件 ## 图表组件 ### AppCharts 图表组件,基于ECharts封装。 ```vue ``` **Props:** - `option`: ECharts配置项 - `height`: 图表高度 ## 使用注意事项 1. **组件导入**: 全局组件无需导入,直接使用组件名即可 2. **Props验证**: 所有组件都使用TypeScript类型定义,IDE会有类型提示 3. **事件命名**: 事件使用kebab-case命名(如 `@update-value`) 4. **样式作用域**: 组件样式使用scoped,不会影响外部样式 5. **响应式**: 所有组件都支持Vue 3的响应式系统 ## 自定义组件开发 如果需要开发新的全局组件: 1. 在 `src/components/` 下创建组件目录 2. 创建 `index.vue` 文件 3. 在 `src/components/index.ts` 中注册组件 4. 组件会自动全局注册 示例: ```typescript // src/components/my-component/index.vue // src/components/index.ts import MyComponent from './my-component/index.vue' export default { install(app: App) { app.component('MyComponent', MyComponent) } } ```