diff --git a/simple-mind-map/src/core/render/Render.js b/simple-mind-map/src/core/render/Render.js index 6691042f..f407ec80 100644 --- a/simple-mind-map/src/core/render/Render.js +++ b/simple-mind-map/src/core/render/Render.js @@ -1171,6 +1171,8 @@ class Render { node.generalizationBelongNode.updateGeneralization() } if (!notRender) this.mindMap.render() + } else { + this.mindMap.emit('node_tree_render_end') } } diff --git a/simple-mind-map/src/plugins/Search.js b/simple-mind-map/src/plugins/Search.js index 477d1ca6..a9057ca8 100644 --- a/simple-mind-map/src/plugins/Search.js +++ b/simple-mind-map/src/plugins/Search.js @@ -15,12 +15,19 @@ class Search { this.currentIndex = -1 // 不要复位搜索文本 this.notResetSearchText = false + // 是否自动跳转下一个匹配节点 + this.isJumpNext = false this.onDataChange = this.onDataChange.bind(this) this.mindMap.on('data_change', this.onDataChange) } // 节点数据改变了,需要重新搜索 onDataChange() { + if (this.isJumpNext) { + this.isJumpNext = false + this.search(this.searchText) + return + } if (this.notResetSearchText) { this.notResetSearchText = false return @@ -29,7 +36,7 @@ class Search { } // 搜索 - search(text, callback) { + search(text, callback = () => {}) { if (isUndef(text)) return this.endSearch() text = String(text) this.isSearching = true @@ -88,7 +95,7 @@ class Search { } // 替换当前节点 - replace(replaceText) { + replace(replaceText, jumpNext = false) { if ( replaceText === null || replaceText === undefined || @@ -96,6 +103,8 @@ class Search { this.matchNodeList.length <= 0 ) return + // 自动跳转下一个匹配节点 + this.isJumpNext = jumpNext replaceText = String(replaceText) let currentNode = this.matchNodeList[this.currentIndex] if (!currentNode) return diff --git a/web/src/pages/Edit/components/Search.vue b/web/src/pages/Edit/components/Search.vue index 58c7afeb..c5dd2391 100644 --- a/web/src/pages/Edit/components/Search.vue +++ b/web/src/pages/Edit/components/Search.vue @@ -117,7 +117,7 @@ export default { }, replace() { - this.mindMap.search.replace(this.replaceText) + this.mindMap.search.replace(this.replaceText, true) }, replaceAll() {