mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2025-12-13 09:28:14 +08:00
✨ 添加 isLogin,用以判断是否登录
This commit is contained in:
12
src/App.vue
12
src/App.vue
@@ -99,14 +99,19 @@ async function checkAppLoad(): Promise<void> {
|
||||
color: "error",
|
||||
timeout: 3000,
|
||||
});
|
||||
await createDataDir();
|
||||
} else {
|
||||
appStore.loading = true;
|
||||
console.info("数据库已加载!");
|
||||
}
|
||||
await createDataDir();
|
||||
appStore.loading = true;
|
||||
console.info("数据加载完成!");
|
||||
}
|
||||
|
||||
// 检测 ck,info 数据
|
||||
async function checkUserLoad(): Promise<void> {
|
||||
if (!appStore.isLogin) {
|
||||
console.info("未登录!");
|
||||
return;
|
||||
}
|
||||
const userStore = useUserStore();
|
||||
const ckLocal = userStore.cookie;
|
||||
const ckDB = await TGSqlite.getCookie();
|
||||
@@ -205,6 +210,7 @@ async function getDeepLink(): Promise<void> {
|
||||
|
||||
// 检测更新
|
||||
async function checkUpdate(): Promise<void> {
|
||||
if (!appStore.loading) return;
|
||||
const isProdEnv = import.meta.env.MODE === "production";
|
||||
const needUpdate = await TGSqlite.checkUpdate();
|
||||
if (needUpdate && isProdEnv) {
|
||||
|
||||
@@ -166,11 +166,18 @@ const userStore = useUserStore();
|
||||
const isDevEnv = ref<boolean>(import.meta.env.MODE === "development");
|
||||
|
||||
const userInfo = computed(() => {
|
||||
const info = userStore.getBriefInfo();
|
||||
return {
|
||||
nickname: info?.nickname ?? "未登录",
|
||||
avatar: info?.avatar ?? "/source/UI/defaultUser.webp",
|
||||
};
|
||||
if (appStore.isLogin) {
|
||||
const info = userStore.getBriefInfo();
|
||||
return {
|
||||
nickname: info.nickname,
|
||||
avatar: info.avatar,
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
nickname: "未登录",
|
||||
avatar: "/source/UI/defaultUser.webp",
|
||||
};
|
||||
}
|
||||
});
|
||||
const rail = ref(appStore.sidebar.collapse);
|
||||
// theme
|
||||
@@ -217,8 +224,11 @@ async function switchTheme(): Promise<void> {
|
||||
}
|
||||
|
||||
async function openClient(func: string): Promise<void> {
|
||||
if (userStore.cookie.game_token === "") return login();
|
||||
await mhyClient.open(func);
|
||||
if (appStore.isLogin) {
|
||||
await mhyClient.open(func);
|
||||
} else {
|
||||
login();
|
||||
}
|
||||
}
|
||||
|
||||
function login(): void {
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
<span>{{ dateNow }}</span>
|
||||
<!-- 如果是某人生日,礼物图标颜色为红色 -->
|
||||
<span
|
||||
v-if="birthInfo.isLogin"
|
||||
@click="toBirthday"
|
||||
class="calendar-title-gift"
|
||||
:style="{
|
||||
@@ -76,6 +77,7 @@ import { computed, onMounted, ref } from "vue";
|
||||
|
||||
import { AppCalendarData } from "../../data";
|
||||
import TGSqlite from "../../plugins/Sqlite";
|
||||
import { useAppStore } from "../../store/modules/app";
|
||||
import TGClient from "../../utils/TGClient";
|
||||
import { generateShareImg } from "../../utils/TGShare";
|
||||
import TibCalendarItem from "../itembox/tib-calendar-item.vue";
|
||||
@@ -103,6 +105,7 @@ const selectedType = ref<"avatar" | "weapon">("avatar");
|
||||
|
||||
// birthday
|
||||
const birthInfo = ref({
|
||||
isLogin: true,
|
||||
active: false,
|
||||
text: "点击前往留影叙佳期",
|
||||
});
|
||||
@@ -145,12 +148,15 @@ defineExpose({
|
||||
});
|
||||
|
||||
onMounted(async () => {
|
||||
const birthRes = await TGSqlite.isBirthday();
|
||||
if (birthRes !== false) {
|
||||
birthInfo.value = {
|
||||
active: true,
|
||||
text: `今天是${birthRes}的生日,\n快去送上祝福吧!`,
|
||||
};
|
||||
const appStore = useAppStore();
|
||||
if (appStore.isLogin) {
|
||||
const birthRes = await TGSqlite.isBirthday();
|
||||
if (birthRes !== false) {
|
||||
birthInfo.value.active = true;
|
||||
birthInfo.value.text = `今天是 ${birthRes} 的生日!`;
|
||||
}
|
||||
} else {
|
||||
birthInfo.value.isLogin = false;
|
||||
}
|
||||
const dayNow = new Date().getDay() === 0 ? 7 : new Date().getDay();
|
||||
const week = <{ week: number; text: string }>btnText.find((item) => item.week === dayNow);
|
||||
|
||||
@@ -203,13 +203,22 @@ const showReset = ref<boolean>(false);
|
||||
// data
|
||||
const showHome = ref<string[]>(homeStore.getShowValue());
|
||||
const userInfo = computed(() => {
|
||||
const info = userStore.getBriefInfo();
|
||||
return {
|
||||
nickname: info.nickname || "未登录",
|
||||
uid: info.uid || "-1",
|
||||
desc: info.desc || "未登录",
|
||||
avatar: info.avatar || "/source/UI/defaultUser.webp",
|
||||
};
|
||||
if (!appStore.isLogin) {
|
||||
return {
|
||||
nickname: "未登录",
|
||||
uid: "-1",
|
||||
desc: "请扫码登录",
|
||||
avatar: "/source/UI/defaultUser.webp",
|
||||
};
|
||||
} else {
|
||||
const info = userStore.getBriefInfo();
|
||||
return {
|
||||
nickname: info.nickname,
|
||||
uid: info.uid,
|
||||
desc: info.desc,
|
||||
avatar: info.avatar,
|
||||
};
|
||||
}
|
||||
});
|
||||
const vuetifyTheme = computed(() => {
|
||||
return appStore.theme === "dark" ? "dark" : "light";
|
||||
@@ -278,6 +287,7 @@ async function confirmRefreshUser(): Promise<void> {
|
||||
color: "error",
|
||||
text: "扫码登录后才能刷新用户信息!",
|
||||
});
|
||||
appStore.isLogin = false;
|
||||
return;
|
||||
}
|
||||
const deviceInfo = appStore.deviceInfo;
|
||||
@@ -349,6 +359,7 @@ async function confirmRefreshUser(): Promise<void> {
|
||||
});
|
||||
} else {
|
||||
showSnackbar({ text: "刷新成功!" });
|
||||
appStore.isLogin = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -554,7 +565,7 @@ async function tryShowReset(): Promise<void> {
|
||||
}
|
||||
const time = getBuildTime();
|
||||
const code = time.startsWith("dev.") ? "dev" : time;
|
||||
if (res === code) {
|
||||
if (res === code || res === "reset1128") {
|
||||
showReset.value = true;
|
||||
showSnackbar({
|
||||
text: "已开启重置数据库选项",
|
||||
|
||||
@@ -36,6 +36,8 @@ export const useAppStore = defineStore(
|
||||
const devMode = ref(false);
|
||||
// 应用主题
|
||||
const theme = ref("default");
|
||||
// 是否登录
|
||||
const isLogin = ref(false);
|
||||
|
||||
const dataPath = reactive({
|
||||
userDataDir,
|
||||
@@ -56,6 +58,7 @@ export const useAppStore = defineStore(
|
||||
wiki: false,
|
||||
};
|
||||
theme.value = "default";
|
||||
isLogin.value = false;
|
||||
initDevice();
|
||||
}
|
||||
|
||||
@@ -83,6 +86,7 @@ export const useAppStore = defineStore(
|
||||
dataPath,
|
||||
userPath,
|
||||
deviceInfo,
|
||||
isLogin,
|
||||
init,
|
||||
getSubmenu,
|
||||
changeTheme,
|
||||
@@ -98,7 +102,7 @@ export const useAppStore = defineStore(
|
||||
{
|
||||
key: "app",
|
||||
storage: window.localStorage,
|
||||
paths: ["devMode", "loading", "buildTime"],
|
||||
paths: ["devMode", "loading", "buildTime", "isLogin"],
|
||||
},
|
||||
{
|
||||
key: "sidebar",
|
||||
|
||||
Reference in New Issue
Block a user