index.js 7.61 KB
/*
 * @Description  :路由配置
 * @Autor        : miaofang
 * @LastEditTime : 2023-05-18 11:19:24
 */
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)
import Layout from '@/layout'

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: "/login",
    name: "login",
    component: () => import("@/views/login/index.vue"),
  },
  {
    path: '/',
    redirect: to => {
      return { path: '/login' }
    },
  },
  // 监管首页
  {
    path: '/home',
    component: Layout,
    meta: { title: '首页' },
    children: [
      {
        path: '',
        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: '/qxjr',
    component: Layout,
    children: [
      {
        path: 'gbxxcx',
        component: () => import('@/views/qxjr/gbxxcx/index'),
        name: 'gbxxcx',
        meta: { title: '信息查询', icon: 'zsgl' }
      },
      {
        path: 'jsbwcx',
        component: () => import('@/views/qxjr/jsbwcx/index'),
        name: 'jsbwcx',
        meta: { title: '区县接入', icon: 'zsgl' }
      }
    ]
  },
  // 省厅汇交
  {
    path: '/sthj',
    component: Layout,
    children: [
      {
        path: 'sbbwcx',
        component: () => import('@/views/sthj/sbbwcx/index'),
        name: 'sbbwcx',
        meta: { title: '数据上报', icon: 'zsgl' }
      },
      {
        path: 'dbrzcx',
        component: () => import('@/views/sthj/dbrzcx/index'),
        name: 'dbrzcx',
        meta: { title: '登簿日志', icon: 'zsgl' }
      }
    ]
  },
  // 监控统计
  {
    path: '/jktj',
    component: Layout,
    meta: { title: '统计监控', icon: 'sqcx' },
    children: [
      {
        path: 'ywltj',
        component: () => import('@/views/jktj/ywltj/index'),
        name: 'jktj',
        meta: { title: '业务量统计', icon: 'zhcx' }
      },
      {
        path: 'bsxljk',
        component: () => import('@/views/jktj/bsxljk/index'),
        name: 'jktj',
        meta: { title: '办事效率监控', icon: 'zhcx' }
      },
      {
        path: 'dataReceiveQuality',
        component: () => import('@/views/jktj/dataReceiveQuality/index'),
        name: 'dataReceiveQuality',
        meta: { title: '接入质量评价表', icon: 'dataReceiveQuality' }
      },
      {
        path: 'nullTermRatio',
        component: () => import('@/views/jktj/nullTermRatio/index'),
        name: 'nullTermRatio',
        meta: { title: '相关字段空置率统计', icon: 'nullTermRatio' }
      },
      {
        path: 'registerBookQuality',
        component: () => import('@/views/jktj/registerBookQuality/index'),
        name: 'registerBookQuality',
        meta: { title: '登簿质量评价表', icon: 'registerBookQuality' }
      }
    ]
  },
  // 接入业务信息-不动产数据
  {
    path: '/busineInfo',
    component: Layout,
    meta: { title: '不动产数据', icon: 'sqcx' },
    redirect: '/busineInfo/landOwnership',
    alwaysShow: true,
    name: 'busineInfo',
    children: [
      {
        path: 'tdsyq',
        component: () => import('@/views/bdcsj/tdsyq/index'),
        name: 'tdsyq',
        meta: { title: '土地所有权' }
      },
      {
        path: 'jsydzjdsyq',
        component: () => import('@/views/bdcsj/jsydzjdsyq/index'),
        name: 'jsydzjdsyq',
        meta: { title: '建设用地、宅基地使用权' }
      },
      {
        path: 'fdcqdz',
        component: () => import('@/views/bdcsj/fdcqdz/index'),
        name: 'fdcqdz',
        meta: { title: '房地产权(项目内多幢房屋)' }
      },
      {
        path: 'fdcqyz',
        component: () => import('@/views/bdcsj/fdcqyz/index'),
        name: 'fdcqyz',
        meta: { title: '房地产权(独幢、层、套、间、房屋)' }
      },
      {
        path: 'fdcqqfsyq',
        component: () => import('@/views/bdcsj/fdcqqfsyq/index'),
        name: 'fdcqqfsyq',
        meta: { title: '建筑物区分所有权业主共有部分' }
      },
      {
        path: 'hysyq',
        component: () => import('@/views/bdcsj/hysyq/index'),
        name: 'hysyq',
        meta: { title: '海域(含无居民海岛)使用权' }
      },
      {
        path: 'gzwsyq',
        component: () => import('@/views/bdcsj/gzwsyq/index'),
        name: 'gzwsyq',
        meta: { title: '构(建)筑物所有权' }
      },
      {
        path: 'nydsyq',
        component: () => import('@/views/bdcsj/nydsyq/index'),
        name: 'nydsyq',
        meta: { title: '农用地使用权(非林地)' }
      },
      {
        path: 'lq',
        component: () => import('@/views/bdcsj/lq/index'),
        name: 'lq',
        meta: { title: '林权' }
      },
      {
        path: 'zxdj',
        component: () => import('@/views/bdcsj/zxdj/index'),
        name: 'zxdj',
        meta: { title: '注销登记' }
      },
      {
        path: 'yydj',
        component: () => import('@/views/bdcsj/yydj/index'),
        name: 'yydj',
        meta: { title: '异议登记' }
      },
      {
        path: 'ygdj',
        component: () => import('@/views/bdcsj/ygdj/index'),
        name: 'ygdj',
        meta: { title: '预告登记' }
      },
      {
        path: 'Cfdj',
        component: () => import('@/views/bdcsj/cfdj/index'),
        name: 'Cfdj',
        meta: { title: '查封登记' }
      },
      {
        path: 'dyaq',
        component: () => import('@/views/bdcsj/dyaq/index'),
        name: 'dyaq',
        meta: { title: '抵押权登记' }
      },
      {
        path: 'dyiq',
        component: () => import('@/views/bdcsj/dyiq/index'),
        name: 'dyiq',
        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/index'),
        name: 'validationRule',
        meta: { title: '上报校验规则配置' }
      },
      {
        path: 'timedTask',
        component: () => import('@/views/system/timedTask/index'),
        name: 'timedTask',
        meta: { title: '定时任务' }
      },
      {
        path: 'menus',
        component: () => import('@/views/system/menus/index'),
        name: 'menus',
        meta: { title: '菜单管理' }
      },
      {
        path: 'users',
        component: () => import('@/views/system/users/index'),
        name: 'users',
        meta: { title: '人员管理' }
      },
      {
        path: 'roles',
        component: () => import('@/views/system/roles/index'),
        name: 'roles',
        meta: { title: '角色管理' }
      }
    ]
  }
]

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

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

export default router