bpmn.js显示流程图

embedded/2024/11/24 2:15:47/

目标:vue2 + 接口返回xml - 弹窗显示流程图 - 根据需求高亮节点

一、安装依赖   

   npm i bpmn-js         添加上的版本是 "bpmn-js": "^11.5.0"

二、只读显示流程图
<div ref="canvas" style="width:100%;height: calc(100vh - 85px);"></div>
import BpmnViewer from "bpmn-js/lib/Viewer";
  data() {return {bpmnViewer: null,loading: false,};},methods: {// el-dialog的@open方法 调用接口获取xml - 成功返回则初始化流程图handleOpen() {this.loading = true;processXML(this.bizKey).then(({ code, message, result }) => {if (code == 200) {if (result.bpmnXml) {this.init(result.bpmnXml);} else {return Promise.reject(new Error("未获取到流程图实例"));}} else {return Promise.reject(new Error(message));}}).catch((error) => {this.$message.error(error.message);this.loading = false;});},// 初始化流程图实例async init(bpmn20Xml) {this.bpmnViewer = new BpmnViewer({ container: this.$refs.canvas });try {const result = await this.bpmnViewer.importXML(bpmn20Xml);let canvas = this.bpmnViewer.get("canvas");canvas.zoom("fit-viewport");/** 高亮节点写在这里 */// const { warnings } = result;  console.log(warnings);} catch (err) {this.$message.error(err.message, err.warnings);console.log(err.message, err.warnings);} finally {this.loading = false;}},// el-dialog的@close方法 销毁流程图实例handleClose() {this.$emit("handleClose");if (this.bpmnViewer) {this.bpmnViewer.destroy();this.bpmnViewer = null;}},},
三、高亮节点
   const elementRegister = this.bpmnViewer.get("elementRegistry");const point = elementRegister.get(this.nodeId); // 根据节点id获取canvas.addMarker(point, "highlight"); // 给节点标记样式
javascript">  // 如果有scoped,就要加上层级选择器 才能添加上自定义样式.highlight .djs-visual > :nth-child(1) {stroke: green !important;stroke-width: 2.5px !important;fill: rgba(0, 80, 0, 0.4) !important;}

 

四、删除水印

找到node_modules/bpmn-js/lib/BaseViewer.js文件,将linkMarkup的样式改为visibility:'hidden'

不同版本文件可能写法不同,但方法相同:通过样式修改linkMarkup使其不可见。


http://www.ppmy.cn/embedded/139257.html

相关文章

VueDPlayer视频插件的使用

VueDPlayer 是一个基于 DPlayer 的 Vue 封装组件&#xff0c;DPlayer 是一个 HTML5 视频播放器&#xff0c;支持弹幕、视频倍速播放、视频预加载等功能。 以下是如何在 Vue.js 项目中使用 VueDPlayer 的步骤&#xff1a; 1.安装 VueDPlayer&#xff1a; 使用 npm 或 yarn 安装…

第九章:TDengine 如何修改root默认密码

TDengine 如何修改root默认密码 目标 掌握TDengine 中root默认密码的修改docker容器启动指定的密码是无效的TDengine docker启动密码 taosdataTDengine 是一个高性能的时间序列数据库,常用于物联网 (IoT) 和其他数据密集型应用。如果您正在使用 Docker 部署 TDengine 并希望修…

.NET 9 运行时中的新增功能

本文介绍了适用于 .NET 9 的 .NET 运行时中的新功能和性能改进。 文章目录 一、支持修剪的功能开关的属性模型二、UnsafeAccessorAttribute 支持泛型参数三、垃圾回收四、控制流实施技术.NET 安装搜索行为性能改进循环优化感应变量加宽Arm64 上的索引后寻址强度降低循环计数器可…

实验十三 生态安全评价

1 背景及目的 生态安全是生态系统完整性和健康性的整体反映&#xff0c;完整健康的生态系统具有调节气候净化污染、涵养水源、保持水土、防风固沙、减轻灾害、保护生物多样性等功能。维护生态安全对于人类生产、生活、健康及可持续发展至关重要。随着城市化进程的不断推进&…

除了电商平台,还有哪些网站适合进行数据爬取?

在数字化时代&#xff0c;数据的价值日益凸显&#xff0c;而网络爬虫技术成为获取数据的重要手段。除了电商平台&#xff0c;还有许多其他类型的网站适合进行数据爬取&#xff0c;以支持市场研究、数据分析、内容聚合等多种应用场景。本文将探讨除了电商平台外&#xff0c;还有…

self-host a private Docker registry

You can create a private Docker registry to serve as your own “Docker Hub” for internal use, which can be cost-effective and give you full control over your images. Setting up a self-hosted Docker registry is straightforward and can be hosted on your own…

CentOS 升级 gcc 版本

CentOS 升级 gcc 版本 1. 安装步骤 CentOS7 默认的 gcc 版本是4.8&#xff0c;有时候需要更高版本&#xff0c;这里介绍一下如何将 gcc 版本升级到 8.3.1 安装 centos-release-scl yum install centos-release-scl安装devtoolset&#xff0c;注意&#xff0c;如果想安装 9.* …

Linux登录指令last详解

引言 在Linux系统中&#xff0c;了解用户登录记录是系统管理和安全审计的重要任务之一。last指令作为Linux系统中用于检索和展示用户登录信息的工具&#xff0c;扮演着至关重要的角色。本文将详细介绍last指令的定义、架构、原理、企业应用以及常见的命令体系&#xff0c;帮助…