# bpmn-vue-temp
**Repository Path**: shifeipython/bpmn-vue-temp
## Basic Information
- **Project Name**: bpmn-vue-temp
- **Description**: No description available
- **Primary Language**: JavaScript
- **License**: Not specified
- **Default Branch**: dev
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-01-20
- **Last Updated**: 2025-01-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# bpmnjs+Vue3
这是基于 bpmnjs 和 vue3 的组件,实现流程图绘制和流程图解析功能
# 使用方法
```javascript
npm i bpmn-vue-temp -save
```
## 全局引入(支持按需引入)
```javascript
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");
```
# 工作流画布组件
## 使用方式
按需引入时组件名叫BpmnCanvas,全局引用时组件名为Bpmn-Vue
### 1.组件方式
```javascript
import { ref } from "vue";
import { BpmnCanvas } from "bpmn-vue-temp";
let bpmnRef = ref();
// 全局引入使用
```
### 2.自定义方式
```javascript
import { useBpmnCanvas } from "bpmn-vue-temp";
let bpmn = useBpmnCanvas();
bpmn.initModeler({
container: document.getElementById("bpmn"),
additionalModules:{},
moddleExtensions:{}
});
```
```javascript
/*
* bpmnID :string 画布ID
* isReadOnly :boolben 是否开启只读
* options : object 自定义配置
* operation : array 自定义操作,是一个操作数组,包含{label,icon,action}对象,目前自带有['导出XML','导入XML','导出SVG','放大','缩小','重置']
* */
```
## 组件对象和事件
```javascript
import { ref } from "vue";
import { BpmnVue } from "bpmn-vue-temp";
let bpmnRef = ref();
//通过ref获取可以获得当前画布的事件对象
function selectElement(info) {
//info中包含了businessObject:节点存储的业务对象,shapeType:节点类型
console.log(info);
}
```
## API
```javascript
/**
* options:{
* container:画布节点 选择器或dom元素
* additionalModules:{} 个性化配置
* moddleExtensions:{} 扩展moddle
* }
*/
initModeler(options);
//获取图中所有节点
getShapeAll()
//根据节点id获取节点对象
getShapeById(id: any)
//获取xml数据
getXML()
//更新节点数据
updateProperties(element: ModdleElement, properties: PropertiesMap)
//例子
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()
```