日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

vue項目中使用bpmn為節點添加顏色的方法

瀏覽:29日期:2023-01-23 10:08:06

內容概述

bpmn是比較方便的繪制流程圖的插件,官方demo https://github.com/bpmn-io/bpmn-js-examples

本文主要包括vue項目中bpmn使用實例、應用技巧、基本知識點總結和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下。

前情提要

上文我們已經實現了在外部更改節點名。此時又有新玩法:在流程圖中,根據節點狀態為其標記不同顏色。例如:已完成:黃色,正在進行:綠色,本次我們通過兩種方式來實現該需求。效果:

vue項目中使用bpmn為節點添加顏色的方法

方式1:modeling.setColor

modeling.setColor接受兩個參數:參數1:節點實例,可以是單個元素,也可是多個節點組成的數組,參數2:class類

let modeling = this.bpmnModeler.get(’modeling’);modeling.setColor(節點實例, { stroke: ’green’, fill: ’yellow’});

方式2:Overlay

個人理解,overlay是通過定位方式在元素正上方添加一層帶顏色的蒙板

const $overlayHtml = $(’<div class='highlight-overlay'>’).css({ width: shape.width, height: shape.height});overlays.add(節點id, { position: {top: 0, left: 0}, html: $overlayHtml});

highlight-overlay:css中聲明好的class類名

overlays.add將創建好的蒙板定位到指定節點位置,此時節點id就是目標節點的唯一身份!

注意事項

上述兩種方式均能實現為節點添加顏色。但方式2有一點副作用,如果此時你為節點注冊了點擊事件,在節點被點擊的時候要做某些處理。此時方式2會使節點點擊事件失效。

原因:方式2中,此時節點上方有一層蒙板,并且和節點等寬等高,相當于節點被蒙板完全覆蓋。所以點擊節點的時候,點擊的是蒙版,不是節點。

不要慌,有解決辦法!此時為蒙板注冊了點擊事件,將點擊節點要做的操作給蒙板也來一份,哈哈

import $ from ’jquery’; // 引入jquery$('.djs-container').on('click', '.djs-overlays', (e) => { const parentEle = e.target.parentElement.parentElement; const shapeId = parentEle.getAttribute(’data-container-id’); const temp = this.nodeList.filter( (item) => item.id === shapeId )[0]; // 此時temp就是蒙板下方的節點,要點擊節點做什么,此刻盡管拿去用 ........});

后續

上文代碼都是片段,特此附上完整代碼:老規矩:data中的chart變量流程圖xml文件數據,由于行數過多,附在了附件中(點我!點我),使用時,將附件內容復制過來,賦值給chart即可運行!

<template> <div class='containerBox'> <div id='container'></div> <div style='margin-left: 200px'>看我!我是點擊的節點名稱啊~ <span style='color: #eaae00'>{{nodeName}}</span> </div> </div></template><script> import BpmnModeler from ’bpmn-js/lib/Modeler’; import camundaExtension from ’./resources/camunda’; import {tempDetail, saveCanvas} from ’@api/processConfig’; import $ from ’jquery’; export default { name: ’index’, data() { return { containerEl: null, bpmnModeler: null, nodeName: ’’, nodeList: [], // chart變量流程圖xml文件數據,由于行數過多,附在了附件中,使用時,將附件整個賦值給chart即可 chart: ’’ }; }, mounted() { this.containerEl = document.getElementById(’container’); this.bpmnModeler = new BpmnModeler({ container: this.containerEl, moddleExtensions: {camunda: camundaExtension} }); this.showChart(); }, methods: { // 流程圖回顯 showChart() { this.bpmnModeler.importXML(this.chart, (err) => { if (!err) { this.addEventBusListener(); this.setNodeColor(); } }); }, setNodeColor() { // 目的:為第一個節點添加綠色,為第二個節點添加黃色 // 實現步驟:1、找到頁面里所有節點 const elementRegistry = this.bpmnModeler.get(’elementRegistry’); this.nodeList = elementRegistry.filter ( (item) => item.type === ’bpmn:UserTask’ || item.type === ’bpmn:ServiceTask’ ); // 此時得到的userTaskList 便是流程圖中所有的節點的集合 console.log(this.nodeList); // 步驟2 :為節點添加顏色 // 方式1 :modeling.setColor(參數1:節點,可以是單個元素實例,也可是多個節點組成的數組,參數2:class類); let modeling = this.bpmnModeler.get(’modeling’); modeling.setColor(this.nodeList[0], { stroke: ’green’, fill: ’yellow’ }); // 方式2 :添加蒙板 const overlays = this.bpmnModeler.get(’overlays’); const shape = elementRegistry.get(this.nodeList[1].id); if (shape) { const $overlayHtml = $(’<div class='highlight-overlay'>’).css({ width: shape.width, height: shape.height }); overlays.add(this.nodeList[1].id, { position: {top: 0, left: 0}, html: $overlayHtml }); } // 此方法為了解決方式2造成的節點點擊事件失效問題,如果采用方式1,可忽略此方法 this.overlayClick(); }, overlayClick() { $('.djs-container').on('click', '.djs-overlays', (e) => { const parentEle = e.target.parentElement.parentElement; const shapeId = parentEle.getAttribute(’data-container-id’); const temp = this.nodeList.filter( (item) => item.id === shapeId )[0]; this.nodeName = temp ? temp.businessObject.name : ’’; }); }, addEventBusListener() { const eventBus = this.bpmnModeler.get(’eventBus’); // 為節點注冊點擊事件,點擊節點,下方顯示點擊的節點名稱 eventBus.on(’element.click’, (e) => { const {element} = e; if (!element.parent) return; if (!e || element.type === ’bpmn:Process’) { return false; } else { this.nodeName = element.businessObject.name; } }); } } };</script><style lang='scss'> .containerBox { height: calc(100vh - 220px); position: relative; #container { height: calc(100% - 50px); } .highlight-overlay { background-color: green; opacity: 0.4; border-radius: 10px; } }</style>

到此這篇關于vue項目中使用bpmn為節點添加顏色的方法的文章就介紹到這了,更多相關vue bpmn節點顏色內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
今天的高清视频免费播放成人| 日韩中文影院| 99re国产精品| 欧美日韩激情在线一区二区三区| 日韩不卡在线| 国产aa精品| 国产福利片在线观看| 中文字幕人成乱码在线观看| 成年男女免费视频网站不卡| 日韩毛片视频| 久久久久久久久久久9不雅视频| 欧美不卡高清一区二区三区| 国产91精品对白在线播放| 蜜桃一区二区三区| 噜噜噜躁狠狠躁狠狠精品视频 | 9色精品在线| 噜噜噜躁狠狠躁狠狠精品视频 | 亚洲一区免费| 日韩在线成人| 国产精品2区| 国产乱码午夜在线视频| 欧洲一区二区三区精品| 日韩av福利| 久久精品国产99久久| 在线综合亚洲| 日韩国产欧美三级| 欧美精品不卡| 亚洲1234区| 99亚洲视频| 日韩精品一区二区三区av| 国产精品探花在线观看| 91视频一区| 欧美在线亚洲综合一区| 亚洲精品福利| 精品一级视频| 久久在线视频免费观看| 日韩精品一区二区三区中文在线 | 欧美亚洲免费| 福利视频一区| 一区在线免费观看| 91午夜精品| 精品视频一二| 伊人久久亚洲美女图片| 日韩福利视频网| 色在线中文字幕| 国产亚洲亚洲| 国产精品一区2区3区| av在线最新| 一区在线观看| 国产精品天堂蜜av在线播放| 亚洲精品国产嫩草在线观看| 久久国产99| 久久精品天堂| 黄色成人91| 久久av中文| 国产亚洲欧洲| 日韩av在线播放网址| 亚洲理论在线| 精品久久久久久久| 先锋亚洲精品| 91日韩在线| 日韩高清二区| 99久久亚洲精品| 亚洲欧洲日韩| 新版的欧美在线视频| 日本不卡高清视频| 久久一区二区三区电影| 国产精品香蕉| 久久亚洲风情| www.51av欧美视频| 日韩av中文字幕一区二区| 四虎884aa成人精品最新| 欧美片第1页综合| 999在线观看精品免费不卡网站| 久久99国产精品视频| 美女精品在线观看| 日韩影院二区| 国产精品99精品一区二区三区∴| 自由日本语亚洲人高潮| 麻豆成人在线观看| 日韩精品一二三| 日韩在线第七页| 国产精品白丝一区二区三区| 国产精品色网| 99久精品视频在线观看视频| 国产精品久久久久久久久免费高清 | 视频一区中文字幕国产| 国产 日韩 欧美 综合 一区| 涩涩涩久久久成人精品| 激情婷婷欧美| 日本精品黄色| 国产欧美日韩视频在线| 夜夜嗨一区二区三区| 蜜臀久久精品| 国产一区二区三区亚洲综合| 日韩av成人高清| 香蕉成人久久| 国产国产精品| 亚洲91视频| 成人精品动漫一区二区三区| 国产乱论精品| 日韩高清不卡一区二区| 亚洲乱亚洲高清| 亚洲成人日韩| 亚洲1234区| 国产欧洲在线| 久久久国产精品入口麻豆| 日韩av资源网| 午夜亚洲福利| 蜜桃视频在线观看一区二区| 国产精品91一区二区三区| 日本一区二区高清不卡| 国产精品宾馆| 国产精品s色| 亚州av日韩av| 五月亚洲婷婷 | 中文一区二区| 午夜av一区| 亚洲第一区色| 欧美福利专区| 久久影院一区| 欧美中文一区二区| 人人精品亚洲| 成人午夜国产| 一区二区三区四区在线看| 欧美va天堂| 亚洲一区二区三区四区五区午夜 | 亚洲免费精品| 亚洲精品一区二区妖精| 欧美另类专区| 国产精品97| 亚洲综合二区| 亚洲日韩视频| 日韩va欧美va亚洲va久久| 国产日韩视频在线| 国产亚洲一区| 欧美成人aaa| 国产麻豆精品久久| 美腿丝袜在线亚洲一区| 精品日产乱码久久久久久仙踪林| 精品国产乱码| 日韩国产一区二区| 欧美丝袜一区| 亚洲欧美日韩精品一区二区 | 欧美一区免费| 久久99精品久久久久久园产越南 | 丝袜国产日韩另类美女| 亚洲综合电影一区二区三区| 在线精品福利| 国产欧美激情| 你懂的国产精品| 日韩理论视频| 激情综合自拍| 亚洲精品乱码久久久久久蜜桃麻豆 | 国产99精品一区| 激情婷婷综合| 日韩精品一级二级 | 国产精品一级| 精品少妇av| 久久中文字幕av| 亚洲九九精品| 欧美另类中文字幕 | 中文字幕日本一区| 蜜桃一区二区三区在线| 国产精品片aa在线观看| 日韩av片子| 亚洲欧美日韩一区在线观看| 日韩av影院| 国产激情在线播放| 波多野结衣一区| 亚洲精品在线二区| 精品视频国内| 91久久黄色| 国产亚洲久久| 国产夫妻在线| 亚洲一区二区日韩| 美女免费视频一区| 欧洲毛片在线视频免费观看| 亚洲v天堂v手机在线| 免费在线亚洲欧美| 免费av一区二区三区四区| 欧美久久亚洲| 99精品在线免费在线观看| 亚洲精品国产精品粉嫩| 视频在线不卡免费观看| 日韩一区二区久久| 久久精品一区二区国产| 自由日本语亚洲人高潮| 国产精品调教| 偷拍欧美精品| 久久字幕精品一区| 亚洲综合欧美| 美女av一区| 五月精品视频| 国产精品玖玖玖在线资源| 亚洲福利专区| 国产日韩精品视频一区二区三区| 99国产精品免费视频观看| 日韩av成人高清| 亚洲大片在线|