vue2.X项目中集成bpmn-process-designer 流程设计器

vue2.X项目中集成bpmn-process-designer 流程设计器

bpmn-process-designer是什么

一个基于 bpmn.js,Vue 2.x 和 ElementUI 开发的 BPMN 2.0 流程设计器(网页版),您可以使用它在浏览器上查看和编辑符合 BPMN 2.0 规范的流程文件。

项目内置 activiti、flowable、camunda 三种流程引擎支持文件,并提供了常见功能自定义方法与演示代码。

但由于 bpmn.js 与实际业务的特殊性,本项目暂不支持直接使用与发布 NPM 依赖,建议根据实际需求参照 App.vue 进行使用和二次开发。
详细地址见 https://gitee.com/MiyueSC/bpmn-process-designer

集成步骤

  1. 首先下载代码到本地,打开代码可以看到目录结构
    在这里插入图片描述

  2. 项目文件迁移
    1) 首先解决依赖,找到原项目的package.json与本地vue项目做对比,将没有的dependenciesdevDependencies ,最终要的是 diagram.js版本,一定与原项目保持一致选用8.9.0,否则会出现某些连线无法使用 例如:this._overlays.isShown is not function
    2)将packages文件夹整体迁移到本地vue项目中,作者将packages中components文件夹提取出来和本地已有文件件进行了合并;将type文件夹迁移到本地vue项目src下;最后将utils文件夹迁移到本地vue项目src下
    在这里插入图片描述

  3. 修改相关import引入路径 例如原路径import EventEmitter from “@utils/EventEmitter”;
    作者的项目中改为import EventEmitter from “@/util/EventEmitter”;所有的都要处理

  4. 修改Main.js文件
    (1)引入图标

import "./packages/bpmn-icons";

(2)引入高亮

import { vuePlugin } from "./packages/highlight";
import "highlight.js/styles/atom-one-dark-reasonable.css";
Vue.use(vuePlugin);

(3)引入common组件,和全局样式index.scss,index.scss中可能出现冲突写法将@import 中的@文件路径改为~

import Common from "./components/common";

import ResetPopover from "./util/resetPopover";
import './packages/theme/index.scss';
Vue.use(Common);
Vue.directive("r-popover", ResetPopover);
  1. store下文件迁移,本地项目中原有store文件夹,需要将packages下store中js提取出来,封装在原有src下,并修改src/packages/bpmn-utils/BpmnDesignerUtils.js文件中store的引入
    在这里插入图片描述
 src/packages/bpmn-utils/BpmnDesignerUtils.js

6.修改完成后 使用npm install
npm run dev
参考

https://www.815494.com/biancheng/?read-1690498834a815815.html

后续继续进行改造

  • 41
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue使用bpmn-js可以通过以下几个步骤实现: 1. 首先,安装bpmn-js的依赖包。你可以使用npm或者yarn来进行安装,具体安装命令如下: ``` npm install bpmn-js ``` 或者 ``` yarn add bpmn-js ``` 2. 在Vue组件引入bpmn-js的库文件。在你需要使用bpmn-js的组件,可以使用import语句引入bpmn-js的库文件,具体代码如下: ``` import BpmnViewer from 'bpmn-js'; ``` 3. 创建一个容来展示bpmn图。在你的Vue组件模板,创建一个div元素作为容来展示bpmn图,例如: ``` <div id="bpmn-container"></div> ``` 4. 在Vue组件的mounted钩子函数初始化bpmn-js。在Vue组件的mounted钩子函数,可以使用bpmn-js的构造函数来初始化bpmn-js,并将其绑定到之前创建的容上,具体代码如下: ``` mounted() { const container = document.getElementById('bpmn-container'); const viewer = new BpmnViewer({ container }); // 加载和显示bpmn图的代码 } ``` 5. 加载和显示bpmn图。在初始化bpmn-js之后,你可以使用load方法加载和显示一个bpmn图。load方法接受一个bpmn图的XML字符串作为参数,具体代码如下: ``` viewer.importXML(/* bpmn图的XML字符串 */); ``` 6. 最后,你可以根据需要对bpmn图进行进一步的操作和处理,比如增加交互事件或者自定义样式等。 需要注意的是,上述代码只是一个示例,实际使用bpmn-js可能还需要更多的配置和处理。你可以根据具体的需求进行进一步的学习和开发。 引用: 'Id': '编号', 'Name': '名称', 'General': '常规', 'Details': '详情', 'Message Name': '消息名称', 'Message': '消息', 'Initiator': '创建者', 'Asynchronous continuations': '持续异步', 'Asynchronous before': '异步前', 'Asynchronous after': '异步后', 'Job configuration': '工作配置', 'Exclusive': '排除', 'Job Priority': '工作优先级', 'Retry Time Cycle': '重试时间周期', 'Documentation': '文档', 'Element Documentation': '元素文档', 'History Configuration': '历史配置', 'History Time To Live': '历史的生存时间', 'Forms': '表单',<span class="em">1</span> #### 引用[.reference_title] - *1* [bpmn-js在vue的基本使用](https://blog.csdn.net/qq_43519131/article/details/127985956)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值