feat:动态权限
This commit is contained in:
@@ -1,9 +1,16 @@
|
||||
import { RouteRecordRaw } from 'vue-router'
|
||||
// @ts-ignore
|
||||
const modules = import.meta.glob('@/module/**/views/router.ts', { eager: true })
|
||||
let moduleRoutes: RouteRecordRaw[] = []
|
||||
export function getModuleRoutes() {
|
||||
const modules = import.meta.glob('@/module/**/views/router.ts', { eager: true })
|
||||
let moduleRoutes: RouteRecordRaw[] = []
|
||||
|
||||
Object.keys(modules).forEach(routePath => {
|
||||
moduleRoutes = moduleRoutes.concat(modules[routePath].default)
|
||||
})
|
||||
export default moduleRoutes
|
||||
Object.keys(modules).forEach(routePath => {
|
||||
moduleRoutes = moduleRoutes.concat(modules[routePath].default)
|
||||
})
|
||||
|
||||
return moduleRoutes
|
||||
}
|
||||
|
||||
export function getModuleViewComponents() {
|
||||
return import.meta.glob(['@/module/**/views/**/*.vue', '@/module/!User/views/**/*.vue', '@/module/!Develop/views/**/*.vue', '@/module/!Options/views/**/*.vue'])
|
||||
}
|
||||
|
@@ -5,6 +5,7 @@ import { WhiteListPage } from '/admin/enum/app'
|
||||
import { Router, RouteRecordRaw } from 'vue-router'
|
||||
import { usePermissionsStore } from '/admin/stores/modules/user/permissions'
|
||||
import { Menu } from '/admin/types/Menu'
|
||||
import { toRaw } from 'vue'
|
||||
|
||||
const guard = (router: Router) => {
|
||||
// white list
|
||||
@@ -36,7 +37,7 @@ const guard = (router: Router) => {
|
||||
// 挂载路由(实际是从后端获取用户的权限)
|
||||
const permissionStore = usePermissionsStore()
|
||||
// 动态路由挂载
|
||||
const asyncRoutes = permissionStore.getAsyncMenusFrom(userStore.getPermissions)
|
||||
const asyncRoutes = permissionStore.getAsyncMenusFrom(toRaw(userStore.getPermissions))
|
||||
asyncRoutes.forEach((route: Menu) => {
|
||||
router.addRoute(route as unknown as RouteRecordRaw)
|
||||
})
|
||||
|
@@ -1,8 +1,10 @@
|
||||
import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'
|
||||
import type { App } from 'vue'
|
||||
// module routers
|
||||
import moduleRoutes from './constantRoutes'
|
||||
import { getModuleRoutes, getModuleViewComponents } from './constantRoutes'
|
||||
|
||||
const moduleRoutes = getModuleRoutes()
|
||||
getModuleViewComponents()
|
||||
export const constantRoutes: RouteRecordRaw[] = [
|
||||
{
|
||||
path: '/dashboard',
|
||||
|
Reference in New Issue
Block a user