1
0
mirror of https://github.com/fumiama/paper-manager.git synced 2026-06-21 11:02:44 +08:00

add frontend/vben from vben-admin-thin

This commit is contained in:
源文雨
2023-03-10 17:18:32 +08:00
parent 30cd57ef76
commit 2a0fdeae31
469 changed files with 42028 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
import type { Router } from 'vue-router'
import { configureDynamicParamsMenu } from '../helper/menuHelper'
import { Menu } from '../types'
import { PermissionModeEnum } from '/@/enums/appEnum'
import { useAppStoreWithOut } from '/@/store/modules/app'
import { usePermissionStoreWithOut } from '/@/store/modules/permission'
export function createParamMenuGuard(router: Router) {
const permissionStore = usePermissionStoreWithOut()
router.beforeEach(async (to, _, next) => {
// filter no name route
if (!to.name) {
next()
return
}
// menu has been built.
if (!permissionStore.getIsDynamicAddedRoute) {
next()
return
}
let menus: Menu[] = []
if (isBackMode()) {
menus = permissionStore.getBackMenuList
} else if (isRouteMappingMode()) {
menus = permissionStore.getFrontMenuList
}
menus.forEach((item) => configureDynamicParamsMenu(item, to.params))
next()
})
}
const getPermissionMode = () => {
const appStore = useAppStoreWithOut()
return appStore.getProjectConfig.permissionMode
}
const isBackMode = () => {
return getPermissionMode() === PermissionModeEnum.BACK
}
const isRouteMappingMode = () => {
return getPermissionMode() === PermissionModeEnum.ROUTE_MAPPING
}