2024-08-14 15:17:51 +08:00

163 lines
4.1 KiB
JavaScript

import inherits from 'inherits';
//import layer from 'vue-layer';
//import Vue from 'vue';
//require("layui-layer");
import {
assign
} from 'min-dash';
import ContextPadProvider from 'bpmn-js/lib/features/context-pad/ContextPadProvider';
import {
bind
} from 'min-dash';
//import { appendFile } from 'fs';
/**上下文的什么鬼,actions代表每个事件,可以在这更改事件的属性,例如给title添加转换方法 */
export default function CustomContextPadProvider(injector, connect, translate) {
injector.invoke(ContextPadProvider, this);
var cached = bind(this.getContextPadEntries, this);
//console.log(this);
//console.log(elementFactory);
this.getContextPadEntries = function (element) {
// console.log(ContextPadProvider);
//console.log(this);
var actions = cached(element);
var businessObject = element.businessObject;
// delete actions['Append TextAnnotation']
//console.log(actions);
if (actions['append.intermediate-event']) {
delete actions['append.intermediate-event']
}
if (!(/bpmn:.*Task/.test(businessObject.$type))) {
delete actions['replace']
}
if (actions['append.end-event']) {
//delete actions['append.end-event'];
}
if (actions['append.gateway']) {
delete actions['append.gateway'];
}
if (actions['append.append-user-task']) {
delete actions['append.append-user-task'];
}
if (actions['replace']) {
delete actions['replace'];
}
if (actions['append.append-task']) {
delete actions['append.append-task']
actions['append.append-user-task'] = appendAction(this, 'bpmn:UserTask', 'bpmn-icon-user-task');
}
/*
actions['aaDialog'] = {
group: 'edit',
className: "el-icon-plus",
title: "弹框",
action: {
//dragstart: function (){alert(111)},
click: function (){
/*layer.open({
type:1,
content:'十几块了广阔的拉升',
});
//layer();
//let $layer = layer(Vue);
//console.log();
layer.open({
type:1,
title: '在线调试'
,content: '可以填写任意的layer代码'
});
},
}
};*/
for (let key in actions) {
actions[key].title = translate(actions[key].title);
if (key == 'delete') {
actions[key].group = 'f';
actions["4"] = actions[key];
delete actions[key];
}
if (key == 'append.text-annotation') {
actions[key].group = 'd';
actions["2"] = actions[key];
delete actions[key];
}
if (key == 'connect') {
actions[key].group = 'a';
actions["1"] = actions[key];
delete actions[key];
}
}
/*
'append.append-task': appendAction(
'bpmn:Task',
'bpmn-icon-task'
),
if(actions['replace']){
delete actions['replace']
}
if(isAny(businessObject, [ 'bpmn:StartEvent'])){
console.log(actions);
delete actions['append.intermediate-event']
console.log(actions);
}*/
//console.log(actions['replace'].action.click);
return actions;
};
}
inherits(CustomContextPadProvider, ContextPadProvider);
CustomContextPadProvider.$inject = [
'injector',
'connect',
'translate'
];
function appendAction(ContextPadProvider, type, className, title, options) {
if (typeof title !== 'string') {
options = title;
title = ContextPadProvider._translate('Append {type}', {
type: type.replace(/^bpmn:/, '')
});
}
function appendStart(event, element) {
var shape = this._elementFactory.createShape(assign({
type: type
}, options));
ContextPadProvider._create.start(event, shape, element);
}
var append = ContextPadProvider._autoPlace ? function (event, element) {
var shape = ContextPadProvider._elementFactory.createShape(assign({
type: type
}, options));
ContextPadProvider._autoPlace.append(element, shape);
} : appendStart;
return {
group: 'model',
className: className,
title: title,
action: {
dragstart: appendStart,
click: append
}
};
}