From 60e606a413e89712a40e22572b662f9512c9a2a1 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sat, 4 Dec 2021 17:25:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .eslintrc | 7 +-- src/renderer/components/base/Btn.vue | 5 +- src/renderer/components/base/Input.vue | 2 +- .../components/base/VirtualizedList.vue | 2 +- .../components/core/Toolbar/SearchInput.vue | 11 ++-- src/renderer/core/useApp/useEventListener.js | 1 + src/renderer/core/useApp/useSync.js | 10 ++-- src/renderer/views/list/List.vue | 58 ++++++++----------- .../components/MusicList/useListScroll.js | 18 +----- .../views/list/components/MyLists.vue | 12 +++- src/renderer/views/setting/Setting.vue | 5 +- .../setting/components/SettingBackup.vue | 13 ++--- .../setting/components/SettingHotKey.vue | 1 + 13 files changed, 62 insertions(+), 83 deletions(-) diff --git a/.eslintrc b/.eslintrc index be478c5cff..aee2d511c2 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,15 +1,12 @@ { "extends": [ - "plugin:vue/vue3-recommended", + // "plugin:vue/vue3-recommended", "standard" ], "plugins": [ "html" ], - "parser": "vue-eslint-parser", - "parserOptions": { - "parser": "babel-eslint" - }, + "parser": "babel-eslint", "rules": { "no-new": "off", "camelcase": "off", diff --git a/src/renderer/components/base/Btn.vue b/src/renderer/components/base/Btn.vue index a549c0a2ce..4f3849fa06 100644 --- a/src/renderer/components/base/Btn.vue +++ b/src/renderer/components/base/Btn.vue @@ -1,9 +1,7 @@ @@ -23,7 +21,6 @@ export default { default: false, }, }, - emits: ['click'], } diff --git a/src/renderer/components/base/Input.vue b/src/renderer/components/base/Input.vue index 46249c1ce5..ec3a5a2225 100644 --- a/src/renderer/components/base/Input.vue +++ b/src/renderer/components/base/Input.vue @@ -32,7 +32,7 @@ export default { default: 'text', }, }, - emits: ['update:modelValue', 'keydown', 'blur', 'submit', 'change', 'focus'], + emits: ['update:modelValue', 'submit', 'change'], methods: { handleInput(event) { let value = event.target.value.trim() diff --git a/src/renderer/components/base/VirtualizedList.vue b/src/renderer/components/base/VirtualizedList.vue index 2aa0955587..5ad009adf0 100644 --- a/src/renderer/components/base/VirtualizedList.vue +++ b/src/renderer/components/base/VirtualizedList.vue @@ -105,7 +105,7 @@ export default { require: true, }, }, - emits: ['contextmenu', 'scroll'], + emits: ['scroll'], setup(props, { emit }) { const views = ref([]) const dom_scrollContainer = ref(null) diff --git a/src/renderer/components/core/Toolbar/SearchInput.vue b/src/renderer/components/core/Toolbar/SearchInput.vue index c6adbe84ac..12e6464528 100644 --- a/src/renderer/components/core/Toolbar/SearchInput.vue +++ b/src/renderer/components/core/Toolbar/SearchInput.vue @@ -8,7 +8,6 @@ import { debounce } from '@renderer/utils' import { ref, useRoute, - useGetter, watch, useRefGetter, useRouter, @@ -26,14 +25,14 @@ export default { const route = useRoute() const router = useRouter() - const setting = useGetter('setting') + const setting = useRefGetter('setting') const clearSearchList = useCommit('search', 'clearList') watch(() => route.name, (newValue, oldValue) => { if (newValue.name != 'search') { - if (setting.odc.isAutoClearSearchInput && searchText.value) searchText.value = '' - if (setting.odc.isAutoClearSearchList) clearSearchList() + if (setting.value.odc.isAutoClearSearchInput && searchText.value) searchText.value = '' + if (setting.value.odc.isAutoClearSearchList) clearSearchList() } }) @@ -50,10 +49,10 @@ export default { const tipSearch = debounce(() => { if (searchText.value === '') { tipList.value = [] - music[setting.search.tempSearchSource].tempSearch.cancelTempSearch() + music[setting.value.search.tempSearchSource].tempSearch.cancelTempSearch() return } - music[setting.search.tempSearchSource].tempSearch.search(searchText.value).then(list => { + music[setting.value.search.tempSearchSource].tempSearch.search(searchText.value).then(list => { tipList.value = list }).catch(() => {}) }, 50) diff --git a/src/renderer/core/useApp/useEventListener.js b/src/renderer/core/useApp/useEventListener.js index b8bdbfd193..8bd8442d1f 100644 --- a/src/renderer/core/useApp/useEventListener.js +++ b/src/renderer/core/useApp/useEventListener.js @@ -49,6 +49,7 @@ export default ({ }) const rSetConfig = onSetConfig((event, config) => { + console.log(config) setSetting(Object.assign({}, toRaw(setting.value), config)) window.eventHub.emit(eventBaseName.set_config, config) }) diff --git a/src/renderer/core/useApp/useSync.js b/src/renderer/core/useApp/useSync.js index b89d39e80c..fcbb33b402 100644 --- a/src/renderer/core/useApp/useSync.js +++ b/src/renderer/core/useApp/useSync.js @@ -1,4 +1,4 @@ -import { useCommit, useGetter, onBeforeUnmount, toRaw } from '@renderer/utils/vueTools' +import { useCommit, useRefGetter, onBeforeUnmount, toRaw } from '@renderer/utils/vueTools' import { sync as eventSyncName } from '@renderer/event/names' import { syncEnable, onSyncStatus } from '@renderer/utils/tools' import { sync } from '@renderer/core/share' @@ -22,7 +22,7 @@ export default () => { const setMusicPosition = useCommit('list', 'setMusicPosition') const setSyncListData = useCommit('list', 'setSyncListData') - const setting = useGetter('setting') + const setting = useRefGetter('setting') const handleSyncAction = ({ action, data }) => { if (typeof data == 'object') data.isSync = true @@ -115,10 +115,10 @@ export default () => { sync.status.devices = status.devices }) - if (setting.sync.enable && setting.sync.port) { + if (setting.value.sync.enable && setting.value.sync.port) { syncEnable({ - enable: setting.sync.enable, - port: setting.sync.port, + enable: setting.value.sync.enable, + port: setting.value.sync.port, }) } diff --git a/src/renderer/views/list/List.vue b/src/renderer/views/list/List.vue index 5f2a5c523d..64fa97d1b5 100644 --- a/src/renderer/views/list/List.vue +++ b/src/renderer/views/list/List.vue @@ -8,7 +8,7 @@ diff --git a/src/renderer/views/list/components/MusicList/useListScroll.js b/src/renderer/views/list/components/MusicList/useListScroll.js index 14a562bac0..0d9cd3d6b6 100644 --- a/src/renderer/views/list/components/MusicList/useListScroll.js +++ b/src/renderer/views/list/components/MusicList/useListScroll.js @@ -1,4 +1,4 @@ -import { useRoute, useRouter, onMounted, onBeforeUnmount, nextTick, watch } from '@renderer/utils/vueTools' +import { useRoute, useRouter, onMounted, onBeforeUnmount } from '@renderer/utils/vueTools' import { setListPosition, getListPosition } from '@renderer/utils/data' export default ({ props, listRef, list, setting }) => { @@ -27,21 +27,6 @@ export default ({ props, listRef, list, setting }) => { handleScrollList(index, isAnimation) } - watch(() => route.query.id, (id, oId) => { - if (!oId || route.path != '/list') return - const scrollIndex = route.query.scrollIndex - nextTick(() => { - restoreScroll(scrollIndex, false) - if (scrollIndex != null) { - router.replace({ - path: 'list', - query: { - id: props.listId, - }, - }) - } - }) - }) onMounted(() => { restoreScroll(route.query.scrollIndex, false) if (route.query.scrollIndex != null) { @@ -49,6 +34,7 @@ export default ({ props, listRef, list, setting }) => { path: 'list', query: { id: props.listId, + updated: true, }, }) } diff --git a/src/renderer/views/list/components/MyLists.vue b/src/renderer/views/list/components/MyLists.vue index 2232f73cca..a9a4a83c19 100644 --- a/src/renderer/views/list/components/MyLists.vue +++ b/src/renderer/views/list/components/MyLists.vue @@ -160,6 +160,9 @@ export default { created() { this.setPrevSelectListId(this.listId) }, + mounted() { + this.setListsScroll() + }, methods: { ...mapMutations('list', [ 'setUserListName', @@ -174,6 +177,13 @@ export default { ...mapActions('leaderboard', { getBoardListAll: 'getListAll', }), + setListsScroll() { + let target = this.$refs.dom_lists_list.querySelector('.' + this.$style.active) + if (!target) return + let offsetTop = target.offsetTop + let location = offsetTop - 150 + if (location > 0) this.$refs.dom_lists_list.scrollTop = location + }, handleListsSave(index, event) { let dom_target = this.$refs.dom_lists_list.querySelector('.' + this.$style.editing) if (dom_target) dom_target.classList.remove(this.$style.editing) @@ -351,8 +361,6 @@ export default { }) }, handleImportList(index) { - const list = this.getTargetListInfo(index) - selectDir({ title: this.$t('lists__import_part_desc'), properties: ['openFile'], diff --git a/src/renderer/views/setting/Setting.vue b/src/renderer/views/setting/Setting.vue index f63dbff1e5..aecbe23adf 100644 --- a/src/renderer/views/setting/Setting.vue +++ b/src/renderer/views/setting/Setting.vue @@ -38,7 +38,7 @@