mirror of
https://github.com/WeBankFinTech/fes.js.git
synced 2025-04-25 11:06:36 +08:00
40 lines
1.2 KiB
JavaScript
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);
|
|
}
|