diff --git a/publish/changeLog.md b/publish/changeLog.md index 2010e50e..f07e07ef 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -1,8 +1,11 @@ +### 优化 + +- 优化我的列表滚动条位置的保存逻辑 +- 更新设置-备份与恢复功能的描述 +- 修复初始化搜索历史列表功能 +- 修复重启软件后试听列表与收藏列表无法恢复上次的滚动位置的问题 + ### 修复 - 修复桌面歌词窗口不允许拖出桌面之外的位置计算偏移Bug - 修复网易云KTV嗨榜无法加载的问题 - -### 优化 - -- 更新设置-备份与恢复功能的描述 diff --git a/src/common/ipcNames.js b/src/common/ipcNames.js index 9aac43ce..ecc44d9c 100644 --- a/src/common/ipcNames.js +++ b/src/common/ipcNames.js @@ -48,7 +48,6 @@ const names = { get_playlist: 'get_playlist', save_playlist: 'save_playlist', get_data: 'get_data', - set_data: 'set_data', save_data: 'save_data', get_hot_key: 'get_hot_key', }, diff --git a/src/renderer/App.vue b/src/renderer/App.vue index 7b94dfbd..d9b4d3b5 100644 --- a/src/renderer/App.vue +++ b/src/renderer/App.vue @@ -94,7 +94,7 @@ export default { }) }, 1000) this.saveSearchHistoryList = throttle(n => { - rendererSend(NAMES.mainWindow.set_data, { + rendererSend(NAMES.mainWindow.save_data, { path: 'searchHistoryList', data: n, }) @@ -292,7 +292,7 @@ export default { rendererInvoke(NAMES.mainWindow.get_data, 'searchHistoryList').then(historyList => { if (historyList == null) { historyList = [] - rendererInvoke(NAMES.mainWindow.set_data, { path: 'searchHistoryList', data: historyList }) + rendererSend(NAMES.mainWindow.save_data, { path: 'searchHistoryList', data: historyList }) } else { this.setSearchHistoryList(historyList) } diff --git a/src/renderer/store/modules/list.js b/src/renderer/store/modules/list.js index 04978ce3..e46f2782 100644 --- a/src/renderer/store/modules/list.js +++ b/src/renderer/store/modules/list.js @@ -54,8 +54,8 @@ const actions = { // mitations const mutations = { initList(state, { defaultList, loveList, userList }) { - if (defaultList != null) state.defaultList.list = defaultList.list - if (loveList != null) state.loveList.list = loveList.list + if (defaultList != null) Object.assign(state.defaultList, { list: defaultList.list, location: defaultList.location }) + if (loveList != null) Object.assign(state.loveList, { list: loveList.list, location: loveList.location }) if (userList != null) state.userList = userList allListInit(state.defaultList, state.loveList, state.userList) state.isInitedList = true diff --git a/src/renderer/views/List.vue b/src/renderer/views/List.vue index 79b75cba..ea07d804 100644 --- a/src/renderer/views/List.vue +++ b/src/renderer/views/List.vue @@ -86,7 +86,6 @@ export default { // isShowEditBtn: false, isShowDownloadMultiple: false, delayShow: false, - routeLeaveLocation: null, isShowListAdd: false, isShowListAddMultiple: false, delayTimeout: null, @@ -289,18 +288,14 @@ export default { // }, beforeRouteLeave(to, from, next) { this.clearDelayTimeout() - this.routeLeaveLocation = (this.list.length && this.$refs.dom_scrollContent.scrollTop) || 0 + this.setListScroll({ id: this.listId, location: (this.list.length && this.$refs.dom_scrollContent.scrollTop) || 0 }) next() }, created() { this.listId = this.$route.query.id || this.defaultList.id this.setPrevSelectListId(this.listId) - this.handleScroll = throttle(e => { - if (this.routeLeaveLocation) { - this.setListScroll({ id: this.listId, location: this.routeLeaveLocation }) - } else { - this.setListScroll({ id: this.listId, location: e.target.scrollTop }) - } + this.handleSaveScroll = throttle((listId, location) => { + this.setListScroll({ id: listId, location }) }, 1000) this.listenEvent() }, @@ -310,6 +305,7 @@ export default { }, beforeDestroy() { this.unlistenEvent() + this.setListScroll({ id: this.listId, location: (this.list.length && this.$refs.dom_scrollContent.scrollTop) || 0 }) }, methods: { ...mapMutations(['setPrevSelectListId']), @@ -369,6 +365,9 @@ export default { this.restoreScroll(this.$route.query.scrollIndex, false) } }, + handleScroll(e) { + this.handleSaveScroll(this.listId, e.target.scrollTop) + }, clearDelayTimeout() { if (this.delayTimeout) { clearTimeout(this.delayTimeout)