This commit is contained in:
owenchen committed 2026-10-13 10:47:39 +08:00
1 parent 6a8258ac4b
commit a7b25d49c4
29 files changed
+1960 -649

No files matched your search

+3 -2
View File
@@ -1,7 +1,8 @@
<script setup lang="ts">
// 403 无权限页,移植自旧 WebVue 的 views/error/page403.vue
// 谁来跳:请求层拿到 HTTP 403(common/http.interceptor)时带原地址跳本页;
// 页面级权限校验(旧 setupPermissionGuard)等 PAGE_PERMISSIONS 接入后接在 nav-guard
// 谁来跳两处:1) 请求层拿到 HTTP 403(common/http.interceptor)时带原地址跳本页;
// 2) 导航守卫第三步 canVisitPage 不通过(router/nav-guard + permission/permission-context)
// 权限判定语义见 src/md/permission.md
import { onLoad } from "@dcloudio/uni-app";
import { useLocale } from "uview-pro";
import { computed, ref } from "vue";
+5 -2
View File
@@ -11,7 +11,7 @@ import { backendLocale, baseUrl } from "@/common/http.interceptor";
import { encryptLoginPassword } from "@/common/pwd-crypto";
import { LoginData as LoginDataClass } from "@/data/auto/loginData";
import { reloadLocales } from "@/locale";
import { decodeQueryPath, pageUrl, resolvePageName } from "@/router/routes";
import { decodeQueryPath, isAuthFree, pageUrl, resolvePageName } from "@/router/routes";
import authService from "@/service/security/authService";
import { useLoginProfileStore } from "@/stores";
@@ -27,7 +27,10 @@ const loginProfileStore = useLoginProfileStore();
const redirectUrl = ref(pageUrl("dashboard"));
onLoad((options) => {
const target = decodeQueryPath(options?.redirect);
if (resolvePageName(target)) {
const name = resolvePageName(target);
// 还要求"不是免登录页":把手敲的 ?redirect=/ 或 ?redirect=/error/page401 放过来,
// 登录后要么原地回到登录页,要么落到一个写着"你没登录"的页面
if (name && !isAuthFree(name)) {
redirectUrl.value = target;
}
});