| 12345678910111213141516171819202122232425262728293031 |
- const viewModules = import.meta.glob('../view/**/*.vue')
- const pluginModules = import.meta.glob('../plugin/**/*.vue')
- export const asyncRouterHandle = (asyncRouter) => {
- asyncRouter.forEach(item => {
- if (item.component && typeof item.component === 'string') {
- if (item.component.split('/')[0] === 'view') {
- item.component = dynamicImport(viewModules, item.component)
- } else if (item.component.split('/')[0] === 'plugin') {
- item.component = dynamicImport(pluginModules, item.component)
- }
- }
- if (item.children) {
- asyncRouterHandle(item.children)
- }
- })
- }
- function dynamicImport(
- dynamicViewsModules,
- component
- ) {
- const keys = Object.keys(dynamicViewsModules)
- const matchKeys = keys.filter((key) => {
- const k = key.replace('../', '')
- return k === component
- })
- const matchKey = matchKeys[0]
- return dynamicViewsModules[matchKey]
- }
|