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

Vue BPMN Modeler流程图

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.lryc.cn/news/510298.html

相关文章:

  • 写在公司40周年前夕
  • Python调用Elasticsearch更新数据库
  • 测试基础之测试分类
  • 太阳能LED路灯智能控制系统(论文+源码)
  • 文本数据处理
  • Liunx环境下安装人大金仓数据库V8R6版本
  • Android使用PorterDuffXfermode模式PorterDuff.Mode.SRC_OUT橡皮擦实现马赛克效果,Kotlin(3)
  • python 怎么引入类
  • Day35汉明距离
  • 中文学习系统:客户服务与学习支持
  • 华为麦芒5(安卓6)termux记录 使用ddns-go,alist
  • 餐厅下单助手系统(Java+MySQL)
  • Go操作MySQL
  • Linux(Ubuntu/CentOS)配置开机自启动服务
  • springboot3版本结合knife4j生成接口文档
  • 谈谈 Wi-Fi 的 RTS/CTS 设计
  • JVM 详解
  • 【debug】
  • PCB注意事项
  • Nmap使用指南
  • 社区版Dify 轻松实现文生图,Dify+LLM+ComfyUI
  • Python - 获取当前函数中的所有参数信息(名称和值)
  • PHP之伪协议
  • 关于Vue的子组件改变父组件传来的值
  • jvm排查问题-实践追踪问题 与思路--堆内堆外内存泄漏排查方针
  • 网络层协议--ip协议
  • 【总结整理】 神经网络与深度学习 邱锡鹏 课后习题答案 扩展阅读链接
  • 使用 Three.js 创建一个 3D 人形机器人仿真系统
  • 图像修复和编辑大一统 | 腾讯北大等联合提出BrushEdit:BrushNet进阶版来了
  • 【hackmyvm】Adroit靶机wp