flowable实战(十五):关于流程设计器: bpmn.js与vue的整合

一、前言:

       由于flowable本身带的Moder风格实在与前端页面风格不一样,同时由于Modeler采用Angular.js写的,改造起来相对有一定的难度,所以打算换成bpmn.js当成流程设计器。

二、与vue的整合

1.安装以下包进开发环境
 npm install --save    bpmn-js;

npm install -- save bpmn-js-properties-panel;

npm install --save camunda-bpmn-moddle;

2.定制开发以下功能:

  (1)打开:打开本地的*.bpmn20.xml模型文件,并在bpmn.js插件的画布上显示出来。

   (2)创建:创建一个新的流程,在画布上供用户拖拉完成。

   (3)导出流程模板:导成一个xml或者zip的形式。

   (4)撤销:支持向前或向后撤销,即撤销在画布上刚才操作。

     (5)  放大/缩小:支持画布的放大与缩小,以及重置恢常正常大小。

     (6) 保存流程的模型到自己的定义数据库表,同时同步更新到act_de_model表中。

     (7) 节点属性面板的定制功能开发。

三、整合的真实效果如下:

 

 

 

 

四、功能代码参

 

考bpmn.js官方例子代码即可。

 

版权声明:不得转载。作者:热水。

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
好的,下面是Vue3整合bpmn.js实现flowable流程设计的代码实现。 首先,需要安装依赖: ``` npm install bpmn-js@8.0.1 npm install bpmn-js-properties-panel@0.44.0 npm install bpmn-js-properties-panel-provider@0.23.0 npm install camunda-bpmn-moddle@6.2.0 npm install vue-bpmn ``` 接着,在Vue组件中引入需要的文件: ```javascript import BpmnModeler from 'bpmn-js/lib/Modeler'; import propertiesPanelModule from 'bpmn-js-properties-panel'; import propertiesProviderModule from 'bpmn-js-properties-panel/lib/provider/camunda'; import camundaModdleDescriptor from 'camunda-bpmn-moddle/resources/camunda'; import 'bpmn-js-properties-panel/styles/properties.less'; import 'bpmn-js/dist/assets/bpmn-font/css/bpmn.css'; ``` 然后,在Vue组件中定义bpmn.js的Modeler和其他必要的变量: ```javascript data() { return { bpmnModeler: null, propertiesPanel: null, xml: null, }; }, ``` 接下来,在Vue组件的mounted生命周期函数中初始化bpmn.js的Modeler和其他必要的变量: ```javascript mounted() { this.bpmnModeler = new BpmnModeler({ container: '#canvas', propertiesPanel: { parent: '#properties', }, additionalModules: [ propertiesPanelModule, propertiesProviderModule, ], moddleExtensions: { camunda: camundaModdleDescriptor, }, }); this.propertiesPanel = this.bpmnModeler.get('propertiesPanel'); }, ``` 然后,在Vue组件的methods中定义一些必要的方法,比如打开一个流程图、保存一个流程图、导出一个流程图: ```javascript methods: { openDiagram(xml) { this.bpmnModeler.importXML(xml, (err) => { if (err) { console.log(err); } else { console.log('success'); } }); }, saveDiagram() { this.bpmnModeler.saveXML({ format: true }, (err, xml) => { if (err) { console.log(err); } else { console.log(xml); } }); }, exportDiagram() { this.bpmnModeler.saveSVG((err, svg) => { if (err) { console.log(err); } else { console.log(svg); } }); }, }, ``` 最后,在Vue组件的template中定义UI界面: ```html <template> <div> <div id="canvas"></div> <div id="properties"></div> <button @click="saveDiagram">保存</button> <button @click="exportDiagram">导出</button> </div> </template> ``` 在这个例子中,我们使用了Vue3和bpmn.js来实现了flowable流程设计。通过这个例子,你可以了解到如何在Vue3中整合bpmn.js以及如何定义UI界面、打开、保存和导出流程图。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值