--- order: 2 title: 节点菜单配置 mobile: false group: title: 基础用法 order: 1 --- # 节点菜单配置 节点菜单由右下角工具栏点出,展示画布面板的所有节点,可直接点击节点菜单面板中的节点,将节点添加进画布中。节点菜单支持分组展示,可以为不同类型的节点创建不同的分组,使界面更加清晰。 ## 配置说明 ### 1. 分组配置 节点菜单支持分组展示,每个分组包含以下配置: ```typescript interface GroupConfig { title: string; // 分组名称 type: '_group'; // 分组类型,固定为 '_group' items: NodeConfig[]; // 分组下的节点配置列表 } ```
节点菜单分组展示
### 2. 节点配置 每个节点可以配置以下属性: ```typescript interface NodeConfig { title: string; // 节点名称 type: string; // 节点类型 description?: string; // 节点描述 icon?: { // 节点图标配置 type: string; // 图标类型 bgColor: string; // 图标背景色 }; hideDesc?: boolean; // 是否隐藏节点描述 nodePanel?: { // 自定义节点的面板配置 width?: number; // 面板宽度 }; settingSchema?: { // 节点的业务配置信息 type: string; className?: string; properties: Record; }; } ``` ### 3. 节点图标配置 节点的图标配置目前支持两种形式: 1. [iconfont](https://www.iconfont.cn/) 的图标 2. 自定义图标组件展示。通过这种方式可支持图标的 SVG 形式、图片形式、其他自定义样式。 #### 3.1 iconfont 图标的用法 1. 首先在 [iconfont](https://www.iconfont.cn/) 官网中选择图标后添加到项目中,在项目中找到图标,复制图标的代码,以及生成图标库的 Symbol 链接。
iconfont图标配置
2. 在 iconFontUrl 属性中引入图标库的 Symbol 链接: ```js ``` 3. 然后在节点配置中配置 icon 属性,type 为 复制的图标的代码,bgColor 为图标的背景色: ```js { title: '结束', type: 'End', description: '流程结束节点,用于标记流程的终点', icon: { type: 'icon-xiaoxi', // 图标类型 bgColor: '#F79009', // 图标背景色 }, settingSchema: { type: 'object', properties: { output: { title: '输出结果', type: 'string', widget: 'textarea', }, }, }, } ``` #### 3.2 自定义图标组件 比如实现图标的 SVG 形式。首先创建SVG组件如下: ```js const CustomSvg = ({ setting }) => { console.log('接收参数node setting', setting); return ( Panda icon )}; export default CustomSvg; ``` 然后在全局widgets中引入SVG组件 ```js ``` 最后在节点配置`settings`中配置`iconSvg`属性 ```js { title: '流程控制', type: '_group', items: [ { title: '开始', type: 'Start', description: '流程开始节点,用于标记流程的起点', icon: { bgColor: '#17B26A', // icon背景颜色 }, iconSvg: 'CustomSvg', // 设置SVG组件 }, ], }, ``` ## 完整示例 ## 注意事项 1. 节点类型(type)必须唯一,用于标识不同类型的节点 2. 图标配置支持自定义图标类型和背景色,或者使用图标的SVG格式 3. 节点配置面板(settingSchema)需要符合 FormRender 的协议规范 4. 可以通过 hideDesc 属性控制节点描述的显示/隐藏