# YysEditorEmbed 使用文档 ## 简介 YysEditorEmbed 是 yys-editor 的可嵌入式组件版本,可以作为 Vue 组件集成到其他项目中。 ## 安装 ### 方式 1:本地引用(开发阶段) 在 `package.json` 中添加: ```json { "dependencies": { "yys-editor": "file:../yys-editor" } } ``` 然后运行: ```bash npm install ``` ### 方式 2:npm 包(发布后) ```bash npm install yys-editor ``` ## 基础使用 ### 1. 引入组件 ```vue ``` ### 2. 预览模式 ```vue ``` ### 3. 编辑模式 ```vue ``` ## API 文档 ### Props | 属性 | 类型 | 默认值 | 说明 | |------|------|--------|------| | `data` | `GraphData` | `undefined` | 初始数据(LogicFlow GraphData 格式) | | `mode` | `'preview' \| 'edit'` | `'edit'` | 模式:预览或编辑 | | `width` | `string \| number` | `'100%'` | 宽度 | | `height` | `string \| number` | `'600px'` | 高度 | | `showToolbar` | `boolean` | `true` | 是否显示工具栏(仅编辑模式) | | `showPropertyPanel` | `boolean` | `true` | 是否显示属性面板(仅编辑模式) | | `showComponentPanel` | `boolean` | `true` | 是否显示组件库(仅编辑模式) | | `config` | `EditorConfig` | `{}` | 编辑器配置 | ### Events | 事件 | 参数 | 说明 | |------|------|------| | `update:data` | `(data: GraphData)` | 数据变更(实时) | | `save` | `(data: GraphData)` | 保存(用户点击保存按钮) | | `cancel` | `()` | 取消(用户点击取消按钮) | | `error` | `(error: Error)` | 错误 | ### 方法(通过 ref 调用) | 方法 | 参数 | 返回值 | 说明 | |------|------|--------|------| | `getGraphData()` | - | `GraphData \| null` | 获取当前画布数据 | | `setGraphData(data)` | `GraphData` | `void` | 设置画布数据 | ### 类型定义 ```typescript interface GraphData { nodes: NodeData[] edges: EdgeData[] } interface NodeData { id: string type: string x: number y: number properties?: Record text?: { value: string } } interface EdgeData { id: string type: string sourceNodeId: string targetNodeId: string properties?: Record } interface EditorConfig { grid?: boolean snapline?: boolean keyboard?: boolean theme?: 'light' | 'dark' locale?: 'zh' | 'ja' | 'en' } ``` ## 使用场景 ### 场景 1:在 Wiki 中作为块插件 ```vue ``` ### 场景 2:在管理后台中使用 ```vue ``` ### 场景 3:只读展示 ```vue ``` ## 高级用法 ### 自定义配置 ```vue ``` ### 监听数据变化 ```vue ``` ### 错误处理 ```vue ``` ## 样式定制 ### 覆盖默认样式 ```vue ``` ### 响应式布局 ```vue ``` ## 常见问题 ### Q: 如何在 Nuxt 3 中使用? A: 在 Nuxt 3 中,需要将组件设置为客户端渲染: ```vue ``` ### Q: 如何保存和加载数据? A: 使用 `getGraphData()` 和 `setGraphData()` 方法: ```vue ``` ### Q: 如何禁用某些 UI 元素? A: 使用 Props 控制: ```vue ``` ### Q: 如何集成到现有项目? A: 参考上面的"场景 1:在 Wiki 中作为块插件"示例。 ## 浏览器兼容性 - Chrome >= 90 - Firefox >= 88 - Safari >= 14 - Edge >= 90 ## 许可证 MIT ## 支持 如有问题,请提交 Issue 或联系开发团队。