新增流程节点

willian fu 2022 ~

新增流程节点

目前系统内置了6种节点,基本能覆盖日常所需业务,如果需要新增业务节点可以参考本章节

前端

1、新增流程节点组件

src\views\common\process\nodes 目录下按照xxxNode风格命名新增一个新的流程节点组件,如果您新增的节点类型是如下类型样式

image-20221208165729145

那么直接可以参考审批和发起人等节点的设置方式进行新增,修改节点的颜色和图标配置

2、新增添加节点的选项

点击 + 时,会弹出要插入的节点选项,我们从 src\views\common\InsertButton.vue 组件进行添加,参考其他项设置及数据命名风格

3、新增节点props属性设置

如果该节点存在设置项,那么就要定义它的设置项有哪些字段信息,在 DefaultNodeProps.js 里面,参考其他项设置

4、让节点在流程图上显示

流程图渲染的核心文件是 src\views\admin\layout\process\ProcessTree.vue,自定义节点要想显示出来,必须在该组件内进行声明 import 进来

5、新增节点的配置面板

当点击节点时,右侧会弹出该节点的配置面板,这个面板也是一个组件,如果我们新增了节点,那么就要新增对应设置面板组件,在 src\views\common\process\config 目录,根据自己的需求去构建该面板设置内容,该面板主要是构造 DefaultNodeProps.js 里面的该类型节点的设置信息,然后后台流程到达改节点时,根据节点设置项去做相应操作。

后端

1、新增流程节点

我们新增了一个业务节点,那么该节点需要有bpmn标准节点与之对应

**例如:**审批人节点对应UserTask,抄送节点对应 ServiceTask,大家自定义的节点也需要有一个这种转换目标对应,具体该节点是哪种根据自身业务来

wflow 流程设计器的json,需要转换成对应的bpmn模型,该转换器核心类为 com.wflow.workflow.WFlowToBpmnCreator

/**
* 递归加载所有流程树
* @param node 起始节点
*/
public void loadProcess(ProcessNode<?> node){
    switch (node.getType()){
        case ROOT:
            break;
        case APPROVAL:
            break;
        case CC:
            break;
        case DELAY:
            break;
        case CONDITIONS:
            break;
}

找到上方所示该方法,添加一个case项(注意同时添加节点类型的枚举),然后参考其他项创建该节点类型对应的bpmn节点,注意普通节点与带多路分支的节点处理方式不相同,参考并行及条件网关处理。

📌处理节点转换的逻辑是,先创建节点,再去给这个节点向上连线!!!

ON THIS PAGE
公告
QQ/微信 交流群(📢 尽量加微信群)
  • Q群③:854047337 ✔️

  • Q群①:156972829 (已满) 🚫
  • Q群②:853185510 (已满) 🚫
  • 微信群:添加作者 willianfu_ 拉群
  • 🎈🎈pro商业版用户请联系作者加pro专属微信群,备注pro加群,pro暂无QQ群

GitHub/Gitee