Fix:1.全选、删除节点激活相邻节点、多选节点等操作增加派发before_node_active事件;2.多选节点改为实时派发激活事件

This commit is contained in:
街角小林 2024-05-08 09:54:16 +08:00
parent d3d92a6e70
commit b69a0b620d
3 changed files with 8 additions and 3 deletions

View File

@ -520,7 +520,7 @@ class Render {
} }
// 添加节点到激活列表里 // 添加节点到激活列表里
addNodeToActiveList(node) { addNodeToActiveList(node, notEmitBeforeNodeActiveEvent = false) {
if ( if (
this.mindMap.opt.onlyOneEnableActiveNodeOnCooperate && this.mindMap.opt.onlyOneEnableActiveNodeOnCooperate &&
node.userList.length > 0 node.userList.length > 0
@ -528,6 +528,9 @@ class Render {
return return
const index = this.findActiveNodeIndex(node) const index = this.findActiveNodeIndex(node)
if (index === -1) { if (index === -1) {
if (!notEmitBeforeNodeActiveEvent) {
this.mindMap.emit('before_node_active', node, this.activeNodeList)
}
this.mindMap.execCommand('SET_NODE_ACTIVE', node, true) this.mindMap.execCommand('SET_NODE_ACTIVE', node, true)
this.activeNodeList.push(node) this.activeNodeList.push(node)
} }

View File

@ -482,7 +482,7 @@ class Node {
) )
this.mindMap.renderer[ this.mindMap.renderer[
isActive ? 'removeNodeFromActiveList' : 'addNodeToActiveList' isActive ? 'removeNodeFromActiveList' : 'addNodeToActiveList'
](this) ](this, true)
this.renderer.emitNodeActiveEvent(isActive ? null : this) this.renderer.emitNodeActiveEvent(isActive ? null : this)
} }
this.mindMap.emit('node_mousedown', this, e) this.mindMap.emit('node_mousedown', this, e)
@ -563,7 +563,7 @@ class Node {
} }
this.mindMap.emit('before_node_active', this, this.renderer.activeNodeList) this.mindMap.emit('before_node_active', this, this.renderer.activeNodeList)
this.renderer.clearActiveNodeList() this.renderer.clearActiveNodeList()
this.renderer.addNodeToActiveList(this) this.renderer.addNodeToActiveList(this, true)
this.renderer.emitNodeActiveEvent(this) this.renderer.emitNodeActiveEvent(this)
} }

View File

@ -237,11 +237,13 @@ class Select {
return return
} }
this.mindMap.renderer.addNodeToActiveList(node) this.mindMap.renderer.addNodeToActiveList(node)
this.mindMap.renderer.emitNodeActiveEvent()
} else if (node.getData('isActive')) { } else if (node.getData('isActive')) {
if (!node.getData('isActive')) { if (!node.getData('isActive')) {
return return
} }
this.mindMap.renderer.removeNodeFromActiveList(node) this.mindMap.renderer.removeNodeFromActiveList(node)
this.mindMap.renderer.emitNodeActiveEvent()
} }
}) })
} }