| |
| import Vue from 'vue' |
| |
| import Router from 'vue-router' |
| |
| Vue.use(Router) |
| |
| |
| |
| import Layout from '@/layout' |
| |
| |
| |
| import componentsRouter from './modules/components' |
| import chartsRouter from './modules/charts' |
| import tableRouter from './modules/table' |
| import nestedRouter from './modules/nested' |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| export const constantRoutes = [ |
| |
| |
| |
| |
| |
| { |
| path: '/redirect', |
| component: Layout, |
| hidden: true, |
| children: [ |
| { |
| path: '/redirect/:path(.*)', |
| |
| component: () => import('@/views/redirect/index') |
| } |
| ] |
| }, |
| { |
| |
| path: '/login', |
| component: () => import('@/views/login/index'), |
| hidden: true |
| }, |
| { |
| path: '/auth-redirect', |
| component: () => import('@/views/login/auth-redirect'), |
| hidden: true |
| }, |
| { |
| path: '/404', |
| component: () => import('@/views/error-page/404'), |
| hidden: true |
| }, |
| { |
| path: '/401', |
| component: () => import('@/views/error-page/401'), |
| hidden: true |
| }, |
| { |
| path: '/', |
| component: Layout, |
| redirect: '/dashboard', |
| children: [ |
| { |
| path: 'dashboard', |
| component: () => import('@/views/dashboard/index'), |
| name: 'Dashboard', |
| meta: { title: 'Dashboard', icon: 'dashboard', affix: true } |
| } |
| ] |
| }, |
| { |
| path: '/documentation', |
| component: Layout, |
| children: [ |
| { |
| path: 'index', |
| component: () => import('@/views/documentation/index'), |
| name: 'Documentation', |
| meta: { title: 'Documentation', icon: 'documentation', affix: true } |
| } |
| ] |
| }, |
| { |
| path: '/guide', |
| component: Layout, |
| redirect: '/guide/index', |
| children: [ |
| { |
| path: 'index', |
| component: () => import('@/views/guide/index'), |
| name: 'Guide', |
| meta: { title: 'Guide', icon: 'guide', noCache: true } |
| } |
| ] |
| }, |
| { |
| path: '/profile', |
| component: Layout, |
| redirect: '/profile/index', |
| hidden: true, |
| children: [ |
| { |
| path: 'index', |
| component: () => import('@/views/profile/index'), |
| name: 'Profile', |
| meta: { title: 'Profile', icon: 'user', noCache: true } |
| } |
| ] |
| } |
| ] |
| |
| |
| |
| |
| |
| |
| |
| export const asyncRoutes = [ |
| { |
| path: '/permission', |
| component: Layout, |
| redirect: '/permission/page', |
| |
| alwaysShow: false, |
| name: 'Permission', |
| meta: { |
| title: 'Permission', |
| icon: 'lock', |
| |
| roles: ['admin', 'editor'] |
| }, |
| children: [ |
| { |
| path: 'page', |
| component: () => import('@/views/permission/page'), |
| name: 'PagePermission', |
| meta: { |
| title: 'Page Permission', |
| roles: ['admin'] |
| } |
| }, |
| { |
| path: 'directive', |
| component: () => import('@/views/permission/directive'), |
| name: 'DirectivePermission', |
| meta: { |
| title: 'Directive Permission' |
| |
| |
| } |
| }, |
| { |
| path: 'role', |
| component: () => import('@/views/permission/role'), |
| name: 'RolePermission', |
| meta: { |
| title: 'Role Permission', |
| roles: ['admin'] |
| } |
| } |
| ] |
| }, |
| |
| { |
| path: '/icon', |
| component: Layout, |
| children: [ |
| { |
| path: 'index', |
| component: () => import('@/views/icons/index'), |
| name: 'Icons', |
| meta: { title: 'Icons', icon: 'icon', noCache: true } |
| } |
| ] |
| }, |
| |
| |
| componentsRouter, |
| chartsRouter, |
| nestedRouter, |
| tableRouter, |
| |
| { |
| path: '/example', |
| component: Layout, |
| redirect: '/example/list', |
| name: 'Example', |
| meta: { |
| title: 'Example', |
| icon: 'el-icon-s-help' |
| }, |
| children: [ |
| { |
| path: 'create', |
| component: () => import('@/views/example/create'), |
| name: 'CreateArticle', |
| meta: { title: 'Create Article', icon: 'edit' } |
| }, |
| { |
| path: 'edit/:id(\\d+)', |
| component: () => import('@/views/example/edit'), |
| name: 'EditArticle', |
| meta: { title: 'Edit Article', noCache: true, activeMenu: '/example/list' }, |
| hidden: true |
| }, |
| { |
| path: 'list', |
| component: () => import('@/views/example/list'), |
| name: 'ArticleList', |
| meta: { title: 'Article List', icon: 'list' } |
| } |
| ] |
| }, |
| |
| { |
| path: '/tab', |
| component: Layout, |
| children: [ |
| { |
| path: 'index', |
| component: () => import('@/views/tab/index'), |
| name: 'Tab', |
| meta: { title: 'Tab', icon: 'tab' } |
| } |
| ] |
| }, |
| |
| { |
| path: '/error', |
| component: Layout, |
| redirect: 'noRedirect', |
| name: 'ErrorPages', |
| meta: { |
| title: 'Error Pages', |
| icon: '404' |
| }, |
| children: [ |
| { |
| path: '401', |
| component: () => import('@/views/error-page/401'), |
| name: 'Page401', |
| meta: { title: '401', noCache: true } |
| }, |
| { |
| path: '404', |
| component: () => import('@/views/error-page/404'), |
| name: 'Page404', |
| meta: { title: '404', noCache: true } |
| } |
| ] |
| }, |
| |
| { |
| path: '/error-log', |
| component: Layout, |
| children: [ |
| { |
| path: 'log', |
| component: () => import('@/views/error-log/index'), |
| name: 'ErrorLog', |
| meta: { title: 'Error Log', icon: 'bug' } |
| } |
| ] |
| }, |
| |
| { |
| path: '/excel', |
| component: Layout, |
| redirect: '/excel/export-excel', |
| name: 'Excel', |
| meta: { |
| title: 'Excel', |
| icon: 'excel' |
| }, |
| children: [ |
| { |
| path: 'export-excel', |
| component: () => import('@/views/excel/export-excel'), |
| name: 'ExportExcel', |
| meta: { title: 'Export Excel' } |
| }, |
| { |
| path: 'export-selected-excel', |
| component: () => import('@/views/excel/select-excel'), |
| name: 'SelectExcel', |
| meta: { title: 'Export Selected' } |
| }, |
| { |
| path: 'export-merge-header', |
| component: () => import('@/views/excel/merge-header'), |
| name: 'MergeHeader', |
| meta: { title: 'Merge Header' } |
| }, |
| { |
| path: 'upload-excel', |
| component: () => import('@/views/excel/upload-excel'), |
| name: 'UploadExcel', |
| meta: { title: 'Upload Excel' } |
| } |
| ] |
| }, |
| |
| { |
| path: '/zip', |
| component: Layout, |
| redirect: '/zip/download', |
| alwaysShow: true, |
| name: 'Zip', |
| meta: { title: 'Zip', icon: 'zip' }, |
| children: [ |
| { |
| path: 'download', |
| component: () => import('@/views/zip/index'), |
| name: 'ExportZip', |
| meta: { title: 'Export Zip' } |
| } |
| ] |
| }, |
| |
| { |
| path: '/pdf', |
| component: Layout, |
| redirect: '/pdf/index', |
| children: [ |
| { |
| path: 'index', |
| component: () => import('@/views/pdf/index'), |
| name: 'PDF', |
| meta: { title: 'PDF', icon: 'pdf' } |
| } |
| ] |
| }, |
| { |
| path: '/pdf/download', |
| component: () => import('@/views/pdf/download'), |
| hidden: true |
| }, |
| |
| { |
| path: '/theme', |
| component: Layout, |
| children: [ |
| { |
| path: 'index', |
| component: () => import('@/views/theme/index'), |
| name: 'Theme', |
| meta: { title: 'Theme', icon: 'theme' } |
| } |
| ] |
| }, |
| |
| { |
| path: '/clipboard', |
| component: Layout, |
| children: [ |
| { |
| path: 'index', |
| component: () => import('@/views/clipboard/index'), |
| name: 'ClipboardDemo', |
| meta: { title: 'Clipboard', icon: 'clipboard' } |
| } |
| ] |
| }, |
| |
| { |
| path: 'external-link', |
| component: Layout, |
| children: [ |
| { |
| path: 'https://github.com/PanJiaChen/vue-element-admin', |
| meta: { title: 'External Link', icon: 'link' } |
| } |
| ] |
| }, |
| |
| |
| { path: '*', redirect: '/404', hidden: true } |
| ] |
| |
| const createRouter = () => new Router({ |
| |
| scrollBehavior: () => ({ y: 0 }), |
| routes: constantRoutes |
| }) |
| |
| const router = createRouter() |
| |
| |
| export function resetRouter() { |
| const newRouter = createRouter() |
| router.matcher = newRouter.matcher |
| } |
| |
| export default router |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2022-12-27 web概念概述