index.js 8.69 KB
/*
 * @Description: 全局路由
 * @Autor: renchao
 * @LastEditTime: 2023-05-26 17:11:19
 */
import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)
import Layout from '@/layout'
/* Router Modules */
// import componentsRouter from './modules/components'

export const constantRoutes = [
  {
    path: '/404',
    component: Layout,
    hidden: true,
    redirect: '/404/index',
    children: [
      {
        path: '/index',
        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: '/djbFrameall',
    component: () => import('@/views/registerBook/djbFrameall.vue'),
    name: 'djbFrameall',
    hidden: true,
    meta: { title: '登记簿详情' }
  },
  // 业务流程只读框架
  {
    path: '/workFrameView',
    component: () => import('@/views/workflow/workFrameView.vue'),
    name: 'workFrameView',
    hidden: true,
    meta: { title: '发起申请' }
  },
  {
    path: '/',
    component: Layout,
    redirect: '/home',
    meta: { title: '首页' },
    children: [
      {
        path: 'home',
        component: () => import('@/views/home/index'),
        name: 'home',
        meta: { title: '工作台', icon: 'workbench', affix: true }
      }
    ]
  },
]
/**
 * asyncRoutes
 * the routes that need to be dynamically loaded based on user roles
 */
export const asyncRoutes = [
  {
    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/guidePage.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: 'xttz',
        id: '95',
        parentId: '9',
        component: () => import('@/views/system/xttz/xttz.vue'),
        name: 'xttz',
        meta: { title: '系统通知' }
      },
      {
        path: 'flfg',
        id: '96',
        parentId: '9',
        component: () => import('@/views/system/flfg/flfg.vue'),
        name: 'flfg',
        meta: { title: '法律法规' }
      },
      {
        path: 'gxhpz',
        id: '97',
        parentId: '9',
        component: () => import('@/views/system/gxhpz/gxhpz.vue'),
        name: 'gxhpz',
        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: 'zjjk',
        id: '63',
        parentId: '6',
        component: () => import('@/views/xtjk/zjjk/zjjk.vue'),
        name: 'zjjk',
        meta: { title: '主机监控' }
      },
    ]
  },
  {
    path: '/jkfw',
    id: '7',
    parentId: null,
    component: Layout,
    meta: { title: '接口服务', icon: 'system' },
    redirect: '/jkfw/ptjk',
    alwaysShow: true,
    name: 'jkfw',
    children: [
      {
        path: 'ptjk',
        id: '71',
        parentId: '7',
        component: () => import('@/views/jkfw/ptjk/ptjk.vue'),
        name: 'ptjk',
        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