From 8d490a939099447d788c165b0dec6af1be004ff6 Mon Sep 17 00:00:00 2001 From: "Mr.Guo" Date: Wed, 8 Jan 2025 17:15:56 +0000 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E4=B8=AD=E5=B8=B8=E8=A7=84=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=97=A0=E2=80=9C=E8=8A=82=E7=82=B9=E6=8F=8F=E8=BF=B0?= =?UTF-8?q?=E2=80=9D=E4=B8=94=E2=80=9C=E8=8A=82=E7=82=B9=E6=8F=8F=E8=BF=B0?= =?UTF-8?q?=E2=80=9D=E6=97=A0=E6=B3=95=E4=BF=AE=E6=94=B9=E3=80=81=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mr.Guo --- .../components/Process/panel/commonPanel.vue | 56 +++++++++++++++++-- 1 file changed, 51 insertions(+), 5 deletions(-) diff --git a/ruoyi-ui/src/components/Process/panel/commonPanel.vue b/ruoyi-ui/src/components/Process/panel/commonPanel.vue index a7f0cb99..888dff76 100755 --- a/ruoyi-ui/src/components/Process/panel/commonPanel.vue +++ b/ruoyi-ui/src/components/Process/panel/commonPanel.vue @@ -7,6 +7,7 @@ + @@ -69,16 +75,56 @@ export default { }, created() { - }, methods: { resetTaskForm() { - this.bpmnFormData = JSON.parse(JSON.stringify(this.modelerStore.element.businessObject)); + // this.bpmnFormData = JSON.parse(JSON.stringify(this.modelerStore.element.businessObject)); + this.bpmnFormData = Object.assign({}, this.modelerStore.element.businessObject); + + // 使用 $set 确保 documentationValue 是响应式的 + this.$set(this.bpmnFormData, 'documentationValue', this.modelerStore.element.businessObject.documentation?.[0]?.text || ''); }, updateElementTask(key) { const taskAttr = Object.create(null); taskAttr[key] = this.bpmnFormData[key] || null; this.modelerStore.modeling.updateProperties(this.modelerStore.element, taskAttr); + }, + updateDocumentation() { + // 确保 modelerStore 是 BPMN.js 的 Modeler 实例 + const modeler = this.modelerStore.modeler; // 获取实际的 modeler 实例 + const moddle = modeler.get('moddle'); // 通过 modeler 获取 moddle + const modeling = modeler.get('modeling'); // 通过 modeler 获取 modeling + + // 创建新的文档对象 + const documentation = moddle.create('bpmn:Documentation', { + text: this.bpmnFormData.documentationValue + }); + + // 获取当前元素的扩展元素 + let extensionElements = this.modelerStore.element.businessObject.extensionElements; + + if (!extensionElements) { + // 如果没有扩展元素,创建一个新的 + extensionElements = moddle.create('bpmn:ExtensionElements', { + values: [] + }); + } + + // 更新文档 + modeling.updateProperties(this.modelerStore.element, { + documentation: [documentation], + extensionElements: extensionElements + }); + + // 强制更新模型 + this.modelerStore.modeler.get('commandStack').execute('element.updateProperties', { + element: this.modelerStore.element, + properties: { + documentation: [documentation] + } + }); + + this.$emit('save'); } } }