修复同步问题

This commit is contained in:
lyswhut
2021-12-04 01:30:34 +08:00
parent 822e1ea6c9
commit 07d200a752
4 changed files with 40 additions and 37 deletions
+10 -8
View File
@@ -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 => {
+21 -20
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 { 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