diff --git a/core/core-frontend/src/assets/svg/401.svg b/core/core-frontend/src/assets/svg/401.svg new file mode 100644 index 0000000000..d02779fae0 --- /dev/null +++ b/core/core-frontend/src/assets/svg/401.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/core/core-frontend/src/locales/zh-CN.ts b/core/core-frontend/src/locales/zh-CN.ts index dc52fb443a..b89041b7aa 100644 --- a/core/core-frontend/src/locales/zh-CN.ts +++ b/core/core-frontend/src/locales/zh-CN.ts @@ -48,7 +48,8 @@ export default { copy_unsupported: '您的浏览器不支持复制', filter: '筛选', filter_condition: '筛选条件', - no_auth_tips: '缺少菜单权限,请联系管理员' + no_auth_tips: '缺少菜单权限,请联系管理员', + no_menu_tips: '未找到资源 401错误' }, dynamic_time: { set_default: '设置默认值', diff --git a/core/core-frontend/src/permission.ts b/core/core-frontend/src/permission.ts index 402bd50e1c..fe771eca73 100644 --- a/core/core-frontend/src/permission.ts +++ b/core/core-frontend/src/permission.ts @@ -22,7 +22,7 @@ const { start, done } = useNProgress() const { loadStart, loadDone } = usePageLoading() -const whiteList = ['/login', '/de-link', '/chart-view', '/notSupport'] // 不重定向白名单 +const whiteList = ['/login', '/de-link', '/chart-view', '/notSupport', '/admin-login', '/401'] // 不重定向白名单 const embeddedWindowWhiteList = ['/dvCanvas', '/dashboard', '/preview', '/dataset-embedded-form'] const embeddedRouteWhiteList = ['/dataset-embedded', '/dataset-form', '/dataset-embedded-form'] router.beforeEach(async (to, from, next) => { diff --git a/core/core-frontend/src/router/index.ts b/core/core-frontend/src/router/index.ts index fa4b46f162..aaf86225c9 100644 --- a/core/core-frontend/src/router/index.ts +++ b/core/core-frontend/src/router/index.ts @@ -50,6 +50,20 @@ export const routes: AppRouteRecordRaw[] = [ meta: {}, component: () => import('@/views/login/index.vue') }, + { + path: '/admin-login', + name: 'admin-login', + hidden: true, + meta: {}, + component: () => import('@/views/login/index.vue') + }, + { + path: '/401', + name: '401', + hidden: true, + meta: {}, + component: () => import('@/views/401/index.vue') + }, { path: '/dvCanvas', name: 'dvCanvas', diff --git a/core/core-frontend/src/views/401/index.vue b/core/core-frontend/src/views/401/index.vue new file mode 100644 index 0000000000..f41c3bf2a4 --- /dev/null +++ b/core/core-frontend/src/views/401/index.vue @@ -0,0 +1,26 @@ + + + + diff --git a/core/core-frontend/src/views/login/index.vue b/core/core-frontend/src/views/login/index.vue index 31a1d936f9..0e2af9b670 100644 --- a/core/core-frontend/src/views/login/index.vue +++ b/core/core-frontend/src/views/login/index.vue @@ -229,7 +229,12 @@ onMounted(async () => { loadArrearance() if (!checkPlatform()) { const res = await loginCategoryApi() - if (res.data) { + const adminLogin = router.currentRoute?.value?.name === 'admin-login' + if (adminLogin && !res.data) { + router.push('/401') + return + } + if (res.data && !adminLogin) { loadingText.value = '加载中...' document.getElementsByClassName('ed-loading-text')?.length && (document.getElementsByClassName('ed-loading-text')[0]['innerText'] = loadingText.value)