Fix:修复短时间快速多次渲染时节点位置错乱的问题
This commit is contained in:
parent
6eacfab9c2
commit
c7e91cc9eb
@ -250,6 +250,7 @@ class Render {
|
|||||||
|
|
||||||
// 渲染
|
// 渲染
|
||||||
render(callback = () => {}, source) {
|
render(callback = () => {}, source) {
|
||||||
|
let t = Date.now()
|
||||||
// 如果当前还没有渲染完毕,不再触发渲染
|
// 如果当前还没有渲染完毕,不再触发渲染
|
||||||
if (this.isRendering) {
|
if (this.isRendering) {
|
||||||
// 等待当前渲染完毕后再进行一次渲染
|
// 等待当前渲染完毕后再进行一次渲染
|
||||||
@ -281,7 +282,7 @@ class Render {
|
|||||||
// 更新根节点
|
// 更新根节点
|
||||||
this.root = root
|
this.root = root
|
||||||
// 渲染节点
|
// 渲染节点
|
||||||
this.root.render(() => {
|
const onEnd = () => {
|
||||||
this.isRendering = false
|
this.isRendering = false
|
||||||
this.mindMap.emit('node_tree_render_end')
|
this.mindMap.emit('node_tree_render_end')
|
||||||
callback && callback()
|
callback && callback()
|
||||||
@ -289,6 +290,18 @@ class Render {
|
|||||||
this.hasWaitRendering = false
|
this.hasWaitRendering = false
|
||||||
this.render(callback, source)
|
this.render(callback, source)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
let { enableNodeTransitionMove, nodeTransitionMoveDuration } =
|
||||||
|
this.mindMap.opt
|
||||||
|
this.root.render(() => {
|
||||||
|
let dur = Date.now() - t
|
||||||
|
if (enableNodeTransitionMove && dur <= nodeTransitionMoveDuration) {
|
||||||
|
setTimeout(() => {
|
||||||
|
onEnd()
|
||||||
|
}, nodeTransitionMoveDuration - dur);
|
||||||
|
} else {
|
||||||
|
onEnd()
|
||||||
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
this.mindMap.emit('node_active', null, this.activeNodeList)
|
this.mindMap.emit('node_active', null, this.activeNodeList)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user