import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) /* Layout */ import Layout from '@/layout' /* Router Modules */ // import componentsRouter from './modules/components' export const constantRoutes = [ { path: '/redirect', component: Layout, hidden: true, children: [ { path: '/redirect/:path(.*)', component: () => import('@/views/redirect/index') } ] }, { path: '/404', component: () => import('@/views/error-page/404'), hidden: true }, { path: '*', redirect: '/404', hidden: true } ] /** * asyncRoutes * the routes that need to be dynamically loaded based on user roles */ export const asyncRoutes = [ { path: '/', component: Layout, redirect: '/home', meta: { title: '首页' }, children: [ { path: 'home', component: () => import('@/views/home/index'), name: 'Dashboard', meta: { title: '工作台', icon: 'workbench', affix: true } } ] }, { path: '/ywbl', id: '2', parentId: null, component: Layout, meta: { title: '业务办理', icon: 'ywbl' }, redirect: '/ywbl/ywsq/ywsq', alwaysShow: true, name: 'ywbl', children: [ { path: 'ywsq', id: '21', parentId: '2', component: () => import('@/views/ywbl/ywsq/ywsq.vue'), name: 'ywsq', meta: { title: '业务申请' } }, { path: 'dbx', id: '22', parentId: '2', component: () => import('@/views/ywbl/dbx/dbx.vue'), name: 'dbx', meta: { title: '待办箱' } }, { path: 'ybx', id: '23', parentId: '2', component: () => import('@/views/ywbl/ybx/ybx.vue'), name: 'ybx', meta: { title: '已办箱' } } ] }, { path: '/sqcx', id: '3', parentId: null, component: Layout, meta: { title: '申请查询', icon: 'sqcx' }, redirect: '/sqcx/jtfc', alwaysShow: true, name: 'sqcx', children: [ { path: 'jtfc', id: '31', parentId: '3', component: () => import('@/views/sqcx/jtfc/jtfc.vue'), name: 'jtfc', meta: { title: '家庭房产' } }, { path: 'dydjb', id: '32', parentId: '3', component: () => import('@/views/sqcx/dydjb/dydjb.vue'), name: 'dydjb', meta: { title: '打印登记薄' } }, { path: 'sqcxjl', id: '33', parentId: '3', component: () => import('@/views/sqcx/sqcxjl/sqcxjl.vue'), name: 'cxjl', meta: { title: '申请查询记录' } } ] }, { path: '/zhcx', id: '4', parentId: null, component: Layout, meta: { title: '综合查询', icon: 'zhcx' }, redirect: '/zhcx/jdcx', alwaysShow: true, name: 'zhcx', children: [ { path: 'jdcx', id: '41', parentId: '4', component: () => import('@/views/zhcx/jdcx/jdcx.vue'), name: 'jdcx', meta: { title: '进度查询' } }, { path: 'djbcx', id: '42', parentId: '4', component: () => import('@/views/zhcx/djbcx/djbcx.vue'), name: 'djbcx', meta: { title: '登记簿查询' } }, { path: 'lpcx', id: '43', parentId: '4', component: () => import('@/views/zhcx/lpcx/lpcx.vue'), name: 'lpcx', meta: { title: '楼盘查询' } } ] }, { path: '/zsgl', id: '5', parentId: null, component: Layout, meta: { title: '证书管理', icon: 'zsgl' }, redirect: '/zsgl/zsrk', alwaysShow: true, name: 'zsgl', children: [ { path: 'zsrk', id: '51', parentId: '5', component: () => import('@/views/zsgl/zsrk/zsrk.vue'), name: 'zsrk', meta: { title: '证书入库' } }, { path: 'zsff', id: '52', parentId: '5', component: () => import('@/views/zsgl/zsff/zsff.vue'), name: 'zsff', meta: { title: '证书分发' } }, { path: 'zssyjl', id: '53', parentId: '5', component: () => import('@/views/zsgl/zssyjl/zssyjl.vue'), name: 'zssyjl', meta: { title: '证书使用记录' } } ] }, { path: '/system', id: '9', parentId: null, component: Layout, meta: { title: '系统管理', icon: 'system' }, redirect: '/system/dictionaries', alwaysShow: true, name: 'system', children: [ { path: 'dictionaries', id: '91', parentId: '9', component: () => import('@/views/system/dictionaries.vue'), name: 'dictionaries', meta: { title: '字典管理' } }, { path: 'sqywgz', id: '92', parentId: '9', component: () => import('@/views/system/sqywgz/sqywgz.vue'), name: 'sqywgz', meta: { title: '申请业务规则' } }, { path: 'qtjfjmb', id: '93', parentId: '9', component: () => import('@/views/system/qtjfjmb/qtjfjmb.vue'), name: 'qtjfjmb', meta: { title: '其他及附记模板' } }, { path: 'dymbgl', id: '94', parentId: '9', component: () => import('@/views/system/dymbgl/dymbgl.vue'), name: 'dymbgl', meta: { title: '打印模板管理' } }, ] } ] const createRouter = () => new Router({ scrollBehavior: () => ({ y: 0 }), routes: [...constantRoutes, ...asyncRoutes] }) const router = createRouter() // Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465 export function resetRouter () { const newRouter = createRouter() router.matcher = newRouter.matcher // reset router } export default router