首页 > 其他分享 >Angular集成bpmn.js的基础实现及扩展(一)

Angular集成bpmn.js的基础实现及扩展(一)

时间:2023-01-13 10:55:17浏览次数:59  
标签:bpmn 100% min js let Angular Math

一、bpmn的基本认识

bpmn.js是一个BPMN2.0渲染工具包和web建模器, 使得画流程图的功能在前端来完成。

bpmn画图具有哪些内容?

二、使用npm安装bpmn.js

npm install --save bpmn-js

三、在Angular中使用bpmn.js

1.页面基础构建

  • 安装相关依赖
    npm install --save bpmn-js
  • 编写HTML代码
    <div class="container">
      <div class="canvas"></div>
    </div>
    
  • 编写CSS代码
    .container{
      position: absolute;
      height: 100%;
      width: 100%;
      .canvas{
    	height: 100%;
    	width: 100%;
      }
    }
    
  • 创建mock文件夹,新增xmlStr.ts(默认展示的bpmn流程图)
    //生成随机或者指定位数的英文数字组合
    function randomWord (randomFlag: any, min: number, max: number = 7) {
      let str = '',
    	range = min,	// 默认赋值为第二个参数,如果是随机产生位数会通过下面的if改变。
    	arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
      // 随机产生
      if (randomFlag) {
        range = Math.round(Math.random() * (max - min)) + min;
      }
      for (let i = 0; i < range; i++) {
            let index = Math.round(Math.random() * (arr.length - 1));
            str += arr[index];
      }
      return str;
    }
    let flowID = randomWord(false , 7)
        // 默认bpmn流程图
    export var xmlStr:any = `
      <?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"
    				xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
    				xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd" id="sample-diagram"
    				targetNamespace="http://bpmn.io/schema/bpmn">
    	  <bpmn2:process id="Process_${flowID}" isExecutable="false">
    	  </bpmn2:process>
    	  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    	<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_${flowID}">
    	</bpmndi:BPMNPlane>
        </bpmndi:BPMNDiagram>
      </bpmn2:definitions>
    `
    

标签:bpmn,100%,min,js,let,Angular,Math
From: https://www.cnblogs.com/chenzilong/p/17048757.html

相关文章

  • js加法精度问题解决
    //加法exportconstnumAdd=(num1,num2)=>{letbaseNum,baseNum1,baseNum2try{baseNum1=num1.toString().split('.')[1].length}cat......
  • js中base64转blob
    //将base64转换为blobexportconstdataURLtoBlob=(dataurl)=>{letarr=dataurl.split(','),mime=arr[0].match(/:(.*?);/)[1],bstr=a......
  • js中的Class类详解
    什么是类?class类是一种抽象的体现,用来表示具有相同特性的一类事物,是面向对象编程(oop)不可缺少的工具。定义一个简单的类定义一个类为Person,每个Person都会跑,都有名字c......
  • python-标准库json模块的使用
    python-标准库json模块1.标准库json模块JSON是一种轻量级数据交换格式,一般API返回的数据大多是JSON、XML,如果返回JSON的话,需将获取的数据转换成字典,方面在程序中处理......
  • Node.js压缩包版安装与配置
    1.下载安装压缩包Node.js官网:https://nodejs.org/en/下载地址:https://nodejs.org/en/download/2.解压将下载成功的压缩包解压至指定路径,如D:\environment3.创建文件......
  • 5个实用JS库
    前言作为一名前端开发者,我通过这些JavaScript库大大提高了自己的效率,比如格式化日期、处理URL参数、调试手机网页等。因此,我想将这些好用的库分享给你们,也希望可以帮助到你......
  • SpringBoot-JSR303数据校验
    什么是JSR303?Springboot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。我们这里来写个注解让我们的name只能支持Email格式;@Componen......
  • 来自StateOfJS调查:2022年JavaScript生态圈趋势报告(前端早读课)
    原文我这里记录些觉得有趣的。Promise.allSettled()完成所有输入的方法,nomatterwhat,返回对应的状态和值/原因,这对想知道所有返回状态的业务很好用;使用async/await没法......
  • 前端知识整理第三天(【html】audio 标签的api/【js】let const var 相关)
    audio标签的apiletconstvar相关......
  • arcgis api for js 按钮样式大全
    4.25版本的有187个图标https://developers.arcgis.com/javascript/latest/esri-icon-font/用法示例<divid="select-by-rectangle"class="esri-widgetesri......