From 6b3de50c69f329fde8e46424460d3753657bbcc4 Mon Sep 17 00:00:00 2001 From: duxz Date: Thu, 25 May 2023 15:34:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A4=84=E7=90=86=20window.bpmnInstance?= =?UTF-8?q?s=20=E6=9C=89=E6=97=B6=E5=80=99=E4=B8=BA=20undefined=20?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../package/penal/PropertiesPanel.vue | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue b/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue index 74d8b00a..17d0773e 100644 --- a/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue +++ b/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue @@ -110,18 +110,18 @@ const timer = ref() provide('prefix', props.prefix) provide('width', props.width) const bpmnInstances = () => (window as any)?.bpmnInstances -const initModels = () => { - // console.log(props, 'props') - // console.log(props.bpmnModeler, 'sakdjjaskdsajdkasdjkadsjk') - // 初始化 modeler 以及其他 moddle - // nextTick(() => { - if (!props.bpmnModeler) { + +// 监听 props.bpmnModeler 然后 initModels +const unwatchBpmn = watch( + () => props.bpmnModeler, + () => { // 避免加载时 流程图 并未加载完成 - timer.value = setTimeout(() => initModels(), 10) - return - } - if (timer.value) { - clearTimeout(timer.value) + if (!props.bpmnModeler) { + console.log('缺少props.bpmnModeler') + return + } + + console.log('props.bpmnModeler 有值了!!!') const w = window as any w.bpmnInstances = { modeler: props.bpmnModeler, @@ -134,12 +134,16 @@ const initModels = () => { replace: props.bpmnModeler.get('replace'), selection: props.bpmnModeler.get('selection') } - } - console.log(bpmnInstances(), 'window.bpmnInstances') - getActiveElement() - // }) -} + console.log(bpmnInstances(), 'window.bpmnInstances') + getActiveElement() + unwatchBpmn() + }, + { + immediate: true + } +) + const getActiveElement = () => { // 初始第一个选中元素 bpmn:Process initFormOnChanged(null) @@ -187,11 +191,7 @@ const initFormOnChanged = (element) => { ) formVisible.value = elementType.value === 'UserTask' || elementType.value === 'StartEvent' } -onMounted(() => { - setTimeout(() => { - initModels() - }, 100) -}) + onBeforeUnmount(() => { const w = window as any w.bpmnInstances = null