工作流引擎--vue3+bpmnjs

bpmnjs+Vue3

这是基于 bpmnjs 和 vue3 的组件,实现流程图绘制和流程图解析功能

使用方法

npm i bpmn-vue-temp -save

全局引入(支持按需引入)

import { createApp } from "vue";
import App from "./App.vue";
//引入样式
import "bpmn-vue-temp/lib/style.css";
//引入组件
import BpmnVueTemp from "bpmn-vue-temp";
//全局引入
createApp(App).use(BpmnVueTemp).mount("#app");

工作流画布组件

使用方法

1.组件方式

import { ref } from "vue";
import { BpmnVue } from "bpmn-vue-temp";
let bpmnRef = ref();

<template>
  <div class="box" id="bpmn">
    <Bpmn-Vue :bpmnID="'test'" ref="bpmnRef" @select:element="selectElement" />
  </div>
</template>

2.自定义方式

import { useBpmn } from "bpmn-vue-temp";

let bpmn = useBpmn();
bpmn.initModeler({
  container: document.getElementById("bpmn"),
  additionalModules:{},
  moddleExtensions:{}
});
/*
 * bpmnID :string 画布ID
 * isReadOnly :boolben 是否开启只读
 * options : object 自定义配置
 * operation : array 自定义操作,是一个操作数组,包含{label,icon,action}对象,目前自带有['导出XML','导入XML','导出SVG','放大','缩小','重置']
 * */

组件对象和事件

import { ref } from "vue";
import { BpmnVue } from "bpmn-vue-temp";
let bpmnRef = ref();
//通过ref获取可以获得当前画布的事件对象

function selectElement(info) {
  //info中包含了businessObject:节点存储的业务对象,shapeType:节点类型
  console.log(info);
}

<template>
  <div class="box" id="bpmn">
    <Bpmn-Vue bpmnID="test" ref="bpmnRef" @select:element="selectElement" />
  </div>
</template>

API

/**
 * options:{
 *   container:画布节点 选择器或dom元素
 *   additionalModules:{} 个性化配置
 *   moddleExtensions:{} 扩展moddle
 * }
 */
initModeler(options);

//获取图中所有节点
getShapeAll()
//根据节点id获取节点对象
getShapeById(id: any)

//获取xml数据
getXML()

//更新节点数据
updateProperties(element: ModdleElement, properties: PropertiesMap<any>)
//例子
function textareaChange() {
    const moddle = state.bpmnStore.getModdle();
    let conditionExpression = moddle.create('bpmn:FormalExpression', {
      body: '哈哈哈',
    });
    state.bpmnStore.updateProperties(toRaw(state.bpmnStore.getActiveElement().element), {
      conditionExpression,
    });
}

//导入xml生成数据
importXML(string: string)

//导出xml
exportXML()

//导出SVG
exportSVG()

//重置数据
resetData()

#结束

初版,功能简单,后续再更新迭代,另外目前不带右侧弹出工具栏,如果有点用请帮我点小星星!!! git地址

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值