修复同步问题

pull/733/head
lyswhut 2021-12-04 01:30:34 +08:00
parent 822e1ea6c9
commit 07d200a752
4 changed files with 40 additions and 37 deletions

View File

@ -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}`) 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) winEvent(global.modules.mainWindow)
// global.modules.mainWindow.webContents.openDevTools() global.modules.mainWindow.webContents.openDevTools()
if (!isDev) autoUpdate() if (!isDev) autoUpdate()
} }

View File

@ -8,18 +8,20 @@ export const setInited = () => {
isInitedList.value = true 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)) { for (const id of Object.keys(allList)) {
if (newIds.includes(id)) continue
delete allList[id] delete allList[id]
} }
allList[defaultList.id] = reactive(defaultList.list) allListUpdate(defaultList.id, newLists.defaultList.list)
allList[loveList.id] = reactive(loveList.list) allListUpdate(loveList.id, newLists.loveList.list)
allList[tempList.id] = reactive(tempList.list) if (newLists.tempList) allListUpdate(tempList.id, newLists.tempList.list)
userLists.splice(0, userLists.length) userLists.splice(0, userLists.length)
for (const { list, ...listInfo } of userList) { for (const { list, ...listInfo } of newLists.userList) {
allList[listInfo.id] = reactive(list) allListUpdate(listInfo.id, list)
userLists.push(listInfo) userLists.push(listInfo)
} }
} }
@ -27,7 +29,7 @@ export const allListUpdate = (id, list) => {
if (allList[id]) { if (allList[id]) {
allList[id].splice(0, allList[id].length, ...list) allList[id].splice(0, allList[id].length, ...list)
} else { } else {
allList[id] = list allList[id] = reactive(list)
} }
} }
export const allListRemove = id => { export const allListRemove = id => {

View File

@ -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 { sync as eventSyncName } from '@renderer/event/names'
import { syncEnable, onSyncStatus } from '@renderer/utils/tools' import { syncEnable, onSyncStatus } from '@renderer/utils/tools'
import { sync } from '@renderer/core/share' import { sync } from '@renderer/core/share'
import { allList, defaultList, loveList, userLists } from '@renderer/core/share/list'
export default () => { export default () => {
const setList = useCommit('setList') const setList = useCommit('list', 'setList')
const listAdd = useCommit('listAdd') const listAdd = useCommit('list', 'listAdd')
const listMove = useCommit('listMove') const listMove = useCommit('list', 'listMove')
const listAddMultiple = useCommit('listAddMultiple') const listAddMultiple = useCommit('list', 'listAddMultiple')
const listMoveMultiple = useCommit('listMoveMultiple') const listMoveMultiple = useCommit('list', 'listMoveMultiple')
const listRemove = useCommit('listRemove') const listRemove = useCommit('list', 'listRemove')
const listRemoveMultiple = useCommit('listRemoveMultiple') const listRemoveMultiple = useCommit('list', 'listRemoveMultiple')
const listClear = useCommit('listClear') const listClear = useCommit('list', 'listClear')
const updateMusicInfo = useCommit('updateMusicInfo') const updateMusicInfo = useCommit('list', 'updateMusicInfo')
const createUserList = useCommit('createUserList') const createUserList = useCommit('list', 'createUserList')
const removeUserList = useCommit('removeUserList') const removeUserList = useCommit('list', 'removeUserList')
const setUserListName = useCommit('setUserListName') const setUserListName = useCommit('list', 'setUserListName')
const moveupUserList = useCommit('moveupUserList') const moveupUserList = useCommit('list', 'moveupUserList')
const movedownUserList = useCommit('movedownUserList') const movedownUserList = useCommit('list', 'movedownUserList')
const setMusicPosition = useCommit('setMusicPosition') const setMusicPosition = useCommit('list', 'setMusicPosition')
const setSyncListData = useCommit('setSyncListData') const setSyncListData = useCommit('list', 'setSyncListData')
const setting = useGetter('setting') const setting = useGetter('setting')
@ -84,9 +85,9 @@ export default () => {
global.eventHub.emit(eventSyncName.send_sync_list, { global.eventHub.emit(eventSyncName.send_sync_list, {
action: 'getData', action: 'getData',
data: { data: {
defaultList: this.defaultList, defaultList: { ...toRaw(defaultList), list: toRaw(allList[defaultList.id]) },
loveList: this.loveList, loveList: { ...toRaw(loveList), list: toRaw(allList[loveList.id]) },
userList: this.userList, userList: userLists.map(l => ({ ...toRaw(l), list: toRaw(allList[l.id]) })),
}, },
}) })
break break

View File

@ -54,7 +54,7 @@ const mutations = {
if (userList != null) { if (userList != null) {
for (const list of userList) if (list.list) markRawList(list.list) 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)]) window.eventHub.emit(eventListNames.listChange, [defaultList.id, loveList.id, tempList.id, ...userList.map(l => l.id)])
// state.isInitedList = true // state.isInitedList = true
setInited() setInited()
@ -70,7 +70,7 @@ const mutations = {
if (defaultList != null) markRawList(defaultList.list) if (defaultList != null) markRawList(defaultList.list)
if (loveList != null) markRawList(loveList.list) if (loveList != null) markRawList(loveList.list)
if (userList != null) for (const list of userList) markRawList(list.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)]) window.eventHub.emit(eventListNames.listChange, [defaultList.id, loveList.id, ...userList.map(l => l.id)])
}, },
setList(state, { id, list, name, source, sourceListId, isSync }) { 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 if (index < 0) return
let targetList = allList[id] let targetList = allList[id]
state.userList.splice(index, 1) userLists.splice(index, 1)
state.userList.splice(index - 1, 0, targetList) userLists.splice(index - 1, 0, targetList)
}, },
movedownUserList(state, { id, isSync }) { movedownUserList(state, { id, isSync }) {
if (!isSync) { if (!isSync) {
@ -370,11 +370,11 @@ const mutations = {
data: { id }, data: { id },
}) })
} }
const index = state.userList.findIndex(l => l.id == id) const index = userLists.findIndex(l => l.id == id)
if (index < 0) return if (index < 0) return
let targetList = allList[id] let targetList = allList[id]
state.userList.splice(index, 1) userLists.splice(index, 1)
state.userList.splice(index + 1, 0, targetList) userLists.splice(index + 1, 0, targetList)
}, },
setMusicPosition(state, { id, position, list, isSync }) { setMusicPosition(state, { id, position, list, isSync }) {
if (!isSync) { if (!isSync) {