1
1
<template >
2
- <div class =" app-container" >
3
- <!-- 流程设计器,负责绘制流程等 -->
4
- <!-- <myProcessDesigner -->
5
- <my-process-designer
6
- :key =" `designer-${reloadIndex}`"
7
- v-if =" xmlString !== undefined"
8
- v-model =" xmlString"
9
- :value =" xmlString"
10
- v-bind =" controlForm"
11
- keyboard
12
- ref =" processDesigner"
13
- @init-finished =" initModeler"
14
- :additionalModel =" controlForm.additionalModel"
15
- @save =" save"
16
- />
17
- <!-- 流程属性器,负责编辑每个流程节点的属性 -->
18
- <!-- <MyProcessPalette -->
19
- <my-properties-panel
20
- :key =" `penal-${reloadIndex}`"
21
- :bpmnModeler =" modeler"
22
- :prefix =" controlForm.prefix"
23
- class =" process-panel"
24
- :model =" model"
25
- />
26
- </div >
2
+ <!-- 流程设计器,负责绘制流程等 -->
3
+ <my-process-designer
4
+ key =" designer"
5
+ v-if =" xmlString !== undefined"
6
+ v-model =" xmlString"
7
+ :value =" xmlString"
8
+ v-bind =" controlForm"
9
+ keyboard
10
+ ref =" processDesigner"
11
+ @init-finished =" initModeler"
12
+ :additionalModel =" controlForm.additionalModel"
13
+ @save =" save"
14
+ />
15
+ <!-- 流程属性器,负责编辑每个流程节点的属性 -->
16
+ <my-properties-panel
17
+ key =" penal"
18
+ :bpmnModeler =" modeler"
19
+ :prefix =" controlForm.prefix"
20
+ class =" process-panel"
21
+ :model =" model"
22
+ />
27
23
</template >
28
24
29
25
<script setup lang="ts">
30
- // import { translations } from '@/components/bpmnProcessDesigner/src/translations'
31
26
// 自定义元素选中时的弹出菜单(修改 默认任务 为 用户任务)
32
27
import CustomContentPadProvider from ' @/components/bpmnProcessDesigner/package/designer/plugins/content-pad'
33
28
// 自定义左侧菜单(修改 默认任务 为 用户任务)
34
29
import CustomPaletteProvider from ' @/components/bpmnProcessDesigner/package/designer/plugins/palette'
35
- // import xmlObj2json from "./utils/xml2json";
36
- // import myProcessDesigner from '@/components/bpmnProcessDesigner/package/designer/ProcessDesigner.vue'
37
- // import MyProcessPalette from '@/components/bpmnProcessDesigner/package/palette/ProcessPalette.vue'
38
- import { createModelApi , getModelApi , updateModelApi , ModelVO } from ' @/api/bpm/model'
30
+ import * as ModelApi from ' @/api/bpm/model'
39
31
40
- const router = useRouter ()
41
- const message = useMessage ()
42
-
43
- // 自定义侧边栏
44
- // import MyProcessPanel from "../package/process-panel/ProcessPanel";
32
+ const router = useRouter () // 路由
33
+ const { query } = useRoute () // 路由的查询
34
+ const message = useMessage () // 国际化
45
35
46
36
const xmlString = ref (undefined ) // BPMN XML
47
37
const modeler = ref (null )
48
- const reloadIndex = ref (0 )
49
- // const controlDrawerVisible = ref(false)
50
- // const translationsSelf = translations
51
38
const controlForm = ref ({
52
39
simulation: true ,
53
40
labelEditing: false ,
@@ -56,128 +43,55 @@ const controlForm = ref({
56
43
headerButtonSize: ' mini' ,
57
44
additionalModel: [CustomContentPadProvider , CustomPaletteProvider ]
58
45
})
59
- // const addis = ref({
60
- // CustomContentPadProvider,
61
- // CustomPaletteProvider
62
- // })
63
- // 流程模型的信息
64
- const model = ref <ModelVO >()
65
- onMounted (() => {
66
- // 如果 modelId 非空,说明是修改流程模型
67
- const modelId = router .currentRoute .value .query && router .currentRoute .value .query .modelId
68
- console .log (modelId , ' modelId' )
69
- if (modelId ) {
70
- // let data = '4b4909d8-97e7-11ec-8e20-862bc1a4a054'
71
- getModelApi (modelId as unknown as number ).then ((data ) => {
72
- console .log (data , ' response' )
73
- xmlString .value = data .bpmnXml
74
- model .value = {
75
- ... data ,
76
- bpmnXml: undefined // 清空 bpmnXml 属性
77
- }
78
- // this.controlForm.processId = data.key
79
-
80
- // xmlString.value =
81
- // '<?xml version="1.0" encoding="UTF-8"?>\n<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" id="diagram_Process_1645980650311" targetNamespace="http://activiti.org/bpmn"><bpmn2:process id="flowable_01" name="flowable测试" isExecutable="true"><bpmn2:startEvent id="Event_1iruxim"><bpmn2:outgoing>Flow_0804gmo</bpmn2:outgoing></bpmn2:startEvent><bpmn2:userTask id="task01" name="task01"><bpmn2:incoming>Flow_0804gmo</bpmn2:incoming><bpmn2:outgoing>Flow_0cx479x</bpmn2:outgoing></bpmn2:userTask><bpmn2:sequenceFlow id="Flow_0804gmo" sourceRef="Event_1iruxim" targetRef="task01" /><bpmn2:endEvent id="Event_1mdsccz"><bpmn2:incoming>Flow_0cx479x</bpmn2:incoming></bpmn2:endEvent><bpmn2:sequenceFlow id="Flow_0cx479x" sourceRef="task01" targetRef="Event_1mdsccz" /></bpmn2:process><bpmndi:BPMNDiagram id="BPMNDiagram_1"><bpmndi:BPMNPlane id="flowable_01_di" bpmnElement="flowable_01"><bpmndi:BPMNEdge id="Flow_0cx479x_di" bpmnElement="Flow_0cx479x"><di:waypoint x="440" y="350" /><di:waypoint x="492" y="350" /></bpmndi:BPMNEdge><bpmndi:BPMNEdge id="Flow_0804gmo_di" bpmnElement="Flow_0804gmo"><di:waypoint x="288" y="350" /><di:waypoint x="340" y="350" /></bpmndi:BPMNEdge><bpmndi:BPMNShape id="Event_1iruxim_di" bpmnElement="Event_1iruxim"><dc:Bounds x="252" y="332" width="36" height="36" /></bpmndi:BPMNShape><bpmndi:BPMNShape id="task01_di" bpmnElement="task01"><dc:Bounds x="340" y="310" width="100" height="80" /></bpmndi:BPMNShape><bpmndi:BPMNShape id="Event_1mdsccz_di" bpmnElement="Event_1mdsccz"><dc:Bounds x="492" y="332" width="36" height="36" /></bpmndi:BPMNShape></bpmndi:BPMNPlane></bpmndi:BPMNDiagram></bpmn2:definitions>'
46
+ const model = ref <ModelApi .ModelVO >() // 流程模型的信息
82
47
83
- // model.value = {
84
- // key: 'flowable_01',
85
- // name: 'flowable测试',
86
- // description: 'ooxx',
87
- // category: '1',
88
- // formType: 10,
89
- // formId: 11,
90
- // formCustomCreatePath: null,
91
- // formCustomViewPath: null,
92
- // id: '4b4909d8-97e7-11ec-8e20-862bc1a4a054',
93
- // createTime: 1645978019795,
94
- // bpmnXml: undefined // 清空 bpmnXml 属性
95
- // }
96
- // console.log(modeler.value, 'modeler11111111')
97
- })
98
- }
99
- })
48
+ /** 初始化 modeler */
100
49
const initModeler = (item ) => {
101
50
setTimeout (() => {
102
51
modeler .value = item
103
- console .log (item , ' initModeler方法modeler' )
104
- console .log (modeler .value , ' initModeler方法modeler' )
105
- // controlForm.value.prefix = '2222'
106
52
}, 10 )
107
53
}
108
54
109
- const save = (bpmnXml ) => {
110
- const data: ModelVO = {
111
- ... (model .value ?? ({} as ModelVO )),
55
+ /** 添加/修改模型 */
56
+ const save = async (bpmnXml ) => {
57
+ const data = {
58
+ ... model .value ,
112
59
bpmnXml: bpmnXml // bpmnXml 只是初始化流程图,后续修改无法通过它获得
113
- }
114
- console .log (data , ' data' )
115
-
116
- // 修改的提交
60
+ } as unknown as ModelApi .ModelVO
61
+ // 提交
117
62
if (data .id ) {
118
- updateModelApi (data ).then ((response ) => {
119
- console .log (response , ' response' )
120
- message .success (' 修改成功' )
121
- // 跳转回去
122
- close ()
123
- })
124
- return
63
+ await ModelApi .updateModelApi (data )
64
+ message .success (' 修改成功' )
65
+ } else {
66
+ await ModelApi .createModelApi (data )
67
+ message .success (' 新增成功' )
125
68
}
126
- // 添加的提交
127
- createModelApi (data ).then ((response ) => {
128
- console .log (response , ' response1' )
129
- message .success (' 保存成功' )
130
- // 跳转回去
131
- close ()
132
- })
69
+ // 跳转回去
70
+ close ()
133
71
}
72
+
134
73
/** 关闭按钮 */
135
74
const close = () => {
136
75
router .push ({ path: ' /bpm/manager/model' })
137
76
}
138
- </script >
139
77
140
- <style lang="scss">
141
- // body {
142
- // overflow: hidden;
143
- // margin: 0;
144
- // box-sizing: border-box;
145
- // }
146
- // .app {
147
- // width: 100%;
148
- // height: 100%;
149
- // box-sizing: border-box;
150
- // display: inline-grid;
151
- // grid-template-columns: 100px auto max-content;
152
- // }
153
- .demo-control-bar {
154
- position : fixed ;
155
- right : 8px ;
156
- bottom : 8px ;
157
- z-index : 1 ;
158
- .open-control-dialog {
159
- width : 48px ;
160
- height : 48px ;
161
- display : flex ;
162
- align-items : center ;
163
- justify-content : center ;
164
- border-radius : 4px ;
165
- font-size : 32px ;
166
- background : rgba (64 , 158 , 255 , 1 );
167
- color : #ffffff ;
168
- cursor : pointer ;
78
+ /** 初始化 */
79
+ onMounted (async () => {
80
+ const modelId = query .modelId as unknown as number
81
+ if (! modelId ) {
82
+ message .error (' 缺少模型 modelId 编号' )
83
+ return
169
84
}
170
- }
171
-
172
- // TODO 芋艿:去掉多余的 faq
173
- // .info-tip {
174
- // position: fixed;
175
- // top: 40px;
176
- // right: 500px;
177
- // z-index: 10;
178
- // color: #999999;
179
- // }
180
-
85
+ // 查询模型
86
+ const data = await ModelApi .getModel (modelId )
87
+ xmlString .value = data .bpmnXml
88
+ model .value = {
89
+ ... data ,
90
+ bpmnXml: undefined // 清空 bpmnXml 属性
91
+ }
92
+ })
93
+ </script >
94
+ <style lang="scss">
181
95
.control-form {
182
96
.el-radio {
183
97
width : 100% ;
0 commit comments