|
|
@@ -27,7 +27,6 @@ function scrollToTop() {
|
|
|
}
|
|
|
|
|
|
function switchTab(key: TabKey) {
|
|
|
- // 如果用户点击"已购买"但未登录,则显示登录弹窗
|
|
|
if (key === "purchased" && !isLoggedIn.value) {
|
|
|
showLoginDialog.value = true;
|
|
|
return;
|
|
|
@@ -36,24 +35,36 @@ function switchTab(key: TabKey) {
|
|
|
}
|
|
|
|
|
|
function handleLoginSuccess() {
|
|
|
- // 登录成功后的处理
|
|
|
if (active.value === "account") {
|
|
|
- // 如果在账号页面登录成功,刷新用户信息
|
|
|
userStore.sync();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-onMounted(() => {
|
|
|
+onMounted(async () => {
|
|
|
window.addEventListener("scroll", handleScroll, { passive: true });
|
|
|
- // 如果有token,同步用户信息
|
|
|
+
|
|
|
if (userStore.token) {
|
|
|
userStore.sync().catch(() => {
|
|
|
- // 如果同步失败,可能是token过期,清除登录状态
|
|
|
userStore.logout();
|
|
|
+ showLoginDialog.value = true;
|
|
|
});
|
|
|
+ } else {
|
|
|
+ await createGuestAccount();
|
|
|
}
|
|
|
});
|
|
|
|
|
|
+const createGuestAccount = async () => {
|
|
|
+ try {
|
|
|
+ const urlParams = new URLSearchParams(window.location.search);
|
|
|
+ const inviteCode = urlParams.get("code");
|
|
|
+
|
|
|
+ await userStore.createGuest(inviteCode || undefined);
|
|
|
+ console.log("游客账号创建成功", userStore.userInfo);
|
|
|
+ } catch (error) {
|
|
|
+ console.error("创建游客账号失败", error);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
onBeforeUnmount(() => {
|
|
|
window.removeEventListener("scroll", handleScroll);
|
|
|
});
|