Fix:修复删除非当前激活的节点时,当前激活节点的激活状态无法取消的问题
This commit is contained in:
parent
6b9eee7fc6
commit
e9352a4f6c
@ -1242,7 +1242,7 @@ class Render {
|
|||||||
root.nodeData.children = []
|
root.nodeData.children = []
|
||||||
} else {
|
} else {
|
||||||
// 如果只选中了一个节点,删除后激活其兄弟节点或者父节点
|
// 如果只选中了一个节点,删除后激活其兄弟节点或者父节点
|
||||||
needActiveNode = this.getNextActiveNode()
|
needActiveNode = this.getNextActiveNode(list)
|
||||||
for (let i = 0; i < list.length; i++) {
|
for (let i = 0; i < list.length; i++) {
|
||||||
const node = list[i]
|
const node = list[i]
|
||||||
const currentEditNode = this.textEdit.getCurrentEditNode()
|
const currentEditNode = this.textEdit.getCurrentEditNode()
|
||||||
@ -1297,13 +1297,13 @@ class Render {
|
|||||||
if (this.activeNodeList.length <= 0 && appointNodes.length <= 0) {
|
if (this.activeNodeList.length <= 0 && appointNodes.length <= 0) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 删除节点后需要激活的节点,如果只选中了一个节点,删除后激活其兄弟节点或者父节点
|
|
||||||
let needActiveNode = this.getNextActiveNode()
|
|
||||||
let isAppointNodes = appointNodes.length > 0
|
let isAppointNodes = appointNodes.length > 0
|
||||||
let list = isAppointNodes ? appointNodes : this.activeNodeList
|
let list = isAppointNodes ? appointNodes : this.activeNodeList
|
||||||
list = list.filter(node => {
|
list = list.filter(node => {
|
||||||
return !node.isRoot
|
return !node.isRoot
|
||||||
})
|
})
|
||||||
|
// 删除节点后需要激活的节点,如果只选中了一个节点,删除后激活其兄弟节点或者父节点
|
||||||
|
let needActiveNode = this.getNextActiveNode(list)
|
||||||
for (let i = 0; i < list.length; i++) {
|
for (let i = 0; i < list.length; i++) {
|
||||||
let node = list[i]
|
let node = list[i]
|
||||||
if (node.isGeneralization) {
|
if (node.isGeneralization) {
|
||||||
@ -1329,7 +1329,11 @@ class Render {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 计算下一个可激活的节点
|
// 计算下一个可激活的节点
|
||||||
getNextActiveNode() {
|
getNextActiveNode(deleteList) {
|
||||||
|
// 删除多个节点不自动激活相邻节点
|
||||||
|
if (deleteList.length !== 1) return null
|
||||||
|
// 被删除的节点不在当前激活的节点列表里,不激活相邻节点
|
||||||
|
if (this.findActiveNodeIndex(deleteList[0]) === -1) return null
|
||||||
let needActiveNode = null
|
let needActiveNode = null
|
||||||
if (
|
if (
|
||||||
this.activeNodeList.length === 1 &&
|
this.activeNodeList.length === 1 &&
|
||||||
|
|||||||
@ -144,9 +144,10 @@ class Base {
|
|||||||
this.cacheNode(newUid, newNode)
|
this.cacheNode(newUid, newNode)
|
||||||
// 数据关联实际节点
|
// 数据关联实际节点
|
||||||
data._node = newNode
|
data._node = newNode
|
||||||
if (data.data.isActive) {
|
}
|
||||||
this.renderer.addNodeToActiveList(newNode)
|
// 如果该节点数据是已激活状态,那么添加到激活节点列表里
|
||||||
}
|
if (data.data.isActive) {
|
||||||
|
this.renderer.addNodeToActiveList(newNode)
|
||||||
}
|
}
|
||||||
// 如果当前节点在激活节点列表里,那么添加上激活的状态
|
// 如果当前节点在激活节点列表里,那么添加上激活的状态
|
||||||
if (this.mindMap.renderer.findActiveNodeIndex(newNode) !== -1) {
|
if (this.mindMap.renderer.findActiveNodeIndex(newNode) !== -1) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user