index.js 7.88 KB
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: '/',
    component: Layout,
    meta: { title: '404' },
    hidden: true,
    children: [
      {
        path: '404',
        component: () => import('@/views/error-page/404'),
        name: '404',
        meta: { title: '404' }
      }
    ]
  },
  // 业务流程框架
  {
    path: '/workFrame',
    component: () => import('@/views/workflow/workFrame.vue'),
    name: 'workFrame',
    hidden: true,
    meta: { title: '发起申请' }
  },
  // 业务流程只读框架
  {
    path: '/workFrameView',
    component: () => import('@/views/workflow/workFrameView.vue'),
    name: 'workFrameView',
    hidden: true,
    meta: { title: '发起申请' }
  },
  {
    path: '*',
    component: Layout,
    meta: { title: '404' },
    redirect: '/404',
    hidden: true,
    children: [
      {
        path: '404',
        component: () => import('@/views/error-page/404'),
        name: '404',
        meta: { title: '404' }
      }
    ]
  },
]
/**
 * 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: 'home',
        meta: { title: '工作台', icon: 'workbench', affix: true }
      }
    ]
  },
  {
    path: '/ywbl',
    id: '2',
    parentId: null,
    component: Layout,
    meta: { title: '业务办理', icon: 'ywbl' },
    redirect: '/ywbl/ywsq',
    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: 'zslqcx',
        id: '45',
        parentId: '4',
        component: () => import('@/views/zhcx/zslqcx/zslqcx.vue'),
        name: 'zslqcx',
        meta: { title: '证书领取查询' }
      },
      // 在建工程抵押查询
      {
        path: 'zxgcdycx',
        id: '46',
        parentId: '4',
        component: () => import('@/views/zhcx/zxgcdycx/zxgcdycx.vue'),
        name: 'zxgcdycx',
        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/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: '打印模板管理' }
      },
    ]
  },
  {
    path: '/xtjk',
    id: '6',
    parentId: null,
    component: Layout,
    meta: { title: '系统监控', icon: 'system' },
    redirect: '/xtjk/cwrz',
    alwaysShow: true,
    name: 'xtjk',
    children: [
      {
        path: 'cwrz',
        id: '61',
        parentId: '6',
        component: () => import('@/views/xtjk/cwrz/cwrz.vue'),
        name: 'cwrz',
        meta: { title: '错误日志' }
      },
      {
        path: 'czrz',
        id: '62',
        parentId: '6',
        component: () => import('@/views/xtjk/czrz/czrz.vue'),
        name: 'czrz',
        meta: { title: '操作日志' }
      },
      // {
      //   path: 'monitor',
      //   id: '63',
      //   parentId: '6',
      //   component: () => import('@/views/xtjk/host/monitor.vue'),
      //   name: 'monitor',
      //   meta: { title: '主机监控' }
      // },
    ]
  }
]

const createRouter = () =>
  new Router({
    scrollBehavior: () => ({ y: 0 }),
    routes: [...constantRoutes]
  })

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