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

您的位置:首頁技術(shù)文章
文章詳情頁

vue項(xiàng)目中使用bpmn為節(jié)點(diǎn)添加顏色的方法

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

內(nèi)容概述

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

本文主要包括vue項(xiàng)目中bpmn使用實(shí)例、應(yīng)用技巧、基本知識點(diǎn)總結(jié)和需要注意事項(xiàng),具有一定的參考價值,需要的朋友可以參考一下。

前情提要

上文我們已經(jīng)實(shí)現(xiàn)了在外部更改節(jié)點(diǎn)名。此時又有新玩法:在流程圖中,根據(jù)節(jié)點(diǎn)狀態(tài)為其標(biāo)記不同顏色。例如:已完成:黃色,正在進(jìn)行:綠色,本次我們通過兩種方式來實(shí)現(xiàn)該需求。效果:

vue項(xiàng)目中使用bpmn為節(jié)點(diǎn)添加顏色的方法

方式1:modeling.setColor

modeling.setColor接受兩個參數(shù):參數(shù)1:節(jié)點(diǎn)實(shí)例,可以是單個元素,也可是多個節(jié)點(diǎn)組成的數(shù)組,參數(shù)2:class類

let modeling = this.bpmnModeler.get(’modeling’);modeling.setColor(節(jié)點(diǎn)實(shí)例, { stroke: ’green’, fill: ’yellow’});

方式2:Overlay

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

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

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

overlays.add將創(chuàng)建好的蒙板定位到指定節(jié)點(diǎn)位置,此時節(jié)點(diǎn)id就是目標(biāo)節(jié)點(diǎn)的唯一身份!

注意事項(xiàng)

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

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

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

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就是蒙板下方的節(jié)點(diǎn),要點(diǎn)擊節(jié)點(diǎn)做什么,此刻盡管拿去用 ........});

后續(xù)

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

<template> <div class='containerBox'> <div id='container'></div> <div style='margin-left: 200px'>看我!我是點(diǎn)擊的節(jié)點(diǎn)名稱啊~ <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文件數(shù)據(jù),由于行數(shù)過多,附在了附件中,使用時,將附件整個賦值給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() { // 目的:為第一個節(jié)點(diǎn)添加綠色,為第二個節(jié)點(diǎn)添加黃色 // 實(shí)現(xiàn)步驟:1、找到頁面里所有節(jié)點(diǎn) const elementRegistry = this.bpmnModeler.get(’elementRegistry’); this.nodeList = elementRegistry.filter ( (item) => item.type === ’bpmn:UserTask’ || item.type === ’bpmn:ServiceTask’ ); // 此時得到的userTaskList 便是流程圖中所有的節(jié)點(diǎn)的集合 console.log(this.nodeList); // 步驟2 :為節(jié)點(diǎn)添加顏色 // 方式1 :modeling.setColor(參數(shù)1:節(jié)點(diǎn),可以是單個元素實(shí)例,也可是多個節(jié)點(diǎn)組成的數(shù)組,參數(shù)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造成的節(jié)點(diǎn)點(diǎn)擊事件失效問題,如果采用方式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’); // 為節(jié)點(diǎn)注冊點(diǎn)擊事件,點(diǎn)擊節(jié)點(diǎn),下方顯示點(diǎn)擊的節(jié)點(diǎn)名稱 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>

到此這篇關(guān)于vue項(xiàng)目中使用bpmn為節(jié)點(diǎn)添加顏色的方法的文章就介紹到這了,更多相關(guān)vue bpmn節(jié)點(diǎn)顏色內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Vue
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产日韩一区二区三区在线| 精品视频一区二区三区四区五区 | 亚洲欧美伊人| 精品午夜视频| 久久久久国产精品一区二区| 在线亚洲激情| 国产一区成人| 日本成人在线一区| 日韩亚洲精品在线观看| 亚洲人www| 日韩在线黄色| 国产日韩精品视频一区二区三区| 国产日韩一区二区三区在线播放| 久久国产人妖系列| 精品美女视频 | 激情婷婷亚洲| 免费人成黄页网站在线一区二区| 日韩精品久久久久久| 欧美激情麻豆| 久久久影院免费| 日韩精品一区第一页| 老司机精品久久| 日韩一区二区三区精品视频第3页 日韩一区二区三区免费视频 | 国产精品午夜一区二区三区| 日韩av在线播放网址| 激情五月综合网| 91精品尤物| 麻豆精品视频在线| 亚洲精品一区二区在线看| 日韩在线视频一区二区三区| 欧美国产另类| 亚洲一区二区日韩| 首页国产精品| 国产精品xxx| 国产亚洲人成a在线v网站| 久久香蕉精品香蕉| 亚洲成人国产| 香蕉成人av| 综合国产视频| 久久av影视| 日韩1区在线| 欧美日韩一二| 国产一区一一区高清不卡| 精品国产鲁一鲁****| 精品视频国内| 欧美午夜不卡| 国产乱码精品一区二区亚洲| 国产一区一一区高清不卡| 麻豆传媒一区二区三区| 国产在线视频欧美一区| 丝袜美腿一区| 日韩影院免费视频| 国产精品xxx在线观看| 久久高清一区| 欧美理论视频| 欧美美女一区| 女主播福利一区| 精品国产成人| 精品久久久久中文字幕小说| 国产亚洲欧美日韩在线观看一区二区| 久久国产精品亚洲77777| 欧美日韩精品一本二本三本| 国产综合激情| 国产视频一区免费看| 巨乳诱惑日韩免费av| 日韩中文字幕麻豆| 中文字幕一区二区三区四区久久| 在线视频观看日韩| 亚洲精品一区二区在线看| 日韩视频二区| 午夜视频一区二区在线观看| 日本不卡高清| 亚洲日韩中文字幕一区| 日本不卡视频在线观看| 国产精品亚洲片在线播放| 成人在线免费观看91| 日韩欧美不卡| 亚洲精品电影| 欧美日本不卡| 欧美日韩精品一区二区视频| 亚洲精品美女| av中文资源在线资源免费观看| 蜜桃国内精品久久久久软件9| 中文字幕一区二区av| 麻豆精品在线播放| 99视频一区| 韩国女主播一区二区三区| 99久久亚洲精品蜜臀| 91综合久久爱com| 久久精品高清| 美女久久99| 免费人成精品欧美精品| 98精品久久久久久久| 日韩专区欧美专区| 深夜视频一区二区| 国产日韩中文在线中文字幕 | 久久久久久久欧美精品| 国产精品呻吟| 久久av影院| 国产欧美一区二区三区国产幕精品 | 欧美亚洲一区二区三区| 久久国产成人午夜av影院宅| 国产日产精品_国产精品毛片 | 国产精品黄网站| 蜜臀久久99精品久久久久久9| 成人av二区| 99久久亚洲精品| 91精品91| 欧产日产国产精品视频| 麻豆极品一区二区三区| 久久国产三级精品| 国产麻豆一区二区三区| 日韩av中文字幕一区| 日韩福利视频一区| 麻豆精品蜜桃视频网站| 粉嫩av一区二区三区四区五区| 狠狠久久伊人中文字幕| 高清一区二区三区av| 超碰在线99| 欧美69视频| 蜜桃av一区二区三区电影| 亚欧洲精品视频在线观看| 亚洲毛片视频| 亚洲午夜久久| 国产精品天堂蜜av在线播放| 欧美激情视频一区二区三区在线播放| 国产精品一区二区三区www | 91亚洲人成网污www| 日韩欧美一区免费| 久久精品高清| 国产日产一区| 久久久国产精品一区二区中文| 亚洲女同一区| 国产精品一在线观看| 秋霞国产精品| 日本成人精品| 麻豆视频在线观看免费网站黄 | 在线亚洲免费| 国产精品99精品一区二区三区∴ | 亚洲欧美日本日韩| 91伊人久久| 999精品色在线播放| 日韩高清电影一区| 日韩在线观看不卡| 欧美亚洲三级| 免费欧美一区| 天堂俺去俺来也www久久婷婷| 国产精品mv在线观看| 亚洲乱码一区| 欧美综合精品| 国产亚洲高清一区| 色综合五月天| 国产精品中文| 五月亚洲婷婷 | 男人的天堂久久精品| 久草免费在线视频| 欧美午夜网站| 久久国产精品亚洲77777| 久久黄色影院| a日韩av网址| 成人台湾亚洲精品一区二区| 欧美精品中文字幕亚洲专区| 丝袜亚洲精品中文字幕一区| 欧美不卡高清一区二区三区| 久久精品一本| 另类小说一区二区三区| 久久国内精品自在自线400部| 中文字幕视频精品一区二区三区| 激情久久五月| 99成人在线| 99riav国产精品| 久久久久中文| 欧洲亚洲一区二区三区| 在线一区av| 久久激情一区| 在线成人直播| 久久亚洲一区| 日本午夜精品久久久久| 日韩一二三区在线观看| 欧美精品羞羞答答| 日韩精品中文字幕第1页| 久久精品午夜| 国产精品入口久久| 欧美在线不卡| 国产免费久久| 国产精品一区二区三区美女| 亚洲精品大片| 亚洲色图国产| 欧美亚洲三区| 国产精品xvideos88| 久久99久久人婷婷精品综合| 国产日韩欧美一区二区三区 | 欧美国产亚洲精品| 免费在线欧美黄色| 国产精品乱战久久久| 国产精品sss在线观看av| 麻豆精品久久久| 人在线成免费视频| 国产精品99一区二区三| 五月激情久久|