# solon-flow-bpmn-designer **Repository Path**: opensolon/solon-flow-bpmn-designer ## Basic Information - **Project Name**: solon-flow-bpmn-designer - **Description**: 一个基于 bpmn 适配于solon-flow的流程设计器组件,让你以更简单更丝滑的方式使用solon-flow! - **Primary Language**: JavaScript - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: https://iajie.github.io/solon-flow-bpmn-designer - **GVP Project**: No ## Statistics - **Stars**: 13 - **Forks**: 0 - **Created**: 2025-02-12 - **Last Updated**: 2025-09-08 ## Categories & Tags **Categories**: workflow **Tags**: bpmnjs, bpmn-panelproperties, bpmn-panel, bpmn-toolbar ## README

Solon-Flow-Bpmn-Designer

star

简易 开源Solon Flow设计器

开箱即用、支持所有前端框架

![](./docs/index-banner-light.png) ![](./docs/index.banner-dark.png) ## 开始关注并使用 Solon-Flow-Bpmn-Designer 给我们 star,这样,在我们发布新的版本时,您可以及时获得通知。 ## 什么是 Solon-Flow-Bpmn-Designer Solon-Flow-Bpmn-Designer 是一个基于bpmn重新加工的流程设计器,主要适配于Solon-Flow使用,它基于 Web Component,因此支持 Layui、Vue、React、Angular 等几乎任何前端框架。它适配了 PC Web 端~~和手机端~~,并提供了 亮色 和 暗色 两个主题。除此之外,它还提供了灵活的配置,开发者可以方便的使用其开发流程设计的应用。 ## Solon-Flow-Bpmn-Designer 的与众不同之处 ### 简单、友好、易用 Solon-Flow-Bpmn-Designer 基于 Web Component 开发,支持与任意主流的前端框架集成。Solon-Flow-Bpmn-Designer 使用更加友好的 LGPL 开源协议,通过 `npm i solon-flow-bpmn-designer` 使用, 不用担心 GPL 协议可能带来的 GPL 传染问题。 ## 已完善 - [x] **基础**:网格、颜色设置、小地图导航、导入文件(JSON/YAML)、下载文件、预览YAML、预览JSON、撤销、重做、放大缩小、重置、自定义元素颜色 - [x] **属性面板**:基础属性、条件属性、SolonFlow链、元数据、脚本 - [x] **更多**:国际化、亮色主题、暗色主题... ## [Solon-Flow-Bpmn-Designer设计器完整开发文档](https://iajie.github.io/solon-flow-bpmn-designer) ## 快速开始 ### [React集成](https://gitee.com/iajie/solon-flow-bpmn-designer/tree/master/demo/react) ```jsx import React from "react"; import { SolonFlowBpmnDesigner } from "solon-flow-bpmn-designer"; import "solon-flow-bpmn-designer/style.css"; interface SolonFlowDesignerProps { value: string; theme?: "light" | "dark"; lang?: "en" | "zh"; type?: "yaml" | "json"; height?: number; onChange?: (value: string) => void; } export interface SolonFlowDesignerRef { /** * 属性面板显隐控制 */ panelShow: () => boolean; /** * 清除设计器 */ clear: () => void; /** * 获取值 */ getValue: () => string | undefined; } const SolonFlowDesigner = React.forwardRef((props, ref) => { const designerRef = React.useRef(null); const [designer, setDesigner] = React.useState(); React.useImperativeHandle(ref, () => ({ panelShow: () => designer?.showPanel() || false, clear: () => designer?.clear(), getValue: () => designer?.getValue(), })); React.useEffect(() => { if (!!designerRef.current) { if (designer) return; const solonFlowBpmnDesigner = new SolonFlowBpmnDesigner({ container: designerRef.current, height: props.height || 60, lang: props.lang || 'zh', theme: props.theme || 'light', value: props.value, onChange: (callback) => { props.onChange?.(callback(props.type || 'yaml')); }, }); setDesigner(solonFlowBpmnDesigner); return () => solonFlowBpmnDesigner.destroy(); } }, []); React.useEffect(() => { if (designer) { designer.changeLocal(props.lang || 'cn'); } }, [props.lang]); React.useEffect(() => { if (designer) { designer.changeTheme(); } }, [props.theme]); return
}); export default SolonFlowDesigner; ``` ### [Vue3集成](https://gitee.com/iajie/solon-flow-bpmn-designer/tree/master/demo/vue3) ```vue ``` ### [Vue2集成](https://gitee.com/iajie/solon-flow-bpmn-designer/tree/master/demo/vue) ```vue ```