From de75519c80f8ec4c3d1dcaf8baaabc8702a481ff Mon Sep 17 00:00:00 2001 From: zhanglc Date: Wed, 3 Dec 2025 16:54:46 +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?= 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/src/components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue b/src/components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue index 563fd4f9..7dad24aa 100644 --- a/src/components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue +++ b/src/components/bpmnProcessDesigner/package/penal/signal-message/SignalAndMessage.vue @@ -197,6 +197,8 @@ const addNewObject = () => { } } dialogVisible.value = false + // 触发建模器更新以保存更改 + saveChanges() initDataList() } @@ -214,6 +216,8 @@ const removeObject = (type, row) => { if (elementIndex !== -1) { rootElements.value.splice(elementIndex, 1) } + // 触发建模器更新以保存更改 + saveChanges() // 刷新列表 initDataList() message.success('移除成功') @@ -221,6 +225,39 @@ const removeObject = (type, row) => { .catch(() => console.info('操作取消')) } +// 触发建模器更新以保存更改 +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() })