index.js 9.96 KB
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
/* Layout */
import Layout from '@/layout'
import Layout1 from '@/layout1'

/* 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: '/dataView',
    name: 'dataView',
    component: () => import('@/views/dataView/index')
  }
]
/**
 * 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: '/jsbwcx',
    component: Layout,
    children: [
      {
        path: 'index',
        component: () => import('@/views/jsbwcx/index'),
        name: 'jsbwcx',
        meta: { title: '接收报文查询', icon: 'zsgl' }
      }
    ]
  },
  // 上报报文查询
  {
    path: '/sbbwcx',
    component: Layout,
    children: [
      {
        path: 'index',
        component: () => import('@/views/sbbwcx/index'),
        name: 'sbbwcx',
        meta: { title: '上报报文查询', icon: 'zsgl' }
      }
    ]
  },
  // 登簿日志
  {
    path: '/dbrzcx',
    component: Layout,
    children: [
      {
        path: 'index',
        component: () => import('@/views/dbrzcx/index'),
        name: 'dbrzcx',
        meta: { title: '登簿日志查询', icon: 'zhcx' }
      }
    ]
  },
  // 监控统计
  {
    path: '/jktj',
    component: Layout,
    children: [
      {
        path: 'index',
        component: () => import('@/views/jktj/index'),
        name: 'jktj',
        meta: { title: '监控统计', icon: 'zhcx' }
      }
    ]
  },
  // 接入区域管理
  {
    path: '/jrqygl',
    component: Layout,
    children: [
      {
        path: 'index',
        component: () => import('@/views/jrqygl/index'),
        name: 'jrqygl',
        meta: { title: '接入区域管理', icon: 'zhcx' }
      }
    ]
  },
  // 接收规则管理
  {
    path: '/jsgzgl',
    component: Layout,
    children: [
      {
        path: 'index',
        component: () => import('@/views/jsgzgl/index'),
        name: 'jsgzgl',
        meta: { title: '接收规则管理', icon: 'zhcx' }
      }
    ]
  },
  // 接收报文重新入库
  {
    path: '/jsbwcxrk',
    component: Layout,
    children: [
      {
        path: 'index',
        component: () => import('@/views/jsbwcxrk/index'),
        name: 'jsbwcxrk',
        meta: { title: '接收报文重新入库', icon: 'zhcx' }
      }
    ]
  },
  // 报文重新入库日志
  {
    path: '/bwcxrkrz',
    component: Layout,
    children: [
      {
        path: 'index',
        component: () => import('@/views/bwcxrkrz/index'),
        name: 'bwcxrkrz',
        meta: { title: '报文重新入库日志', icon: 'zhcx' }
      }
    ]
  },
  // 中心日志
  {
    path: '/zxrz',
    component: Layout,
    children: [
      {
        path: 'index',
        component: () => import('@/views/zxrz/index'),
        name: 'zxrz',
        meta: { title: '中心日志', icon: 'zhcx' }
      }
    ]
  },
  // 接入业务信息
  {
    path: '/busineInfo',
    component: Layout,
    meta: { title: '接入业务信息', icon: 'sqcx', breadcrumb: false },
    redirect: '/busineInfo/landOwnership',
    alwaysShow: true,
    name: 'busineInfo',
    children: [
      {
        path: 'landOwnership',
        component: () => import('@/views/business-info/land-ownership/index'),
        name: 'landOwnership',
        meta: { title: '土地所有权' }
      },
      {
        path: 'landBuilding',
        component: () => import('@/views/business-info/land-building/index'),
        name: 'landBuilding',
        meta: { title: '建设用地、宅基地使用权' }
      },
      {
        path: 'realEstateMany',
        component: () => import('@/views/business-info/real-estate-many/index'),
        name: 'realEstateMany',
        meta: { title: '房地产权(项目内多幢房屋)' }
      },
      {
        path: 'realEstateSingle',
        component: () => import('@/views/business-info/real-estate-single/index'),
        name: 'realEstateSingle',
        meta: { title: '房地产权(独幢、层、套、间、房屋)' }
      },
      {
        path: 'ownerShare',
        component: () => import('@/views/business-info/owner-share/index'),
        name: 'ownerShare',
        meta: { title: '建筑物区分所有权业主共有部分' }
      },
      {
        path: 'seaArea',
        component: () => import('@/views/business-info/sea-area/index'),
        name: 'seaArea',
        meta: { title: ' 海域(含无居民海岛)使用权' }
      },
      {
        path: 'buildingOwnership',
        component: () => import('@/views/business-info/building-ownership/index'),
        name: 'buildingOwnership',
        meta: { title: ' 构(建)筑物所有权' }
      },
      {
        path: 'agriculturalLand',
        component: () => import('@/views/business-info/agricultural-land/index'),
        name: 'agriculturalLand',
        meta: { title: ' 农用地使用权(非林地)' }
      },
      {
        path: 'forestOwnership',
        component: () => import('@/views/business-info/forest-ownership/index'),
        name: 'forestOwnership',
        meta: { title: ' 林权' }
      },
      {
        path: 'cancellationReg',
        component: () => import('@/views/business-info/cancellation-registration/index'),
        name: 'cancellationReg',
        meta: { title: ' 注销登记' }
      },
      {
        path: 'objectionReg',
        component: () => import('@/views/business-info/objection-registration/index'),
        name: 'objectionReg',
        meta: { title: ' 异议登记' }
      },
      {
        path: 'noticeReg',
        component: () => import('@/views/business-info/notice-registration/index'),
        name: 'noticeReg',
        meta: { title: ' 预告登记' }
      },
      {
        path: 'seizureReg',
        component: () => import('@/views/business-info/seizure-registration/index'),
        name: 'seizureReg',
        meta: { title: ' 查封登记' }
      },
      {
        path: 'mortgageReg',
        component: () => import('@/views/business-info/mortgage-registration/index'),
        name: 'mortgageReg',
        meta: { title: ' 抵押权登记' }
      },
      {
        path: 'easementReg',
        component: () => import('@/views/business-info/easement-registration/index'),
        name: 'easementReg',
        meta: { title: ' 地役权登记' }
      }
    ]
  },
  // 系统管理
  {
    path: '/system',
    component: Layout,
    meta: { title: '系统管理', icon: 'sqcx', breadcrumb: false },
    redirect: '/system/dictionaries',
    alwaysShow: true,
    name: 'system',
    children: [
      {
        path: 'dictionaries',
        component: () => import('@/views/system/dictionaries/dictionaries.vue'),
        name: 'dictionaries',
        meta: { title: '字典管理' }
      },
      {
        path: 'validationRule',
        component: () => import('@/views/system/validationRule'),
        name: 'validationRule',
        meta: { title: '上报效验规则配置' }
      },
      {
        path: 'timedTask',
        component: () => import('@/views/system/timedTask'),
        name: 'timedTask',
        meta: { title: '定时任务' }
      }
    ]
  }
]

export const asyncRoutes1 = [
  // 监管首页
  {
    path: '/',
    component: Layout1,
    redirect: '/jgHome',
    meta: { title: '首页' },
    children: [
      {
        path: 'jgHome',
        component: () => import('@/views/jgHome/index'),
        name: 'jgHome',
        meta: { title: '首页', icon: 'workbench', affix: true }
      }
    ]
  },
  // 接收报文查询
  {
    path: '/jsbwcx1',
    component: Layout1,
    children: [
      {
        path: 'index',
        component: () => import('@/views/jsbwcx/index'),
        name: 'jsbwcx',
        meta: { title: '接收报文查询1', icon: 'zsgl' }
      }
    ]
  },
  // 上报报文查询
  {
    path: '/sbbwcx1',
    component: Layout1,
    children: [
      {
        path: 'index',
        component: () => import('@/views/sbbwcx/index'),
        name: 'sbbwcx',
        meta: { title: '上报报文查询', icon: 'zsgl' }
      }
    ]
  },
  // 登簿日志
  {
    path: '/dbrzcx1',
    component: Layout1,
    children: [
      {
        path: 'index',
        component: () => import('@/views/dbrzcx/index'),
        name: 'dbrzcx',
        meta: { title: '登簿日志查询', icon: 'zhcx' }
      }
    ]
  },
  // 系统管理
  {
    path: '/system1',
    component: Layout1,
    meta: { title: '系统管理', icon: 'sqcx', breadcrumb: false },
    redirect: '/system/dictionaries',
    alwaysShow: true,
    name: 'system',
    children: [
      {
        path: 'dictionaries',
        component: () => import('@/views/system/dictionaries/dictionaries.vue'),
        name: 'dictionaries',
        meta: { title: '字典管理' }
      },
      {
        path: 'validationRule',
        component: () => import('@/views/system/validationRule'),
        name: 'validationRule',
        meta: { title: '上报效验规则配置' }
      },
      {
        path: 'timedTask',
        component: () => import('@/views/system/timedTask'),
        name: 'timedTask',
        meta: { title: '定时任务' }
      }
    ]
  }
]

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

const router = createRouter()
export function resetRouter () {
  const newRouter = createRouter()
  router.matcher = newRouter.matcher // reset router
}

export default router