🎨 完善 ck,briefInfo 获取

This commit is contained in:
BTMuli
2023-10-09 00:18:50 +08:00
parent 66ecd9a91e
commit 7841ea4a79
2 changed files with 42 additions and 4 deletions

View File

@@ -14,15 +14,16 @@
// vue // vue
import { onBeforeMount, onMounted, ref } from "vue"; import { onBeforeMount, onMounted, ref } from "vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import showSnackbar from "./components/func/snackbar";
import TSidebar from "./components/app/t-sidebar.vue"; import TSidebar from "./components/app/t-sidebar.vue";
import TBackTop from "./components/app/t-backTop.vue"; import TBackTop from "./components/app/t-backTop.vue";
// tauri // tauri
import { app, event, fs, tauri, window as TauriWindow } from "@tauri-apps/api"; import { app, event, fs, tauri, window as TauriWindow } from "@tauri-apps/api";
// store // store
import { useAppStore } from "./store/modules/app"; import { useAppStore } from "./store/modules/app";
import { useUserStore } from "./store/modules/user";
// utils // utils
import { getEmojis } from "./plugins/Mys/request/getEmojis"; import { getEmojis } from "./plugins/Mys/request/getEmojis";
import showSnackbar from "./components/func/snackbar";
import TGSqlite from "./plugins/Sqlite"; import TGSqlite from "./plugins/Sqlite";
const appStore = useAppStore(); const appStore = useAppStore();
@@ -40,7 +41,8 @@ onBeforeMount(async () => {
await getDeepLink(); await getDeepLink();
await win.setTitle(title); await win.setTitle(title);
await emojiLoad(); await emojiLoad();
await checkLoad(); await checkAppLoad();
await checkUserLoad();
} }
}); });
@@ -75,7 +77,7 @@ async function emojiLoad(): Promise<void> {
} }
} }
async function checkLoad(): Promise<void> { async function checkAppLoad(): Promise<void> {
if (appStore.loading) { if (appStore.loading) {
console.info("数据已加载!"); console.info("数据已加载!");
return; return;
@@ -86,6 +88,41 @@ async function checkLoad(): Promise<void> {
console.info("数据加载完成!"); console.info("数据加载完成!");
} }
// 检测 ck,info 数据
async function checkUserLoad(): Promise<void> {
const userStore = useUserStore();
const ckLocal = userStore.cookie;
const ckDB = await TGSqlite.getCookie();
if (JSON.stringify(ckLocal) !== JSON.stringify(ckDB)) {
userStore.cookie = ckDB;
console.info("cookie 数据已更新!");
} else if (JSON.stringify(ckLocal) === "{}") {
await new Promise((resolve) => {
setTimeout(() => {
showSnackbar({
text: "请先登录!",
color: "error",
timeout: 3000,
});
resolve(true);
}, 3000);
});
} else {
console.info("cookie 数据已加载!");
}
const infoLocal = userStore.briefInfo;
const appData = await TGSqlite.getAppData();
const infoDB = appData.find((item) => item.key === "userInfo")?.value;
if (infoDB === undefined && JSON.stringify(infoLocal) !== "{}") {
await TGSqlite.saveAppData("userInfo", JSON.stringify(infoLocal));
} else if (infoDB !== undefined && infoLocal !== JSON.parse(infoDB)) {
userStore.setBriefInfo(JSON.parse(infoDB));
console.info("briefInfo 数据已更新!");
} else {
console.info("briefInfo 数据已加载!");
}
}
// 创建数据文件夹 // 创建数据文件夹
async function createDataDir(): Promise<void> { async function createDataDir(): Promise<void> {
if (!(await fs.exists("userData", { dir: fs.BaseDirectory.AppLocalData }))) { if (!(await fs.exists("userData", { dir: fs.BaseDirectory.AppLocalData }))) {

View File

@@ -270,7 +270,7 @@ async function confirmRefreshUser(): Promise<void> {
return; return;
} }
const ck = userStore.cookie; const ck = userStore.cookie;
if (Object.keys(ck).length < 1) { if (JSON.stringify(ck) === "{}") {
showSnackbar({ showSnackbar({
color: "error", color: "error",
text: "扫码登录后才能刷新用户信息!", text: "扫码登录后才能刷新用户信息!",
@@ -314,6 +314,7 @@ async function confirmRefreshUser(): Promise<void> {
failCount++; failCount++;
} else { } else {
userStore.setBriefInfo(infoRes); userStore.setBriefInfo(infoRes);
await TGSqlite.saveAppData("userInfo", JSON.stringify(infoRes));
loadingTitle.value = "获取成功!正在获取用户游戏账号信息"; loadingTitle.value = "获取成功!正在获取用户游戏账号信息";
} }
const accountRes = await TGRequest.User.byCookie.getAccounts(ck.cookie_token, ck.account_id); const accountRes = await TGRequest.User.byCookie.getAccounts(ck.cookie_token, ck.account_id);