tdesign-vue-next-starter/src/router/index.ts

45 lines
1.0 KiB
TypeScript
Raw Normal View History

2021-09-08 14:55:19 +08:00
import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router';
import routeConfig from '@/config/routes';
const layoutModules = import.meta.glob('../layouts/*');
const pagesModules = import.meta.glob('../pages/**/*.vue');
const fristPagesModules = import.meta.glob('../pages/*.vue');
const modules = { ...layoutModules, ...fristPagesModules, ...pagesModules };
const getMenuRoutes = (list) => {
if (!list) {
return [];
}
return list.map((item) => {
const { path = '', component, meta = { title: item.title }, redirect = '' } = item;
return {
path,
component: modules[component],
children: getMenuRoutes(item.children),
meta,
redirect,
};
});
};
const routes: Array<RouteRecordRaw> = [
...getMenuRoutes(routeConfig),
{
path: '',
redirect: '/dashboard/base',
},
];
const router = createRouter({
2021-09-08 14:55:19 +08:00
history: createWebHashHistory(),
routes,
scrollBehavior() {
return {
el: '#app',
top: 0,
behavior: 'smooth',
};
},
});
export default router;