文章目录
一、因为bpmn自带的camunda,所以需要适配activiti.json
import BpmnModeler from 'bpmn-js/lib/Modeler'
import PropertiesPanelModule from 'bpmn-js-properties-panel'
//上面两个是bpmn的
import PropertiesProviderModule from './properties-panel/provider/activiti' // bpmn的camunda配置提供改成了ActivitiPropertiesProvider
import ActivitiModdleDescriptor from './activiti' // 适配的json
import CustomControls from './customControls/' //CustomContextPad、CustomPalette、index
import CustomTranslate from './CustomTranslate' //翻译
mounted () {
const canvas = this.$refs.canvas
const CustomTranslateModule = {
translate: ['value', CustomTranslate]
};
this.bpmnModeler = new BpmnModeler({
container: canvas,
propertiesPanel: {
parent: '#properties'
},
additionalModules: [
PropertiesProviderModule,
PropertiesPanelModule,
CustomTranslateModule,
CustomControls
],
moddleExtensions: {
activiti: ActivitiModdleDescriptor
}
});
}
activiti.json
{
"name": "Activiti",
"uri": "http://activiti.org/bpmn",
"prefix": "activiti",
"xml": {
"tagAlias": "lowerCase"
},
"associations": [],
"types": [
{
"name": "Definitions",
"isAbstract": true,
"extends": [
"bpmn:Definitions"
],
"properties": [
{
"name": "diagramRelationId",
"isAttr": true,
"type": "String"
}
]
}
......
],
"emumerations": [ ]
}
二、完成后的xml
<?xml version="1.0" encoding="UTF-8"?>
<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:activiti="http://activiti.org/bpmn" id="sample-diagram" targetNamespace="http://activiti.org/bpmn" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd">
<bpmn2:process id="model_audit" name="model_audit" isExecutable="true">
<bpmn2:startEvent id="StartEvent_1" name="开始">
<bpmn2:outgoing>Flow_1p8y3br