diff --git a/src/main/index.js b/src/main/index.js index 950cfe81..197a5023 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -124,7 +124,7 @@ function createWindow() { global.modules.mainWindow.loadURL(winURL + `?dt=${!!global.envParams.cmdParams.dt}&theme=${themes.find(t => t.id == global.appSetting.themeId)?.className ?? themes[0].className}`) winEvent(global.modules.mainWindow) - // global.modules.mainWindow.webContents.openDevTools() + global.modules.mainWindow.webContents.openDevTools() if (!isDev) autoUpdate() } diff --git a/src/renderer/core/share/list.js b/src/renderer/core/share/list.js index d813b89b..deeffb2c 100644 --- a/src/renderer/core/share/list.js +++ b/src/renderer/core/share/list.js @@ -8,18 +8,20 @@ export const setInited = () => { isInitedList.value = true } -export const allList = markRaw({}) +export const allList = window.allList = markRaw({}) -export const allListInit = (defaultList, loveList, tempList, userList) => { +export const allListInit = (newLists) => { + const newIds = [defaultList.id, loveList.id, tempList.id, ...newLists.userList.map(l => l.id)] for (const id of Object.keys(allList)) { + if (newIds.includes(id)) continue delete allList[id] } - allList[defaultList.id] = reactive(defaultList.list) - allList[loveList.id] = reactive(loveList.list) - allList[tempList.id] = reactive(tempList.list) + allListUpdate(defaultList.id, newLists.defaultList.list) + allListUpdate(loveList.id, newLists.loveList.list) + if (newLists.tempList) allListUpdate(tempList.id, newLists.tempList.list) userLists.splice(0, userLists.length) - for (const { list, ...listInfo } of userList) { - allList[listInfo.id] = reactive(list) + for (const { list, ...listInfo } of newLists.userList) { + allListUpdate(listInfo.id, list) userLists.push(listInfo) } } @@ -27,7 +29,7 @@ export const allListUpdate = (id, list) => { if (allList[id]) { allList[id].splice(0, allList[id].length, ...list) } else { - allList[id] = list + allList[id] = reactive(list) } } export const allListRemove = id => { diff --git a/src/renderer/core/useApp/useSync.js b/src/renderer/core/useApp/useSync.js index b5076714..b89d39e8 100644 --- a/src/renderer/core/useApp/useSync.js +++ b/src/renderer/core/useApp/useSync.js @@ -1,25 +1,26 @@ -import { useCommit, useGetter, onBeforeUnmount } from '@renderer/utils/vueTools' +import { useCommit, useGetter, 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' +import { allList, defaultList, loveList, userLists } from '@renderer/core/share/list' export default () => { - const setList = useCommit('setList') - const listAdd = useCommit('listAdd') - const listMove = useCommit('listMove') - const listAddMultiple = useCommit('listAddMultiple') - const listMoveMultiple = useCommit('listMoveMultiple') - const listRemove = useCommit('listRemove') - const listRemoveMultiple = useCommit('listRemoveMultiple') - const listClear = useCommit('listClear') - const updateMusicInfo = useCommit('updateMusicInfo') - const createUserList = useCommit('createUserList') - const removeUserList = useCommit('removeUserList') - const setUserListName = useCommit('setUserListName') - const moveupUserList = useCommit('moveupUserList') - const movedownUserList = useCommit('movedownUserList') - const setMusicPosition = useCommit('setMusicPosition') - const setSyncListData = useCommit('setSyncListData') + const setList = useCommit('list', 'setList') + const listAdd = useCommit('list', 'listAdd') + const listMove = useCommit('list', 'listMove') + const listAddMultiple = useCommit('list', 'listAddMultiple') + const listMoveMultiple = useCommit('list', 'listMoveMultiple') + const listRemove = useCommit('list', 'listRemove') + const listRemoveMultiple = useCommit('list', 'listRemoveMultiple') + const listClear = useCommit('list', 'listClear') + const updateMusicInfo = useCommit('list', 'updateMusicInfo') + const createUserList = useCommit('list', 'createUserList') + const removeUserList = useCommit('list', 'removeUserList') + const setUserListName = useCommit('list', 'setUserListName') + const moveupUserList = useCommit('list', 'moveupUserList') + const movedownUserList = useCommit('list', 'movedownUserList') + const setMusicPosition = useCommit('list', 'setMusicPosition') + const setSyncListData = useCommit('list', 'setSyncListData') const setting = useGetter('setting') @@ -84,9 +85,9 @@ export default () => { global.eventHub.emit(eventSyncName.send_sync_list, { action: 'getData', data: { - defaultList: this.defaultList, - loveList: this.loveList, - userList: this.userList, + defaultList: { ...toRaw(defaultList), list: toRaw(allList[defaultList.id]) }, + loveList: { ...toRaw(loveList), list: toRaw(allList[loveList.id]) }, + userList: userLists.map(l => ({ ...toRaw(l), list: toRaw(allList[l.id]) })), }, }) break diff --git a/src/renderer/store/modules/list.js b/src/renderer/store/modules/list.js index 8e2cdc01..b66b118d 100644 --- a/src/renderer/store/modules/list.js +++ b/src/renderer/store/modules/list.js @@ -54,7 +54,7 @@ const mutations = { if (userList != null) { for (const list of userList) if (list.list) markRawList(list.list) } - allListInit(defaultList, loveList, tempList, userList) + allListInit({ defaultList, loveList, tempList, userList }) window.eventHub.emit(eventListNames.listChange, [defaultList.id, loveList.id, tempList.id, ...userList.map(l => l.id)]) // state.isInitedList = true setInited() @@ -70,7 +70,7 @@ const mutations = { if (defaultList != null) markRawList(defaultList.list) if (loveList != null) markRawList(loveList.list) if (userList != null) for (const list of userList) markRawList(list.list) - allListInit(defaultList, loveList, userList) + allListInit({ defaultList, loveList, userList }) window.eventHub.emit(eventListNames.listChange, [defaultList.id, loveList.id, ...userList.map(l => l.id)]) }, setList(state, { id, list, name, source, sourceListId, isSync }) { @@ -357,11 +357,11 @@ const mutations = { }) } - const index = state.userList.findIndex(l => l.id == id) + const index = userLists.findIndex(l => l.id == id) if (index < 0) return let targetList = allList[id] - state.userList.splice(index, 1) - state.userList.splice(index - 1, 0, targetList) + userLists.splice(index, 1) + userLists.splice(index - 1, 0, targetList) }, movedownUserList(state, { id, isSync }) { if (!isSync) { @@ -370,11 +370,11 @@ const mutations = { data: { id }, }) } - const index = state.userList.findIndex(l => l.id == id) + const index = userLists.findIndex(l => l.id == id) if (index < 0) return let targetList = allList[id] - state.userList.splice(index, 1) - state.userList.splice(index + 1, 0, targetList) + userLists.splice(index, 1) + userLists.splice(index + 1, 0, targetList) }, setMusicPosition(state, { id, position, list, isSync }) { if (!isSync) {