mirror of
https://github.com/kuaifan/dootask.git
synced 2026-02-03 19:58:16 +00:00
fix: 无法清理数据缓存的情况
This commit is contained in:
parent
7e951196bf
commit
257e69268b
148
resources/assets/js/store/actions.js
vendored
148
resources/assets/js/store/actions.js
vendored
@ -21,7 +21,7 @@ export default {
|
|||||||
action = "handleClearCache"
|
action = "handleClearCache"
|
||||||
}
|
}
|
||||||
await $A.IDBRemove("clearCache")
|
await $A.IDBRemove("clearCache")
|
||||||
await $A.IDBRemove("cacheVersion")
|
await $A.IDBSet("cacheVersion", "clear")
|
||||||
}
|
}
|
||||||
const cacheVersion = await $A.IDBString("cacheVersion")
|
const cacheVersion = await $A.IDBString("cacheVersion")
|
||||||
if (cacheVersion && cacheVersion !== state.cacheVersion) {
|
if (cacheVersion && cacheVersion !== state.cacheVersion) {
|
||||||
@ -812,39 +812,39 @@ export default {
|
|||||||
handleClearCache({state, dispatch}, userData) {
|
handleClearCache({state, dispatch}, userData) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
// localStorage
|
// localStorage
|
||||||
const themeConf = window.localStorage.getItem("__system:themeConf__");
|
const keys = ['themeConf', 'languageName', 'keyboardConf'];
|
||||||
const languageName = window.localStorage.getItem("__system:languageName__");
|
const savedData = keys.reduce((acc, key) => ({
|
||||||
const keyboardConf = window.localStorage.getItem("__system:keyboardConf__");
|
...acc,
|
||||||
|
[key]: window.localStorage.getItem(`__system:${key}__`)
|
||||||
|
}), {});
|
||||||
window.localStorage.clear();
|
window.localStorage.clear();
|
||||||
window.localStorage.setItem("__system:themeConf__", themeConf)
|
keys.forEach(key =>
|
||||||
window.localStorage.setItem("__system:languageName__", languageName)
|
window.localStorage.setItem(`__system:${key}__`, savedData[key])
|
||||||
window.localStorage.setItem("__system:keyboardConf__", keyboardConf)
|
);
|
||||||
|
|
||||||
// localForage
|
// localForage
|
||||||
const clientId = await $A.IDBString("clientId")
|
const cacheItems = {
|
||||||
const cacheServerUrl = await $A.IDBString("cacheServerUrl")
|
clientId: await $A.IDBString("clientId"),
|
||||||
const cacheProjectParameter = await $A.IDBArray("cacheProjectParameter")
|
cacheServerUrl: await $A.IDBString("cacheServerUrl"),
|
||||||
const cacheLoginEmail = await $A.IDBString("cacheLoginEmail");
|
cacheProjectParameter: await $A.IDBArray("cacheProjectParameter"),
|
||||||
const cacheFileSort = await $A.IDBJson("cacheFileSort");
|
cacheLoginEmail: await $A.IDBString("cacheLoginEmail"),
|
||||||
const cacheTaskBrowse = await $A.IDBArray("cacheTaskBrowse")
|
cacheFileSort: await $A.IDBJson("cacheFileSort"),
|
||||||
const cacheTranslationLanguage = await $A.IDBString("cacheTranslationLanguage")
|
cacheTaskBrowse: await $A.IDBArray("cacheTaskBrowse"),
|
||||||
const cacheTranslations = await $A.IDBArray("cacheTranslations")
|
cacheTranslationLanguage: await $A.IDBString("cacheTranslationLanguage"),
|
||||||
const cacheEmojis = await $A.IDBArray("cacheEmojis")
|
cacheTranslations: await $A.IDBArray("cacheTranslations"),
|
||||||
const userInfo = await $A.IDBJson("userInfo")
|
cacheEmojis: await $A.IDBArray("cacheEmojis"),
|
||||||
|
userInfo: await $A.IDBJson("userInfo"),
|
||||||
|
cacheVersion: state.cacheVersion,
|
||||||
|
};
|
||||||
await $A.IDBClear();
|
await $A.IDBClear();
|
||||||
await $A.IDBSet("clientId", clientId);
|
await Promise.all(
|
||||||
await $A.IDBSet("cacheServerUrl", cacheServerUrl);
|
Object.entries(cacheItems).map(([key, value]) =>
|
||||||
await $A.IDBSet("cacheProjectParameter", cacheProjectParameter);
|
$A.IDBSet(key, value)
|
||||||
await $A.IDBSet("cacheLoginEmail", cacheLoginEmail);
|
)
|
||||||
await $A.IDBSet("cacheFileSort", cacheFileSort);
|
);
|
||||||
await $A.IDBSet("cacheTaskBrowse", cacheTaskBrowse);
|
|
||||||
await $A.IDBSet("cacheTranslationLanguage", cacheTranslationLanguage);
|
|
||||||
await $A.IDBSet("cacheTranslations", cacheTranslations);
|
|
||||||
await $A.IDBSet("cacheEmojis", cacheEmojis);
|
|
||||||
await $A.IDBSet("cacheVersion", state.cacheVersion)
|
|
||||||
|
|
||||||
// userInfo
|
// userInfo
|
||||||
await dispatch("saveUserInfoBase", $A.isJson(userData) ? userData : userInfo)
|
await dispatch("saveUserInfoBase", $A.isJson(userData) ? userData : cacheItems.userInfo)
|
||||||
|
|
||||||
// readCache
|
// readCache
|
||||||
await dispatch("handleReadCache")
|
await dispatch("handleReadCache")
|
||||||
@ -861,45 +861,77 @@ export default {
|
|||||||
*/
|
*/
|
||||||
handleReadCache({state}) {
|
handleReadCache({state}) {
|
||||||
return new Promise(async resolve => {
|
return new Promise(async resolve => {
|
||||||
state.clientId = await $A.IDBString("clientId")
|
// 定义需要获取的数据映射
|
||||||
state.cacheServerUrl = await $A.IDBString("cacheServerUrl")
|
const dataMap = {
|
||||||
state.cacheUserBasic = await $A.IDBArray("cacheUserBasic")
|
string: [
|
||||||
state.cacheDialogs = (await $A.IDBArray("cacheDialogs")).map(item => Object.assign(item, {loading: false, extra_draft_has: item.extra_draft_content ? 1 : 0}))
|
'clientId',
|
||||||
state.cacheProjects = await $A.IDBArray("cacheProjects")
|
'cacheServerUrl',
|
||||||
state.cacheColumns = await $A.IDBArray("cacheColumns")
|
'cacheTranslationLanguage'
|
||||||
state.cacheTasks = await $A.IDBArray("cacheTasks")
|
],
|
||||||
state.cacheProjectParameter = await $A.IDBArray("cacheProjectParameter")
|
array: [
|
||||||
state.cacheTaskBrowse = await $A.IDBArray("cacheTaskBrowse")
|
'cacheUserBasic',
|
||||||
state.cacheTranslationLanguage = await $A.IDBString("cacheTranslationLanguage")
|
'cacheProjects',
|
||||||
state.cacheTranslations = await $A.IDBArray("cacheTranslations")
|
'cacheColumns',
|
||||||
state.dialogMsgs = await $A.IDBArray("dialogMsgs")
|
'cacheTasks',
|
||||||
state.fileLists = await $A.IDBArray("fileLists")
|
'cacheProjectParameter',
|
||||||
state.userInfo = await $A.IDBJson("userInfo")
|
'cacheTaskBrowse',
|
||||||
state.callAt = await $A.IDBArray("callAt")
|
'cacheTranslations',
|
||||||
state.cacheEmojis = await $A.IDBArray("cacheEmojis")
|
'dialogMsgs',
|
||||||
|
'fileLists',
|
||||||
|
'callAt',
|
||||||
|
'cacheEmojis',
|
||||||
|
'cacheDialogs'
|
||||||
|
],
|
||||||
|
json: [
|
||||||
|
'userInfo'
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
// TranslationLanguage
|
// 批量获取数据
|
||||||
typeof languageList[state.cacheTranslationLanguage] === "undefined" && (state.cacheTranslationLanguage = languageName)
|
const data = await Promise.all([
|
||||||
|
...dataMap.string.map(key => $A.IDBString(key)),
|
||||||
|
...dataMap.array.map(key => $A.IDBArray(key)),
|
||||||
|
...dataMap.json.map(key => $A.IDBJson(key))
|
||||||
|
]);
|
||||||
|
|
||||||
// 会员信息
|
// 更新state
|
||||||
|
[...dataMap.string, ...dataMap.array, ...dataMap.json].forEach((key, index) => {
|
||||||
|
state[key] = data[index];
|
||||||
|
});
|
||||||
|
|
||||||
|
// 特殊处理cacheDialogs
|
||||||
|
state.cacheDialogs = state.cacheDialogs.map(item => ({
|
||||||
|
...item,
|
||||||
|
loading: false,
|
||||||
|
extra_draft_has: item.extra_draft_content ? 1 : 0
|
||||||
|
}));
|
||||||
|
|
||||||
|
// TranslationLanguage检查
|
||||||
|
if (typeof languageList[state.cacheTranslationLanguage] === "undefined") {
|
||||||
|
state.cacheTranslationLanguage = languageName;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理用户信息
|
||||||
if (state.userInfo.userid) {
|
if (state.userInfo.userid) {
|
||||||
state.userId = state.userInfo.userid = $A.runNum(state.userInfo.userid)
|
state.userId = state.userInfo.userid = $A.runNum(state.userInfo.userid);
|
||||||
state.userToken = state.userInfo.token
|
state.userToken = state.userInfo.token;
|
||||||
state.userIsAdmin = $A.inArray("admin", state.userInfo.identity)
|
state.userIsAdmin = $A.inArray("admin", state.userInfo.identity);
|
||||||
}
|
|
||||||
const localId = $A.runNum(window.localStorage.getItem("__system:userId__"))
|
|
||||||
const localToken = window.localStorage.getItem("__system:userToken__") || ""
|
|
||||||
if (state.userId === 0 && localId && localToken) {
|
|
||||||
state.userId = localId
|
|
||||||
state.userToken = localToken
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ServerUrl
|
// 处理本地存储的用户信息
|
||||||
|
const localId = $A.runNum(window.localStorage.getItem("__system:userId__"));
|
||||||
|
const localToken = window.localStorage.getItem("__system:userToken__") || "";
|
||||||
|
if (state.userId === 0 && localId && localToken) {
|
||||||
|
state.userId = localId;
|
||||||
|
state.userToken = localToken;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理ServerUrl
|
||||||
if (state.cacheServerUrl) {
|
if (state.cacheServerUrl) {
|
||||||
window.systemInfo.apiUrl = state.cacheServerUrl
|
window.systemInfo.apiUrl = state.cacheServerUrl
|
||||||
}
|
}
|
||||||
|
|
||||||
resolve()
|
resolve();
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user