From 274aa7da73b9a56d8c2f479c63800764cbd19e7c Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 7 Dec 2025 12:28:24 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E3=80=90bpm=E3=80=91bpmn=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8:=20=E6=B6=88=E6=81=AF=E4=B8=8E=E4=BF=A1?= =?UTF-8?q?=E5=8F=B7=E4=B8=8D=E8=83=BD=E4=BF=9D=E5=AD=98,=E5=AF=B9?= =?UTF-8?q?=E5=BA=94issure:#202=20#206=E3=80=90=E5=90=8C=E6=AD=A5=E8=87=AA?= =?UTF-8?q?=20vue3=20+=20element-plus=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../penal/signal-message/SignalAndMessage.vue | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/signal-message/SignalAndMessage.vue b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/signal-message/SignalAndMessage.vue index f9f813a9e..c05793c3f 100644 --- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/signal-message/SignalAndMessage.vue +++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/signal-message/SignalAndMessage.vue @@ -136,6 +136,8 @@ const addNewObject = () => { } } dialogVisible.value = false; + // 触发建模器更新以保存更改 + saveChanges(); initDataList(); }; @@ -155,6 +157,8 @@ const removeObject = (type: any, row: any) => { if (elementIndex !== -1) { rootElements.value.splice(elementIndex, 1); } + // 触发建模器更新以保存更改 + saveChanges(); // 刷新列表 initDataList(); message.success('移除成功'); @@ -165,6 +169,39 @@ const removeObject = (type: any, row: any) => { }); }; +// 触发建模器更新以保存更改 +const saveChanges = () => { + const modeler = bpmnInstances().modeler; + if (!modeler) return; + + try { + // 获取 canvas,通过它来触发图表的重新渲染 + const canvas = modeler.get('canvas'); + + // 获取根元素(Process) + const rootElement = canvas.getRootElement(); + + // 触发 changed 事件,通知建模器数据已更改 + const eventBus = modeler.get('eventBus'); + if (eventBus) { + eventBus.fire('root.added', { element: rootElement }); + eventBus.fire('elements.changed', { elements: [rootElement] }); + } + + // 标记建模器为已修改状态 + const commandStack = modeler.get('commandStack'); + if (commandStack && commandStack._stack) { + // 添加一个空命令以标记为已修改 + commandStack.execute('element.updateProperties', { + element: rootElement, + properties: {}, + }); + } + } catch (error) { + console.warn('保存更改时出错:', error); + } +}; + onMounted(() => { initDataList(); });