From 0b13963800eadb0a87a68809e8cbfecb6592fde7 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期三, 25 九月 2024 18:30:36 +0800 Subject: [PATCH] 新装机界面 --- src/permission.ts | 108 ++++++++++++++++++++++++++++++++---------------------- 1 files changed, 64 insertions(+), 44 deletions(-) diff --git a/src/permission.ts b/src/permission.ts index a2e58d1..a4ea69d 100644 --- a/src/permission.ts +++ b/src/permission.ts @@ -53,58 +53,78 @@ '/auth-redirect', '/bind', '/register', - '/oauthLogin/gitee' + '/oauthLogin/gitee', + '/calling-screen-big', + '/calling-screen-room' ] // 璺敱鍔犺浇鍓� router.beforeEach(async (to, from, next) => { + console.info("router.beforeEach to: " + to.fullPath + " from: " + from.fullPath) start() loadStart() - if (getAccessToken()) { - if (to.path === '/login') { - next({ path: '/' }) - } else { - // 鑾峰彇鎵�鏈夊瓧鍏� - const dictStore = useDictStoreWithOut() - const userStore = useUserStoreWithOut() - const permissionStore = usePermissionStoreWithOut() - if (!dictStore.getIsSetDict) { - await dictStore.setDictMap() - } - if (!userStore.getIsSetUser) { - isRelogin.show = true - await userStore.setUserInfoAction() - isRelogin.show = false - // 鍚庣杩囨护鑿滃崟 - await permissionStore.generateRoutes() - permissionStore.getAddRouters.forEach((route) => { - router.addRoute(route as unknown as RouteRecordRaw) // 鍔ㄦ�佹坊鍔犲彲璁块棶璺敱琛� - }) - // 鏂板銆愯瘖瀹ら�夋嫨銆戦�昏緫 - if (userStore.getRoles.includes("doctor") && !userStore.getIsSetRoom ) { - next({path: "/login-room-select"}) - } - // <<<銆愯瘖瀹ら�夋嫨銆�<<< - else { - const redirectPath = from.query.redirect || to.path - // 淇璺宠浆鏃朵笉甯﹀弬鏁扮殑闂 - const redirect = decodeURIComponent(redirectPath as string) - const {paramsObject: query} = parseURL(redirect) - const nextData = to.path === redirect ? {...to, replace: true} : {path: redirect, query} - next(nextData) - } - } else { - next() - } - } - } else { - if (whiteList.indexOf(to.path) !== -1) { - next() - } else { - next(`/login?redirect=${to.fullPath}`) // 鍚﹀垯鍏ㄩ儴閲嶅畾鍚戝埌鐧诲綍椤� - } + if (whiteList.indexOf(to.path) !== -1) { + next() + return } + + if (!getAccessToken()) { + next(`/login?redirect=${to.fullPath}`) // 鍚﹀垯鍏ㄩ儴閲嶅畾鍚戝埌鐧诲綍椤� + return + } + + if (to.path === '/login') { + next({ path: '/' }) + return + } + + // 鑾峰彇鎵�鏈夊瓧鍏� + const dictStore = useDictStoreWithOut() + const userStore = useUserStoreWithOut() + const permissionStore = usePermissionStoreWithOut() + if (!dictStore.getIsSetDict) { + await dictStore.setDictMap() + } + + if (userStore.getIsSetUser ) { + + // <<<銆愯瘖瀹ら�夋嫨銆�<<< + if ( to.path !== '/roomselect' && + userStore.getRoles.includes("doctor") && !userStore.getRoles.includes("super_admin") + && !userStore.getIsSetRoom ) { + next({path: `/roomselect?redirect=${to.fullPath}`}) + return + } + + next() + return + } + + isRelogin.show = true + await userStore.setUserInfoAction() + isRelogin.show = false + + // 鍚庣杩囨护鑿滃崟 + await permissionStore.generateRoutes() + permissionStore.getAddRouters.forEach((route) => { + router.addRoute(route as unknown as RouteRecordRaw) // 鍔ㄦ�佹坊鍔犲彲璁块棶璺敱琛� + }) + + // <<<銆愯瘖瀹ら�夋嫨銆�<<< + if ( to.path !== '/roomselect' && + userStore.getRoles.includes("doctor") && !userStore.getRoles.includes("super_admin") + && !userStore.getIsSetRoom ) { + next({path: `/roomselect?redirect=${to.fullPath}`}) + return + } + + const redirectPath = from.query.redirect || to.path + // 淇璺宠浆鏃朵笉甯﹀弬鏁扮殑闂 + const redirect = decodeURIComponent(redirectPath as string) + const {paramsObject: query} = parseURL(redirect) + const nextData = to.path === redirect ? {...to, replace: true} : {path: redirect, query} + next(nextData) }) router.afterEach((to) => { -- Gitblit v1.9.3