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 <noreply@anthropic.com>
This commit is contained in:
@@ -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;
|
||||
};
|
||||
|
||||
+7
-2
@@ -18,7 +18,8 @@
|
||||
</template>
|
||||
<van-empty v-else description="账号未启用或未通过注册审核" />
|
||||
</template>
|
||||
<course-package-store v-if="!has_login" />
|
||||
<course-package-store v-if="!has_login && urlOrgId" />
|
||||
<van-empty v-if="!has_login && !urlOrgId" description="请返回微信小程序完成登录" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -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
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user