Skip to content

Commit 6b3de50

Browse files
author
duxz
committed
fix: 处理 window.bpmnInstances 有时候为 undefined 问题
1 parent 9f0065f commit 6b3de50

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -110,18 +110,18 @@ const timer = ref()
110110
provide('prefix', props.prefix)
111111
provide('width', props.width)
112112
const bpmnInstances = () => (window as any)?.bpmnInstances
113-
const initModels = () => {
114-
// console.log(props, 'props')
115-
// console.log(props.bpmnModeler, 'sakdjjaskdsajdkasdjkadsjk')
116-
// 初始化 modeler 以及其他 moddle
117-
// nextTick(() => {
118-
if (!props.bpmnModeler) {
113+
114+
// 监听 props.bpmnModeler 然后 initModels
115+
const unwatchBpmn = watch(
116+
() => props.bpmnModeler,
117+
() => {
119118
// 避免加载时 流程图 并未加载完成
120-
timer.value = setTimeout(() => initModels(), 10)
121-
return
122-
}
123-
if (timer.value) {
124-
clearTimeout(timer.value)
119+
if (!props.bpmnModeler) {
120+
console.log('缺少props.bpmnModeler')
121+
return
122+
}
123+
124+
console.log('props.bpmnModeler 有值了!!!')
125125
const w = window as any
126126
w.bpmnInstances = {
127127
modeler: props.bpmnModeler,
@@ -134,12 +134,16 @@ const initModels = () => {
134134
replace: props.bpmnModeler.get('replace'),
135135
selection: props.bpmnModeler.get('selection')
136136
}
137+
138+
console.log(bpmnInstances(), 'window.bpmnInstances')
139+
getActiveElement()
140+
unwatchBpmn()
141+
},
142+
{
143+
immediate: true
137144
}
145+
)
138146
139-
console.log(bpmnInstances(), 'window.bpmnInstances')
140-
getActiveElement()
141-
// })
142-
}
143147
const getActiveElement = () => {
144148
// 初始第一个选中元素 bpmn:Process
145149
initFormOnChanged(null)
@@ -187,11 +191,7 @@ const initFormOnChanged = (element) => {
187191
)
188192
formVisible.value = elementType.value === 'UserTask' || elementType.value === 'StartEvent'
189193
}
190-
onMounted(() => {
191-
setTimeout(() => {
192-
initModels()
193-
}, 100)
194-
})
194+
195195
onBeforeUnmount(() => {
196196
const w = window as any
197197
w.bpmnInstances = null

0 commit comments

Comments
 (0)