首页 > 其他分享 >Vue2.0中使用bpmn-js

Vue2.0中使用bpmn-js

时间:2023-08-25 17:44:23浏览次数:45  
标签:canvas bpmn js Vue2.0 import xmlStr css

  使用bpmn-js在网页中绘制流程图

 

1. 新建vue项目, 输入命令 安装bpmn-js

npm install bpmn-js --save

 

2. 在src/main.js中引入css样式

//css样式
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' 

 

3. 新建src/mock/xmlStr.js文件, 用来存放bpmn的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:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
      <dc:Bounds x="192" y="82" width="36" height="36" />
    </bpmndi:BPMNShape>
  </bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn2:definitions>`;

 

4.  将下面代码粘贴到新建的views/BpmnView.vue视图文件中 

<template>
  <div class="containers">
    <div class="canvas" ref="canvas"></div>
  </div>
</template>

<script>
import BpmnModeler from "bpmn-js/lib/Modeler";
import { xmlStr } from "../mock/xmlStr";

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 {
        this.bpmnModeler.importXML(xmlStr);
      } catch (err) {
        console.log(err.message, err.warnings);
      }
    },
  },
};
</script>

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

 配置路由

 

5. 运行, 访问界面显示流程图绘制界面

标签:canvas,bpmn,js,Vue2.0,import,xmlStr,css
From: https://www.cnblogs.com/njxw7819/p/17657456.html

相关文章

  • Pandas 使用教程 JSON、CSV 转换
    Pandas可以很方便的处理JSON数据demo.json[{"name":"张三","age":23,"gender":true},{"name":"李四","age":24,"gender":tru......
  • js中0.1+0.2不等于0.3问题,解决方法
    因为js使用的双精度浮点,所以在计算机内部存储数据的编码会出现误差,导致0.1+0.2=0.30000000000000004。和0.3相比较结果为false。我目前所知道的解决方法有以下几种:1.将其先转换成整数,再相加之后转回小数。具体做法为先乘10相加后除以10.如下图letx=(0.1*10+0.2*10)/10;co......
  • 关于js中的toLocaleDateString()方法
    toLocaleDateString()方法是JavaScriptDate对象的一个内建方法,它将日期转换为符合特定地区习惯的字符串格式。基本用法:如果没有传入任何参数,toLocaleDateString()会根据浏览器的默认语言环境返回一个日期字符串。例如:letdate=newDate();console.log(date.toLocaleDate......
  • JS 验证URL是否有效
    functionisValidHttpUrl(string){try{constnewUrl=newURL(string);returnnewUrl.protocol==='http:'||newUrl.protocol==='https:';}catch(err){returnfalse;}}console.log(isValidHttpUrl('https://w......
  • pdfjs-dist v2.11.338写个react demo
    app.jsximport'./App.css'import*aspdfjsfrom"pdfjs-dist";import"pdfjs-dist/web/pdf_viewer.css";import{useEffect,useRef,useState}from'react'import{PDFViewer,PDFLinkService,EventBus}from'p......
  • mormot2 笔记(三) 实体转JSON
    TOL=class(TObject)publicprocedureW(W:TJsonWriter;Instance:TObject;Options:TTextWriterWriteObjectOptions);end;TPerson=classprivateFName:string;FID:integer;FSex:Byte;publishedpropertyID:integerread......
  • 直播平台搭建,JSON.parseObject的几种用法
    直播平台搭建,JSON.parseObject的几种用法一.result格式: {  "success":"true",  "returnAddress":"123"} JSONObjectjsonObject=JSON.parseObject(result); //转换成objectJsonObject.getString("returnAddress") //获取object中ret......
  • 直播网站程序源码,js判断上传图片格式类型、尺寸大小
    直播网站程序源码,js判断上传图片格式类型、尺寸大小//判断图片类型varf=document.getElementById("File1").value;if(f==""){ alert("请上传图片");returnfalse;}else{if(!/\.(gif|jpg|jpeg|png|GIF|JPG|PNG)$/.test(f)){alert("图片类型必须是.gif,jpeg,jpg,png中的一种")re......
  • js不区分大小写比较字符串|字符串转小写
    toLowerCase()方法用于把字符串转换为小写,在做字符串比较不区分大小写的时候用此方法,效果:代码://不区分大小写Stringstr=‘ABC’if(‘abc’==str.toLowerCase()){return“1”;//正确}else{return“0”;//错误}}toUpperCase():字符串转大写,比较同上......
  • node.js环境变量配置
    node.js环境变量配置环境配置主要配置的是npm安装的全局模块所在的路径,以及缓存cache的路径。为什么需要配置?因为以后在执行类似:npminstallexpress[-g](后面的可选参数-g,g代表global全局安装的意思)的安装语句时,会将安装的模块安装到【C:\Users\用户名\AppData\Roaming\npm】......