ruoyi-vue-nocode/ruoyi-ui/ruoyi-bpmnjs/resources/customControls/CustomContextPad.js
2022-08-11 16:10:41 +08:00

76 lines
2.1 KiB
JavaScript

export default class CustomContextPad {
constructor(config, contextPad, create, elementFactory, injector, translate) {
this.create = create;
this.elementFactory = elementFactory;
this.translate = translate;
//自动摆放位置
if (config.autoPlace !== false) {
this.autoPlace = injector.get('autoPlace', false);
}
//注册工具
contextPad.registerProvider(this);
}
getContextPadEntries(element) {
const {
autoPlace,
create,
elementFactory,
translate
} = this;
function appendUserTask(event, element) {
if (autoPlace) {
const shape = elementFactory.createShape({ type: 'bpmn:UserTask' });
autoPlace.append(element, shape);
} else {
appendUserTaskStart(event, element);
}
}
function appendUserTaskStart(event) {
const shape = elementFactory.createShape({ type: 'bpmn:UserTask' });
create.start(event, shape, element);
}
function appendCallActivityStart(event) {
const shape = elementFactory.createShape({ type: 'bpmn:CallActivity' });
create.start(event, shape, element);
}
function appendCallActivity(event, element) {
if (autoPlace) {
const shape = elementFactory.createShape({ type: 'bpmn:CallActivity' });
autoPlace.append(element, shape);
} else {
appendCallActivityStart(event, element);
}
}
return {
'append.user-task': {
group: 'model',
className: 'bpmn-icon-user-task',
title: translate('Append ServiceTask'),
action: {
click: appendUserTask,
dragstart: appendUserTaskStart
}
},
'append.call-activity':{
group: 'model',
className: 'bpmn-icon-call-activity',
title: translate('Append CallActivity'),
action: {
click: appendCallActivity,
dragstart: appendCallActivityStart
}
}
};
}
}
CustomContextPad.$inject = [
'config',
'contextPad',
'create',
'elementFactory',
'injector',
'translate'
];