diff --git a/src/views/common/DocumentSearch.vue b/src/views/common/DocumentSearch.vue index d0ce2a6..bc5c3db 100644 --- a/src/views/common/DocumentSearch.vue +++ b/src/views/common/DocumentSearch.vue @@ -13,7 +13,7 @@ @click="goToPrevious"> 上一处 - 下一处 @@ -80,6 +80,10 @@ export default { } return null }, + isAtLastResult() { + if (!this.searchResults.length) return true + return this.currentResultIndex >= this.searchResults.length - 1 + }, }, data() { return { @@ -858,14 +862,30 @@ export default { goToPrevious() { if (!this.searchResults.length) return - const idx = (this.currentResultIndex - 1 + this.searchResults.length) % this.searchResults.length - this.navigateToResult(idx) + let targetIndex = this.currentResultIndex + if (targetIndex === -1) { + targetIndex = this.searchResults.length - 1 + } else { + targetIndex -= 1 + if (targetIndex < 0) { + targetIndex = this.searchResults.length - 1 + } + } + this.navigateToResult(targetIndex) }, goToNext() { if (!this.searchResults.length) return - const idx = (this.currentResultIndex + 1) % this.searchResults.length - this.navigateToResult(idx) + let targetIndex = this.currentResultIndex + if (targetIndex === -1) { + targetIndex = 0 + } else { + targetIndex += 1 + if (targetIndex > this.searchResults.length - 1) { + targetIndex = 0 + } + } + this.navigateToResult(targetIndex) }, resetSearch() {