浏览代码

Merge branch 'dev' of https://git.citupro.com/zhengnaiwen_citu/menduner into dev

lifanagju_citu 3 月之前
父节点
当前提交
71230d0051

文件差异内容过多而无法显示
+ 0 - 0
src/assets/svg/permissionPrompt.svg


+ 7 - 0
src/permission.js

@@ -61,6 +61,13 @@ router.beforeEach(async (to, from, next) => {
       if (isRefresh) {
         isRefresh = false
         const routes = enterpriseStore.assignEnterpriseMenu(enterpriseStore.enterpriseMenu)
+
+        // 有角色但可访问的菜单权限则提示联系管理员分配菜单权限
+        if (!routes || !routes.length) {
+          next('/permissionPrompt')
+          return
+        }
+
         routes.forEach(route => {
           router.addRoute(route)
         })

+ 8 - 10
src/router/modules/remaining.js

@@ -132,16 +132,14 @@ const remainingRouter = [
       title: '404'
     }
   },
-  // { path: '/enterpriseVerification', component: {template: '<div></div>'} },
-  // {
-  //   path: '/:path(.*)*',
-  //   redirect: '/404',
-  //   name: '404PageRedirect',
-  // }
-  // {
-  //   path: '/:catchAll(.*)',
-  //   redirect: '/404'
-  // }
+  {
+    path: '/permissionPrompt',
+    name: 'permissionPrompt',
+    component: () => import('@/views/recruit/enterprise/permissionPrompt/index.vue'),
+    meta: {
+      title: '无权限提示'
+    }
+  }
 ]
 setLoginType(remainingRouter, 'personalCommon') // 暂定:登录企业端不能访问personalCommon路由
 setLoginType(common, 'common') // common 没有身份,任何情况都能访问

+ 1 - 1
src/store/user.js

@@ -153,7 +153,7 @@ export const useUserStore = defineStore('user',
         this.baseInfo = {}
         this.accountInfo = {}
 
-        // 商城模版数据不清缓存
+        // 商城模版数据不清缓存
         const mallTemplate = localStorage.getItem('mallTemplate')
         localStorage.clear()
         localStorage.setItem('mallTemplate', mallTemplate)

+ 30 - 0
src/views/recruit/enterprise/permissionPrompt/index.vue

@@ -0,0 +1,30 @@
+<template>
+  <div class="d-flex align-center flex-column">
+    <svg-icon name="permissionPrompt" size="500"></svg-icon>
+    <div class="color-999 mb-5">抱歉,您当前登录的企业账号未查询到可以访问的企业菜单权限,请联系企业管理员分配菜单权限后再登录。</div>
+    <v-btn class="mt-5" color="primary" width="250" @click="handleToHome">回到首页</v-btn>
+  </div>
+</template>
+
+<script setup>
+defineOptions({ name: 'PermissionPrompt'})
+import { useRouter } from 'vue-router'
+import { logoutToken } from '@/api/common'
+import { getToken } from '@/utils/auth'
+
+const router = useRouter()
+
+const handleToHome = async () => {
+	// 退出企业登录
+	await logoutToken(getToken(1))
+	// 清除企业相关缓存信息
+	const enterpriseLocalStorage = ['ENT_REFRESH_TOKEN', 'ENT_ACCESS_TOKEN', 'entBaseInfo', 'accountInfo', 'isAdmin', 'enterpriseUserAccount', 'entUpdatePassword', 'emailLoginInfo', 'enterpriseStore', 'enterpriseId']
+	enterpriseLocalStorage.forEach(e => localStorage.removeItem(e))
+
+	router.push('/')
+}
+</script>
+
+<style scoped lang="scss">
+
+</style>

部分文件因为文件数量过多而无法显示