util.js
2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
const myCustomElements = ['bpmn:Task', 'bpmn:UserTask', 'bpmn:ServiceTask', 'bpmn:SendTask', 'bpmn:BusinessRuleTask', 'bpmn:ScriptTask',
'bpmn:ReceiveTask', 'bpmn:ManualTask', 'bpmn:StartEvent', 'bpmn:EndEvent', 'bpmn:CallActivity', 'bpmn:SubProcess',
"bpmn:ExclusiveGateway",
"bpmn:ParallelGateway",
"bpmn:InclusiveGateway",
"bpmn:EventBasedGateway",
"bpmn:Lane",
"bpmn:Participant"] // 自定义元素的类型
const customConfig = { // 自定义元素的配置
'bpmn:Task': {
'attr': { x: 0, y: 0, width: 100, height: 46 },
'name': "任务"
},
'bpmn:UserTask': {
'attr': { x: 0, y: 0, width: 100, height: 46 },
'name': "用户任务"
},
'bpmn:ServiceTask': {
'attr': { x: 0, y: 0, width: 100, height: 46 },
'name': "服务任务"
},
'bpmn:SendTask': {
'attr': { x: 0, y: 0, width: 100, height: 46 },
'name': "发送任务"
},
'bpmn:BusinessRuleTask': {
'attr': { x: 0, y: 0, width: 100, height: 46 },
'name': "业务规则任务"
},
'bpmn:ScriptTask': {
'attr': { x: 0, y: 0, width: 100, height: 46 },
'name': "脚本任务"
},
'bpmn:ReceiveTask': {
'attr': { x: 0, y: 0, width: 100, height: 46 },
'name': "接收任务"
},
'bpmn:ManualTask': {
'attr': { x: 0, y: 0, width: 100, height: 46 },
'name': "人工任务"
},
"bpmn:EndEvent": {
'attr': { x: 0, y: 0, width: 30, height: 30 },
'name': "结束"
},
"bpmn:StartEvent": {
'attr': { x: 0, y: 0, width: 30, height: 30 },
'name': "开始"
},
"bpmn:CallActivity": {
'name': "外部子流程"
},
"bpmn:SubProcess": {
'attr': { x: 0, y: 0, width: 350, height: 200 },
'name': "内部子流程"
},
"bpmn:ExclusiveGateway": {
'name': "条件网关"
},
"bpmn:ParallelGateway": {
'name': "网关"
},
"bpmn:InclusiveGateway": {
'name': "网关"
},
"bpmn:EventBasedGateway": {
'name': "网关"
},
"bpmn:Lane": {
'name': "泳道"
},
"bpmn:Participant": {
'name': "泳池"
}
}
const hasLabelElements = ['bpmn:StartEvent', 'bpmn:EndEvent'] // 一开始就有label标签的元素类型
function changeElementSize(element) {
let type = element.type;
if (myCustomElements.includes(type)) {
const { attr, name } = customConfig[type];
if (attr) {
element["width"] = attr.width; // 这里我是取了巧, 直接修改了元素的宽高
element["height"] = attr.height;
}
if (name && !element.businessObject.name) {
element.businessObject.name = name;
}
}
}
export { myCustomElements, customConfig, hasLabelElements, changeElementSize }