From ddaa862582270fa79b0f4cfc0aef7d58375cbbe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=E7=94=B7?= Date: Fri, 1 May 2026 08:43:13 +0800 Subject: [PATCH] fix: handle empty org_id gracefully in course-package-store + index.vue - CoursePackageStore: don't show error when no orgId and unauth, just show empty state - index.vue: only render CoursePackageStore when org_id is available in URL, otherwise show original login prompt Co-Authored-By: Claude Opus 4.7 --- src/components/course-package-store.vue | 11 ++++++----- src/pages/index.vue | 9 +++++++-- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/components/course-package-store.vue b/src/components/course-package-store.vue index 7e923af..6777a21 100644 --- a/src/components/course-package-store.vue +++ b/src/components/course-package-store.vue @@ -87,14 +87,15 @@ export default defineComponent({ const loadPackages = async () => { state.loading = true; state.error = false; - let ok: boolean; const orgId = resolvedOrgId.value; if (orgId) { - ok = await queryPublicPackages(orgId); - } else { - ok = isLoggedIn() ? await queryOrgPackages() : false; + const ok = await queryPublicPackages(orgId); + state.error = !ok; + } else if (isLoggedIn()) { + const ok = await queryOrgPackages(); + state.error = !ok; } - state.error = !ok; + // No orgId and unauth: show empty state, not error state.loading = false; state.loaded = true; }; diff --git a/src/pages/index.vue b/src/pages/index.vue index 255b57e..dce226f 100644 --- a/src/pages/index.vue +++ b/src/pages/index.vue @@ -18,7 +18,8 @@ - + + @@ -127,6 +128,10 @@ export default defineComponent({ { value: HtyBaseRoles.TEACHER, label: "老师" }, ]; const has_login = computed(() => !!store.current.hty_id); + const urlOrgId = computed(() => { + const params = new URLSearchParams(window.location.search); + return params.get('org_id') || ''; + }); const is_registered = computed(() => store.current.is_registered); const is_enabled = computed(() => store.current.enabled); const authorized = computed(() => userStatus === UserStates.Authorized); @@ -189,7 +194,7 @@ export default defineComponent({ return { is_registered, is_enabled, is_student, has_teacher, has_login, authorized, activeRoles, chooseRole, setRole, store, - initial_roles, scene + initial_roles, scene, urlOrgId } }, });