vue集成BPMN.js实现流程图的显示,bpmn格式下载

1、安装插件

npm install --save bpmn-js

2、xml格式文件

export var xmlStr = `<?xml version="1.0" encoding="UTF-8"?>
<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" 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="Process_1" isExecutable="false">
  <bpmn2:startEvent id="StartEvent_1" />
</bpmn2:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
  <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">
    
  </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn2:definitions>`

3、实现流程图

<template>
  <div class="containers">
    <div class="canvas" ref="canvas"></div>
    <button @click="submitBpmn">保存为bpmn</button>
  </div>
</template>

<script>
import BpmnModeler from 'bpmn-js/lib/Modeler'
import { xmlStr } from './xmlStr'
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'
export default {
  name: 'ops-coffee',
  mounted() {
    this.init()
  },
  data() {
    return {
      bpmnModeler: null,
      container: null,
      canvas: null,
    }
  },
  methods: {
    init() {
      const canvas = this.$refs.canvas
      this.bpmnModeler = new BpmnModeler({
        container: canvas,
      })

      this.createNewDiagram()
    },
    createNewDiagram() {
      try {
        const result = this.bpmnModeler.importXML(xmlStr)
        const { warnings } = result
      } catch (err) {
        console.log(err)
      }
    },
  },
}
</script>

<style scoped>
.containers {
  width: 100%;
  height: calc(100vh - 82px);
}
.canvas {
  width: 100%;
  height: 100%;
}
</style>

4、保存bpmn事件

async submitBpmn() {
      try {
        const result = await this.bpmnModeler.saveXML({ format: true })
        const { xml } = result

        var xmlBlob = new Blob([xml], {
          type: 'application/bpmn20-xml;charset=UTF-8,',
        })

        var downloadLink = document.createElement('a')
        downloadLink.download = 'ops-coffee-bpmn.bpmn'
        downloadLink.innerHTML = 'Get BPMN SVG'
        downloadLink.href = window.URL.createObjectURL(xmlBlob)
        downloadLink.onclick = function (event) {
          document.body.removeChild(event.target)
        }
        downloadLink.style.visibility = 'hidden'
        document.body.appendChild(downloadLink)
        downloadLink.click()
      } catch (err) {
        console.log(err)
      }
    },

Vue是一种流行的JavaScript框架,而bpmn.js是一个用于在Web应用程序中展示和编辑BPMN(Business Process Model and Notation)流程图的工具。将Vuebpmn.js整合在一起,可以为我们开发具有流程图展示和编辑功能的应用程序提供便利。 首先,我们需要通过npm或yarn来安装bpmn.js的依赖包。然后,在Vue的主文件中引入bpmn.js的样式和脚本文件。 接下来,我们可以在Vue的组件中创建一个div元素,在该元素上使用ref属性指定一个名称,以便在Vue的逻辑中能够获取到该元素。这个div元素将用于展示BPMN流程图编辑器。 在Vue的逻辑中,我们可以通过调用bpmn.js提供的API来初始化和配置BPMN流程图编辑器。例如,我们可以使用bpmn-js库的BpmnViewer来展示BPMN流程图,或者使用BpmnModeler来实现BPMN流程图的编辑功能。 在Vue的组件中,我们可以对BPMN流程图编辑器进行事件监听,例如监听节点拖拽、连接线绘制等事件。当用户进行操作时,我们可以通过相应的事件处理函数来响应用户的操作,并更新Vue组件的数据状态。 最后,我们可以通过Vue的数据绑定功能,将BPMN流程图编辑器的状态与Vue组件的数据进行绑定,以便在用户进行操作时能够实时更新Vue组件的显示内容。 通过整合Vuebpmn.js,我们可以快速地创建具有BPMN流程图展示和编辑功能的应用程序,从而更好地管理和优化业务流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值