Vue BPMN Modeler流程图

devtools/2024/12/28 17:15:28/

1、参考地址

git clone https://github.com/evanyangg/vue-bpmn-modeler.git

2、安装bpmn.js

npm install bpmn-js --save

3、使用bpmn.js

<template><div class="containers"><div class="canvas" ref="canvas"></div></div>
</template>
<script>
import BpmnModeler from 'bpmn-js/lib/Modeler' // 引入 bpmn-js
export default {data () {return {bpmnModeler: null}},methods: {createNewDiagram () {const bpmnXmlStr = `<?xml version="1.0" encoding="UTF-8"?><bpmn2:definitions xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" id="sample-diagram" targetNamespace="http://bpmn.io/schema/bpmn" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"><bpmn2:process id="process1567044459787" name="流程1567044459787"><bpmn2:documentation>描述</bpmn2:documentation><bpmn2:startEvent id="StartEvent_1" name="开始"/></bpmn2:process><bpmndi:BPMNDiagram id="BPMNDiagram_1"><bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="process1567044459787"><bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1"><dc:Bounds x="184" y="64" width="36" height="36"/><bpmndi:BPMNLabel><dc:Bounds x="191" y="40" width="22" height="14"/></bpmndi:BPMNLabel></bpmndi:BPMNShape></bpmndi:BPMNPlane></bpmndi:BPMNDiagram><processType id="test"/></bpmn2:definitions>`// 将字符串转换成图显示出来this.bpmnModeler.importXML(bpmnXmlStr, (err) => {if (err) {console.error(err)}})}mounted () {const canvas = this.$refs.canvas// 生成实例this.bpmnModeler = new BpmnModeler({container: canvas})this.createNewDiagram() // 新增流程定义}
}
</script>
<style lang="scss">/*左边工具栏以及编辑节点的样式*/@import '~bpmn-js/dist/assets/diagram-js.css';@import '~bpmn-js/dist/assets/bpmn-font/css/bpmn.css';@import '~bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css';@import '~bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css';.containers{position: absolute;background-color: #ffffff;width: 100%;height: 100%;.canvas{width: 100%;height: 100%;}.bjs-powered-by {display: none;}}
</style>

4、监听方法

// 监听节点选择变化
this.modeler.on('selection.changed', (e) => {const element = e.newSelection[0]console.log(element) 
})//  监听节点属性变化
this.modeler.on('element.changed', (e) => {const { element } = econsole.log(element) 
})

5、展示效果


http://www.ppmy.cn/devtools/145763.html

相关文章

ReactPress 1.6.0:重塑博客体验,引领内容创新

ReactPress 是一个基于Next.js的博客&CMS系统&#xff0c; Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎Star。 体验地址&#xff1a;http://blog.gaoredu.com/ 今天&#xff0c;我们自豪地宣布ReactPress 1.6.0版本的正式发布&#xff0c;…

亚远景-ISO 21434标准下的汽车网络安全测试:全面要求与实施策略

ISO 21434标准在安全测试方面有着详细且全面的要求&#xff0c;以确保车辆网络系统的安全性能得到有效验证和确认。以下是该标准在安全测试方面的主要要求&#xff1a; 一、安全测试计划的制定与执行 要求&#xff1a;制造商需要制定并执行详细的安全测试计划&#xff0c;该计…

JVM实战—2.JVM内存设置与对象分配流转

大纲 1.JVM内存划分的原理细节 2.对象在JVM内存中如何分配如何流转 3.部署线上系统时如何设置JVM内存大小 4.如何设置JVM堆内存大小 5.如何设置JVM栈内存与永久代大小 6.问题汇总 1.JVM内存划分的原理细节 (1)背景引入 (2)大部分对象的存活周期都是极短的 (3)少数对象…

37.1 prometheus管理接口源码讲解

本节重点介绍 : 生命周期控制相关 reload 热更新配置 pprof相关 prometheus pprof 查看火焰图 存储操作相关 生命周期控制相关 代码位置位置 D:\go_path\src\github.com\prometheus\prometheus\web\web.go if o.EnableLifecycle {router.Post("/-/quit", h.quit)r…

Java基于SSM框架的无中介租房系统小程序【附源码、文档】

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…

spring专题笔记(六):bean的自动装配(自动化注入)-根据名字进行自动装配、根据类型进行自动装配。代码演示,通俗易懂。

目录 一、根据名字进行自动装配--byName 二、根据类型进行自动装配 byType 本文章主要是介绍spring的自动装配机制&#xff0c; 用代码演示spring如何根据名字进行自动装配、如何根据类型进行自动装配。代码演示&#xff0c;通俗易懂。 一、根据名字进行自动装配--byName Us…

v8引擎垃圾回收

V8引擎垃圾回收机制 v8引擎负责JavaScript的执行。V8引擎具有内置的垃圾回收机制&#xff0c;用于自动管理内存分配和释放 堆与栈 栈空间 栈空间是小而连续的内存空间&#xff0c;主要用于存储局部变量和函数调用的相关信息&#xff0c;同时栈结构是“先进后出”的策略 栈…

数据仓库工具箱—读书笔记02(Kimball维度建模技术概述03、维度表技术基础)

Kimball维度建模技术概述 记录一下读《数据仓库工具箱》时的思考&#xff0c;摘录一些书中关于维度建模比较重要的思想与大家分享&#x1f923;&#x1f923;&#x1f923; 第二章前言部分作者提到&#xff1a;技术的介绍应该通过涵盖各种行业的熟悉的用例展开&#xff08;赞同…