1.0.28 • Published 5 months ago

bpmn-jseditor v1.0.28

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

bpmn-editor

License npm

A javascript module that edits the BPMN on the browser. Bpmn Editor是一个可以在线查看和编辑BPMN 2.0流程图的Javascript库。它可以很方便的嵌入到流程相关的应用中 使得您的客户可以根据自己的需要设计工作流程。

流程图

安装

npm install bpmn-jseditor

或者

<script src="dist/bpmn-jseditor.min.js"></script>

开始使用

容器

首先需要一个容器来装载Editor

<div id="container">

</div>

初始化

然后就可以初始化BpmnEditor了

import BpmnEditor from "bpmn-jseditor";
let editor = new BpmnEditor('#container', {
    name: 'My Process', //流程名称
    key: 'Process-1' //流程Key/ID
})

加载BPMN XML

加载一个符合 BPMN 2.0 规范的XML文件。

editor.xml('Your XML content')
.then(resp => {
   //加载成功
}).catch(resp => {
    //加载失败
})

获取XML

将编辑的流程转换为 BPMN 2.0 XML

editor.xml()
.then(resp => {
   console.log(resp.xml)
})
.catch(resp => {
})

编辑流程图

设置编辑器的Operation即可进入相应的编辑状态。

新增节点

调用serOpertion方法之后,点击编辑器即可添加相应的的节点

editor.setOperation(BpmnEditor.operations.ADD_USERTASK) //进入新增UserTask状态

目前支持的Operation包括:

- NONE: 无操作
- ADD_USERTASK: 添加用户任务 
- ADD_EXCLUSIVE_GATEWAY: 添加互斥网关
- ADD_STARTEVENT: 添加开始事件
- ADD_ENDEVENT: 添加结束事件
- ADD_TIMEREVENT: 添加边界计时事件
- ADD_SUBPROCESS: 添加子流程
- PREPARE_DRAW_CONNECTION: 准备绘制连接线
- REMOVE: 删除选择的节点

绘制连接线

设置操作状态为PREPARE_DRAW_CONNECTION之后,依次点击起点节点、终点节点即可绘制连接线

editor.setOperation(BpmnEditor.operations.PREPARE_DRAW_CONNECTION) //进入绘制连接线状态

删除节点

鼠标点击节点或者框选多个节点,按下Delete按键即可。也可以调用Api:

let selections = editor._getSelections()
for (let i = 0; i < selections.length; i++) {
    editor.remove(selections[i])
}

事件

可以在初始化的时候声明一个回调函数,以处理节点点击事件:

let editor = new BpmnEditor('#container', {
    name: 'My Process', //流程名称
    key: 'Process-1', //流程Key/ID
    elementClick: function(element) {
       let nodeData = element.json()
       //do something, eg. show data in a form
       element.update(nodeData)
    }
})

elementClick方法的参数是点击的节点,如果没有点击任何节点则为流程图本身。调用element.json()方法 可以获取此节点符合activiti 7.0格式的JSON对象。 可以修改此JSON对象,并调用update方法更新节点属性。

TODO List

  • 支持流程嵌套
  • 支持更多的节点类型,例如:Service Task
  • 更多的事件以满足复杂的要求
1.0.28

5 months ago

1.0.27

11 months ago

1.0.26

11 months ago

1.0.25

11 months ago

1.0.24

1 year ago

1.0.22

2 years ago

1.0.23

2 years ago

1.0.21

2 years ago

1.0.20

2 years ago

1.0.12

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago