refactor(projects): 优化路由声明,添加路由模块导入,规范路相关文件夹

This commit is contained in:
Soybean
2021-11-21 18:44:18 +08:00
parent 2fdb5f563f
commit f199794da0
25 changed files with 444 additions and 200 deletions

View File

@ -1,21 +1,27 @@
import type { CustomRoute } from '@/interface';
import { setRouterCacheName, setSingleRoute } from '@/utils';
import { setSingleRoute } from '@/utils';
import { BasicLayout } from '@/layouts';
import About from '@/views/about/index.vue';
import { getRouteConst } from '../const';
import { getRouteConst, routeName } from '../constant';
const { name, path, title } = getRouteConst('about');
setRouterCacheName(About, name);
const ABOUT: CustomRoute = setSingleRoute(BasicLayout, {
name,
path,
component: About,
const ABOUT: CustomRoute = setSingleRoute({
route: {
name,
path,
component: About,
meta: {
requiresAuth: true,
title,
icon: 'fluent:book-information-24-regular'
}
},
container: BasicLayout,
meta: {
requiresAuth: true,
title,
icon: 'fluent:book-information-24-regular'
}
order: 7
},
notFoundName: routeName('not-found')
});
export default ABOUT;

View File

@ -1,18 +1,11 @@
import type { CustomRoute } from '@/interface';
import { BasicLayout, RouterViewLayout } from '@/layouts';
import { setRouterCacheName } from '@/utils';
import ComponentMap from '@/views/component/map/index.vue';
import ComponentVideo from '@/views/component/video/index.vue';
import EditorQuill from '@/views/component/editor/quill/index.vue';
import EditorMarkdown from '@/views/component/editor/markdown/index.vue';
import ComponentSwiper from '@/views/component/swiper/index.vue';
import { routeName, routePath, routeTitle } from '../const';
setRouterCacheName(ComponentMap, routeName('component_map'));
setRouterCacheName(ComponentVideo, routeName('component_video'));
setRouterCacheName(EditorQuill, routeName('component_editor_quill'));
setRouterCacheName(EditorMarkdown, routeName('component_editor_markdown'));
setRouterCacheName(ComponentSwiper, routeName('component_swiper'));
import { routeName, routePath, routeTitle } from '../constant';
const COMPONENT: CustomRoute = {
name: routeName('component'),
@ -22,7 +15,8 @@ const COMPONENT: CustomRoute = {
meta: {
requiresAuth: true,
title: routeTitle('component'),
icon: 'fluent:app-store-24-regular'
icon: 'fluent:app-store-24-regular',
order: 3
},
children: [
{

View File

@ -1,11 +1,8 @@
import type { CustomRoute } from '@/interface';
import { BasicLayout } from '@/layouts';
import { setRouterCacheName } from '@/utils';
import DashboardAnalysis from '@/views/dashboard/analysis/index.vue';
import DashboardWorkbench from '@/views/dashboard/workbench/index.vue';
import { ROUTE_HOME } from '../routes';
import { routeName, routePath, routeTitle } from '../const';
setRouterCacheName(DashboardWorkbench, routeName('dashboard_workbench'));
import { routeName, routePath, routeTitle } from '../constant';
const DASHBOARD: CustomRoute = {
name: routeName('dashboard'),
@ -14,10 +11,20 @@ const DASHBOARD: CustomRoute = {
redirect: { name: routeName('dashboard_analysis') },
meta: {
title: routeTitle('dashboard'),
icon: 'carbon:dashboard'
icon: 'carbon:dashboard',
order: 1
},
children: [
ROUTE_HOME,
{
name: routeName('dashboard_analysis'),
path: routePath('dashboard_analysis'),
component: DashboardAnalysis,
meta: {
keepAlive: true,
requiresAuth: true,
title: routeTitle('dashboard_analysis')
}
},
{
name: routeName('dashboard_workbench'),
path: routePath('dashboard_workbench'),

View File

@ -1,14 +1,9 @@
import type { CustomRoute } from '@/interface';
import { BasicLayout } from '@/layouts';
import { setRouterCacheName } from '@/utils';
import DocumentVue from '@/views/document/vue/index.vue';
import DocumentVite from '@/views/document/vite/index.vue';
import DocumentNaive from '@/views/document/naive/index.vue';
import { routeName, routePath, routeTitle } from '../const';
setRouterCacheName(DocumentVue, routeName('document_vue'));
setRouterCacheName(DocumentVite, routeName('document_vite'));
setRouterCacheName(DocumentNaive, routeName('document_naive'));
import { routeName, routePath, routeTitle } from '../constant';
const DOCUMENT: CustomRoute = {
name: routeName('document'),
@ -18,7 +13,8 @@ const DOCUMENT: CustomRoute = {
meta: {
requiresAuth: true,
title: routeTitle('document'),
icon: 'carbon:document'
icon: 'carbon:document',
order: 2
},
children: [
{

View File

@ -1,14 +1,9 @@
import type { CustomRoute } from '@/interface';
import { BasicLayout } from '@/layouts';
import { setRouterCacheName } from '@/utils';
import Exception403 from '@/views/system/exception/403.vue';
import Exception404 from '@/views/system/exception/404.vue';
import Exception500 from '@/views/system/exception/500.vue';
import { routeName, routePath, routeTitle } from '../const';
setRouterCacheName(Exception404, routeName('exception_404'));
setRouterCacheName(Exception403, routeName('exception_403'));
setRouterCacheName(Exception500, routeName('exception_500'));
import { routeName, routePath, routeTitle } from '../constant';
const EXCEPTION: CustomRoute = {
name: routeName('exception'),
@ -18,7 +13,8 @@ const EXCEPTION: CustomRoute = {
meta: {
requiresAuth: true,
title: routeTitle('exception'),
icon: 'ant-design:exception-outlined'
icon: 'ant-design:exception-outlined',
order: 5
},
children: [
{

View File

@ -1,14 +1,9 @@
import type { CustomRoute } from '@/interface';
import { BasicLayout } from '@/layouts';
import { setRouterCacheName } from '@/utils';
import FeatCopy from '@/views/feat/copy/index.vue';
import FeatIcon from '@/views/feat/icon/index.vue';
import FeatPrint from '@/views/feat/print/index.vue';
import { routeName, routePath, routeTitle } from '../const';
setRouterCacheName(FeatCopy, routeName('feat_copy'));
setRouterCacheName(FeatIcon, routeName('feat_icon'));
setRouterCacheName(FeatPrint, routeName('feat_print'));
import { routeName, routePath, routeTitle } from '../constant';
const FEAT: CustomRoute = {
name: routeName('feat'),
@ -18,7 +13,8 @@ const FEAT: CustomRoute = {
meta: {
requiresAuth: true,
title: routeTitle('feat'),
icon: 'ic:round-repeat'
icon: 'ic:round-repeat',
order: 4
},
children: [
{

View File

@ -1,10 +1,8 @@
import ROOT from './root';
import DASHBOARD from './dashboard';
import DOCUMENT from './document';
import COMPONENT from './component';
import FEAT from './feat';
import EXCEPTION from './exception';
import MULTI_MENU from './multi-menu';
import ABOUT from './about';
import { transformRouteModules } from '@/utils';
import type { ImportedRouteModules } from '@/interface';
export default [ROOT, DASHBOARD, DOCUMENT, COMPONENT, FEAT, EXCEPTION, MULTI_MENU, ABOUT];
const modules = import.meta.globEager('./*.ts') as ImportedRouteModules;
const customRoutes = transformRouteModules(modules);
export default customRoutes;

View File

@ -1,10 +1,7 @@
import type { CustomRoute } from '@/interface';
import { BasicLayout, RouterViewLayout } from '@/layouts';
import { setRouterCacheName } from '@/utils';
import MultiMenuFirstSecond from '@/views/multi-menu/first/second/index.vue';
import { routeName, routePath, routeTitle } from '../const';
setRouterCacheName(MultiMenuFirstSecond, routeName('multi-menu_first_second'));
import { routeName, routePath, routeTitle } from '../constant';
const MULTI_MENU: CustomRoute = {
name: routeName('multi-menu'),
@ -13,7 +10,8 @@ const MULTI_MENU: CustomRoute = {
redirect: { name: routeName('multi-menu_first') },
meta: {
title: routeTitle('multi-menu'),
icon: 'carbon:menu'
icon: 'carbon:menu',
order: 6
},
children: [
{

View File

@ -1,14 +0,0 @@
import type { CustomRoute } from '@/interface';
import { routeName, routePath } from '../const';
import { ROUTE_HOME } from '../routes';
const ROOT: CustomRoute = {
name: routeName('root'),
path: routePath('root'),
redirect: { name: ROUTE_HOME.name },
meta: {
isNotMenu: true
}
};
export default ROOT;