万纯 14c00a8ffc feat: 优化plugin-access和plugin-layout
1. access插件提供找不到页面时的处理器
2. 文件路径转路由路径优化
3. 提供按需加载插件配置dynamicImport
2021-03-04 19:48:07 +08:00

40 lines
1.2 KiB
JavaScript

import { plugin, ApplyPluginsType } from '@@/core/coreExports';
import { access, install } from './core';
export function onRouterCreated({ router }) {
router.beforeEach(async (to, from, next) => {
const runtimeConfig = plugin.applyPlugins({
key: 'access',
type: ApplyPluginsType.modify,
initialValue: {}
});
if (to.matched.length === 0) {
if (runtimeConfig.noFoundHandler && typeof runtimeConfig.noFoundHandler === 'function') {
return runtimeConfig.noFoundHandler({
router, to, from, next
});
}
}
let path;
if (to.matched.length === 1) {
path = to.matched[0].path;
} else {
path = to.path;
}
const canRoute = await access.hasAccess(path);
if (canRoute) {
return next();
}
if (runtimeConfig.unAccessHandler && typeof runtimeConfig.unAccessHandler === 'function') {
return runtimeConfig.unAccessHandler({
router, to, from, next
});
}
next(false);
});
}
export function onAppCreated({ app }) {
install(app);
}