# bpmn-panel-antdv
**Repository Path**: glf_gao/bpmn-panel-antdv
## Basic Information
- **Project Name**: bpmn-panel-antdv
- **Description**: bpmn-panel-antdv
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 4
- **Forks**: 0
- **Created**: 2023-06-28
- **Last Updated**: 2025-02-18
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
Bpmn Panel Antdv
## 项目简介
本项目基于 `bpmn-process-designer`项目 panel 组件,框架转换为`ant-design-vue`,扩展了 assignee、FormSupported 等属性,后续会继续扩展
基于 `bpmn.js`,`Vue 2.x` 和 `ant-design-vue` 开发的 BPMN 2.0 流程设计器(网页版),您可以使用它在浏览器上查看和编辑符合 `BPMN 2.0` 规范的流程文件。
项目目前内置 camunda 流程引擎支持文件,之后会拓展支持 activiti、flowable。
## 安装和使用
```bash
# 克隆仓库
git clone https://gitee.com/glf_gao/bpmn-panel-antdv.git
# 安装依赖
yarn
# 启动项目
yarn serve
```
## 开发指南
`bpmn.js` 的 **核心原理与常规改造** 可以参见我的文章:[Bpmn.js 进阶指南之原理分析与模块改造](https://juejin.cn/post/7117481147277246500)
**常用模块的开发及自定义**,参见 [Bpmn.js 全面进阶指南](https://juejin.cn/column/6964382482007490590)
## 功能说明
当前项目内主要包含五个组件:
- `Toolbar`:顶部工具栏,依赖 `Designer` 组件实现 `xml` 文件的导入导出和预览,支持对齐、缩放、撤销恢复及其他第三方扩展模块开关
- `Panel`:自定义属性面板,包括基础属性、扩展属性、监听器、注释文档等配置;支持使用原生属性面板
另外包含一些 `bpmn.js` 的扩展:
- `additional-modules`:基于 `bpmn.js` 的原生模块进行扩展/重写的功能模块,只有 `bpmn.js` 关联。目前包含 `palette`、`contextMenu`、`renderer` 等部分,也是扩展大家进行二次开发的核心参考代码
- `bo-utils`:与元素 `businessObject` 相关的公共方法,主要涉及属性读取和更新;与后端使用的流程引擎绑定
- `bpmn-utils`:`bpmn.js` 相关的一些公共方法
- `moddle-extensions`:`BPMN 2.0` 规范格式的 `JSON Schema` 文档,包含基础的 `bpmn.json`,三大流程引擎文档与自定义元素文档
整个项目包含了 `BpmnInstance` 和 `EventBus` 两种消息传递方式:
- `BpmnInstance` 中主要存放当前 `Modeler` 实例与节点实例,以及项目配置项,在二次开发过程中可以采用别的数据共享方式取代
- `EventBus` 事件总线是该项目的 **核心消息传递方式**:因为 **节点实例不能被 `Vue` 进行响应式处理,影响性能且容易产生属性读取更新错误**,并且 **表单需要实时监听节点变化**,所以通过消息总线共享事件和数据是比较好的处理方式。
## 可用功能
### 1. 工具栏
- [x] 导入文件
- [x] 导出文件(xml, bpmn, svg)
- [x] 预览文件字符串(xml, json)
- [x] 元素对其(垂直上中下、水平左中右)
- [x] 缩放
- [x] 撤销恢复与重做
### 3. 属性面板
- [x] 基础信息(id, name, version, executable ...)
- [x] 附件文档(documentation)
- [x] 执行作业
- [x] 用户分配
- [x] 异步配置
- [x] 流程启动项
- [x] 扩展属性
- [x] 执行监听器
- [x] 流转条件
- [x] 任务监听器
- [x] 任务多实例(会签、或签)
## 安装
> 安装表单设计器
```cmd
npm i bpmn-panel-antdv --save
# OR
yarn add bpmn-panel-antdv
```
###
## 使用组件
> 方式 1 (完整引入),详情参考示例文件
```javascript
// 在main.js引入
import BpmnPanelAntdvInit from "@packages/index";
Vue.use(BpmnPanelAntdvInit);
```
```html
```
> 方式 2 (使用 mini 包,请确保你已引入 BpmnPanelAntdv 组件所需 的 antv 组件)
```html
```
## 友情链接
1. MiyueFE:[Bpmn.js 全面进阶指南](https://juejin.cn/column/6964382482007490590)
2. 霖呆呆:[《全网最详 bpmn.js 教材目录》](https://juejin.cn/post/6844904017567416328),[关于 bpmn.js 交流群的说明](https://juejin.cn/post/6844904041026158599)
## 开源许可