import Vue from 'vue' import VueRouter, { RouteConfig,RouteRecord } from 'vue-router' // import HomeView from '../views/HomeView.vue' import Layout from '@/layout/index.vue' Vue.use(VueRouter) export const constantRoutes: Array = [ // { // path: '/', // name: 'home', // component: HomeView // }, // { // path: '/about', // name: 'about', // // route level code-splitting // // this generates a separate chunk (about.[hash].js) for this route // // which is lazy-loaded when the route is visited. // component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue') // }, { path: '/login', component: () => import('../views/login.vue'), hidden: true }, { path: '/register', component: () => import('@/views/register.vue'), hidden: true }, { path: '', component: Layout, redirect: 'index', children: [ { path: 'index', component: () => import('@/views/index.vue'), name: 'Index', meta: { title: '首页', icon: 'dashboard', affix: true } } ] }, { path: '/user', component: Layout, hidden: true, redirect: 'noredirect', children: [ { path: 'profile', component: () => import('@/views/system/user/profile/index.vue'), name: 'Profile', meta: { title: '个人中心', icon: 'user' } } ] }, { path:'/order', name:'Order', component:() => import('@/views/demo/order/order.vue') }, { path:'/demo', name:'Demo', hidden: true, component:() => import('@/views/demo/index.vue'), // redirect: 'form', children:[ { path:'form', component:()=> import('@/views/demo/form.vue'), name:'Form', meta: { title: '表单', activeMenu: '/system/user' } }, { path:'table', component:()=> import('@/views/demo/table.vue'), name:'Table', meta: { title: '表格', activeMenu: '/system/user' } }, { path:'moduleView', component:()=> import('@/views/demo/moduleView.vue'), name:'ModuleView', meta: { title: 'view封装' } }, { path:'bill', component:()=> import('@/views/demo/bill.vue'), name:'Bill', meta: { title: '单据' } }, { path:'dialog', component:()=> import('@/views/demo/dialogDemo.vue'), name:'Dialog', meta: { title: '弹窗' } }, { path:'tab', component:()=> import('@/views/demo/tab.vue'), name:'Tab', meta: { title: '标签' } } ] } ] // 动态路由,基于用户权限动态去加载 export const dynamicRoutes = [ // { // path: '/system/user-auth', // component: Layout, // hidden: true, // permissions: ['system:user:edit'], // children: [{ // path: 'role/:userId(\\d+)', // component: () => import('@/views/system/user/authRole'), // name: 'AuthRole', // meta: { // title: '分配角色', // activeMenu: '/system/user' // } // }] // }, // { // path: '/system/role-auth', // component: Layout, // hidden: true, // permissions: ['system:role:edit'], // children: [{ // path: 'user/:roleId(\\d+)', // component: () => import('@/views/system/role/authUser'), // name: 'AuthUser', // meta: { // title: '分配用户', // activeMenu: '/system/role' // } // }] // }, // { // path: '/system/dict-data', // component: Layout, // hidden: true, // permissions: ['system:dict:list'], // children: [{ // path: 'index/:dictId(\\d+)', // component: () => import('@/views/system/dict/data'), // name: 'Data', // meta: { // title: '字典数据', // activeMenu: '/system/dict' // } // }] // }, // { // path: '/monitor/job-log', // component: Layout, // hidden: true, // permissions: ['monitor:job:list'], // children: [{ // path: 'index/:jobId(\\d+)', // component: () => import('@/views/monitor/job/log'), // name: 'JobLog', // meta: { // title: '调度日志', // activeMenu: '/monitor/job' // } // }] // }, // { // path: '/tool/gen-edit', // component: Layout, // hidden: true, // permissions: ['tool:gen:edit'], // children: [{ // path: 'index/:tableId(\\d+)', // component: () => import('@/views/tool/gen/editTable'), // name: 'GenEdit', // meta: { // title: '修改生成配置', // activeMenu: '/tool/gen' // } // }] // } ] // 防止连续点击多次路由报错 let routerPush:any = VueRouter.prototype.push; VueRouter.prototype.push = function push(location) { return routerPush.call(this, location).catch((err:any) => err) } const router = new VueRouter({ mode: 'history', base: process.env.BASE_URL, routes: constantRoutes }) export default router