create-iking-admin
Version:
金合技术中台脚手架
34 lines (30 loc) • 907 B
text/typescript
/*
* @Author: wfl
* @LastEditors: wfl
* @description:
* @updateInfo:
* @Date: 2022-07-29 11:45:14
* @LastEditTime: 2022-08-08 17:06:24
*/
import { usePermissionStoreWithOut } from '@/global/store/modules/permission';
import type { Router } from 'vue-router';
import { configureDynamicParamsMenu } from '../helper/menuHelper';
import { Menu } from '../types';
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;
}
const menus: Menu[] = permissionStore.getsystemMenuList;
menus.forEach((item) => configureDynamicParamsMenu(item, to.params));
next();
});
}