当前位置: 首页 > news >正文

bpmn+vue 中文文档

1.初始化项目

<script>
import BpmnModeler from 'bpmn-js/lib/Modeler'
import { xmlStr } from '@/mock/xmlStr'
export default {mounted () {this.init()},methods: {init () {// 获取到属性ref为“canvas”的dom节点const canvas = this.$refs.canvas// 建模const customTranslateModule = {translate: ['value', customTranslate]}this.bpmnModeler = new BpmnModeler({container: canvas,// 添加控制板propertiesPanel: {parent: '#js-properties-panel'},additionalModules: [// 左边工具栏以及节点propertiesProviderModule,customTranslateModule]})this.createNewDiagram(xmlStr)},async createNewDiagram(xmlStr) {// 将字符串转换成图显示出来await this.bpmnModeler.importXML(xmlStr, (err) => {if (err) {} else {// 这里是成功之后的回调, 可以在这里做一系列事情this.addEventBusListener();}})}}
}
</script>

2. 节点的事件或方法:

// 监听 element

const eventBus = this.bpmnModeler.get('eventBus');

//  获取流程的所有元素

const elements = this..bpmnModeler.get('elementRegistry')._elements

//  监听流程节点内容发生改变的事件

this.bpmnModeler.on('commandStack.changed', async function() {})

//  格式化保存流程图为xml文件

this..bpmnModeler.saveXML({ format: true }, async function(err, xml) {})

// 得到流程xml的name的集合
getXmlName(xmlString) {const parser = new DOMParser();const xmlDoc = parser.parseFromString(xmlString, 'text/xml')const nodes = xmlDoc.querySelectorAll('*[name]');const names = Array.from(nodes).map(node => node.getAttribute('name'))return names
}addEventBusListener() {// 监听 elementconst eventBus = this.bpmnModeler.get('eventBus');const eventTypes = ['element.click', 'element.changed', 'element.updateLabel'];let that = this;eventTypes.forEach(function(eventType) {eventBus.on(eventType, async function(e) {if (!e) return;const type = e.element.type  // 选中元素的类型that.selected = typeof e.element.parent !== 'undefined' // 判断是否选中元素if (eventType === 'element.changed') {} else if (eventType === 'element.click') {}})})// 修改节点内容事件this.bpmnModeler.on('commandStack.changed', async function() {await that.bpmnModeler.saveXML({ format: true }, async function(err, xml) {let allElementId = []for (let i in that.bpmnModeler.get('elementRegistry')._elements) {if (i === 'StartEvent_1y45yut' || i.indexOf('Task_') > -1 || i.indexOf('Activity_') > -1 || (i.indexOf('Gateway_') > -1 && i.indexOf('label') === -1)) {allElementId.push(i)}}if (that.getXmlName(xml).length < allElementId.length) {// name为空,给name赋值idlet newxml = xml.replace(('id="' + allElementId[allElementId.length - 1] + '"'), ('id="' + allElementId[allElementId.length - 1] + '" name="' + allElementId[allElementId.length - 1] + '"'))that.bpmnModeler.clear();await that.bpmnModeler.importXML(newxml);}that.camunda.process.processXml = xmlthat.updateNodes(that.bpmnModeler.get('elementRegistry')._elements, that.getXmlName(xml))})})
}

3.bpmn官网:BPMN Editor | bpmn-js modeler Demo | demo.bpmn.io

4.流程设定可参考简道云的设计,简道云的网址:简道云登录_简道云系统入口_零代码平台登录_无代码平台登录-简道云

相关文章:

  • Javaweb---HTTPS
  • 笔记:Mysql的安全策略
  • Meta Llama 3 RMSNorm(Root Mean Square Layer Normalization)
  • [每周一更]-(第100期):介绍 goctl自动生成代码
  • 【归档】git使用
  • HCIA-RS实验-单臂配置
  • 小米路由器如何设置去广告功能,如何设置小米路由器的自定义Hosts(小米路由器如何去除小米广告、去除小米电视盒子开屏广告、视频广告)
  • 基于深度学习的在线选修课程推荐系统
  • 【六袆 - Java】Java 驱动连接Oracle数据库; Java单元测试 连接Oracle;
  • springcloud第4季 springcloud-gateway网关filter案例场景
  • 自定义类型:结构体+结构体内存对齐+结构体实现位段
  • linux系统——ping命令
  • qemu虚拟机安装麒麟v10 arm版系统
  • [自学记录09*]Unity Shader:在Unity里渲染一个黑洞
  • 零基础入门学用Arduino 第一部分(三)
  • C++入门教程(10):for 语句
  • co.js - 让异步代码同步化
  • egg(89)--egg之redis的发布和订阅
  • ES6系统学习----从Apollo Client看解构赋值
  • Flannel解读
  • flutter的key在widget list的作用以及必要性
  • js数组之filter
  • linux学习笔记
  • Objective-C 中关联引用的概念
  • Sublime Text 2/3 绑定Eclipse快捷键
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • Vue--数据传输
  • Wamp集成环境 添加PHP的新版本
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 前端性能优化--懒加载和预加载
  • 如何胜任知名企业的商业数据分析师?
  • 三分钟教你同步 Visual Studio Code 设置
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 交换综合实验一
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​如何防止网络攻击?
  • !!Dom4j 学习笔记
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (11)MATLAB PCA+SVM 人脸识别
  • (floyd+补集) poj 3275
  • (ibm)Java 语言的 XPath API
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (搬运以学习)flask 上下文的实现
  • (笔记)M1使用hombrew安装qemu
  • (编译到47%失败)to be deleted
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (篇九)MySQL常用内置函数