首页 > 其他分享 >Bpmn基础

Bpmn基础

时间:2023-08-24 15:46:32浏览次数:50  
标签:canvas dist bpmn Bpmn 基础 js import css

在HTML中使用

 

<!DOCTYPE html><html lang="zh-CN">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

<title>运维 - BPMNJS</title>

<!-- 引入BPMN-JS的CSS文件 -->

<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/assets/diagram-js.css" />

<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/assets/bpmn-font/css/bpmn.css" /></head>

<body>

<div id="canvas" style="height:80vh;"></div>

<!-- 引入BPMN-JS的JS文件 -->

<script src="https://unpkg.com/[email protected]/dist/bpmn-modeler.development.js"></script>

<script>

var diagramXML = `<?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>`

var bpmnModeler = new BpmnJS({

container: '#canvas'

});

bpmnModeler.importXML(diagramXML, function(err) {

if (err) {

return console.error('failed to load diagram', err);

}

});

</script></body>

</html>

样式图片

在Vue中使用

安装Bpmn-js

 

npm install bpmn-js --save

引入bpmn-js 的CSS,修改 src/main.js 文件

 

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

 

编写bpmn-model.vue 文件

 

 

<template>

<div class="containers">

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

</div>

</template>

<script>

import BpmnModeler from 'bpmn-js/lib/Modeler'

//import { CustomModeler } from '../components/nmms/customBpmn'

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>

 

vue文件中引入了xmlStr,用来存放bpmn的xml数据,创建src/mock/xmlStr.js文件

 

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>`;

 

最后为.vue 文件添加路由

{

path: 'dddd',

name: 'dddd',

component: () => import('../../views/nmms/bpmn-modeler.vue'),

meta: { isFullScreen: true, keepAlive: false, title: '流程模板管理' }

},

官方网站:https://bpmn.io/

本文参考地址:https://zhuanlan.zhihu.com/p/427078485

点击查看代码

标签:canvas,dist,bpmn,Bpmn,基础,js,import,css
From: https://www.cnblogs.com/mzqls/p/17654217.html

相关文章

  • JavaScript基础语法
    一、JavaScript概述1.1、JavaScript可以做什么1.1.1、页面的各种动画效果1.1.2、页面的点击/移入响应1.1.3、对客户端数据进行验证1.1.4、各种页面小游戏1.1.5、用途总结嵌入动态文本于HTML页面。对浏览器事件做出响应(对于用户的操作给予响应)。读写HTML元素。在......
  • Linux基础命令:应付测试面试
    1.进入文件命令vi文件名(一定要知道是那个目录下的文件) 下图为进入该文件: 2.编辑文件:先按I进入编辑模式就可以随便写入了保存之前一定要先退出编辑模式:按ESC接下来就是保存:    :q 不保存直接退出    ......
  • CSS基础-背景
    background-color背景颜色,可以使用十六进制、rgb、rgba表示。语法/**selector背景元素的原则去*//**color背景颜色的值,可以是颜色名称、十六进制值、RGB、RGBA*/selector{background-color:color;}示例/**设置body标签背景为白色*/body{background-......
  • 【STM32】4_0 基础定时器
    基础定时器TIME6和TIME7基本定时器•16位计数器(Counter):基础定时器内部有一个16位的自动增减计数器。计数器可以通过软件或外部触发递增。•时钟源(ClockSource):基础定时器可以使用不同的时钟源作为计数器的输入时钟。通常,它可以选择使用内部时钟(如系统时钟)或外部时钟(如外部......
  • 【STM32】4_0 基础定时器
    基础定时器TIME6和TIME7基本定时器•16位计数器(Counter):基础定时器内部有一个16位的自动增减计数器。计数器可以通过软件或外部触发递增。•时钟源(ClockSource):基础定时器可以使用不同的时钟源作为计数器的输入时钟。通常,它可以选择使用内部时钟(如系统时钟)或外部时钟(如外部......
  • PPT一键导入秒变视频?你没听错!有了这个神器,让你的PPT从基础到高级,转化为视频就像变魔术
    我们都知道PPT是一个绝对实用的工具,可以帮助我们展示演讲、产品介绍、项目计划等等。但是有时候,我们想把PPT变成视频的形式,这样更容易传播和分享啦!   那么你会制作PPT吗?你在使用中有遇到过一些困难吗?让我给你看看我身边几位朋友对PPT的感受吧! 企业朋友A说:......
  • 基础题数组-485、283、27
    485. 最大连续1的个数1classSolution:2deffindMaxConsecutiveOnes(self,nums:List[int])->int:3maxCount=count=045fori,numinenumerate(nums):6ifnum==1:7count+=18......
  • JavaScript基础语法
    1.与HTML的区别HTML:标记语言JavaScript:编程语言(脚本)2.JavaScript代码的书写位置行内式JS代码<ahref="javascript:alert('我是行内js');">点击一下试试</a>......
  • JAVA SE基础《九》 ---- 常用API
    目录一、包二、String1、String概述2、String的常用方法3、String使用时的注意事项4、String的应用案例三、ArrayList1、ArrayList快速入门 1、ArrayList应用案例1、ArrayLis综合案例 前言API(ApplicationProgrammingInterface,应......
  • 二维基础
    前置知识浮点数与精度问题若问题能用整数解决则不用浮点数别用\(float\),视情况用\(long\double\)减少数学函数的使用(开方、三角函数)比较时加入容限,即\(eps\)点constdoublePI=acos(-1.0);constdoubleeps=1e-9;structPoint{doublex,y;Poin......