922 lines
29 KiB
JavaScript
922 lines
29 KiB
JavaScript
import { createRouter, createWebHashHistory } from 'vue-router';
|
|
import SviLayout from '@/layouts/index-svi.vue'
|
|
import { useRouteStore } from '@/stores/modules/router';
|
|
|
|
// 基础路由,不需要权限控制的路由
|
|
const baseRoutes = [
|
|
{
|
|
path: '/',
|
|
name: 'index',
|
|
component: () => import('@views/main/index.vue'),
|
|
meta: {title: '空白'},
|
|
},
|
|
{
|
|
path: '/big-screen',
|
|
name: 'BigScreen',
|
|
component: () => import('@views/big-screen/bigdata.vue'),
|
|
meta: {title: '大屏'},
|
|
},
|
|
{
|
|
path: '/svi',
|
|
name: 'Svi',
|
|
component: SviLayout,
|
|
meta: {title: '布局'},
|
|
children: [
|
|
{
|
|
path: 'index',
|
|
name: 'SviIndex',
|
|
component: () => import('@views/main/svi.vue'),
|
|
meta: {
|
|
title: '首页',
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
path: '/example',
|
|
name: 'Example',
|
|
component: SviLayout,
|
|
meta: {title: '示例'},
|
|
children: [
|
|
{
|
|
path: 'index',
|
|
name: 'Example1Index',
|
|
component: () => import('@views/example/example1/index.vue'),
|
|
meta: {
|
|
title: '示例',
|
|
},
|
|
},
|
|
{
|
|
path: 'example-business-table',
|
|
name: 'ExampleBusinessTableIndex',
|
|
component: () => import('@views/example/example-businesss-table/index.vue'),
|
|
meta: {
|
|
title: '业务表格示例',
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
path: '/jbts/login',
|
|
name: '_jbts_login',
|
|
component: () => import('@views/jbts/login.vue'),
|
|
meta: {
|
|
title: '登录',
|
|
target: '_blank',
|
|
openInNewTab: true
|
|
},
|
|
beforeEnter: (to) => {
|
|
const inNewTab = to.query._nw === '1'
|
|
if (to.meta && to.meta.openInNewTab && !inNewTab) {
|
|
const newUrl = `${window.location.origin}${window.location.pathname}#${to.fullPath}${to.fullPath.includes('?') ? '&' : '?'}_nw=1`
|
|
window.open(newUrl, '_blank')
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
},
|
|
{
|
|
path: '/dtsjygl',
|
|
name: 'dtsjygl',
|
|
component: SviLayout,
|
|
meta: {title: '动态数据管理'},
|
|
children: [
|
|
{
|
|
path: 'dtsjk',
|
|
name: '_dtsjk',
|
|
component: () => import('@views/dtsjygl/qyxxgl.vue'),
|
|
meta: {
|
|
title: '企业信息管理',
|
|
},
|
|
},
|
|
{
|
|
path: 'qyxxcx',
|
|
name: '_qyxxcx',
|
|
component: () => import('@views/dtsjygl/qyxxcx.vue'),
|
|
meta: {
|
|
title: '企业信息查询',
|
|
},
|
|
},
|
|
{
|
|
path: 'qyxxsb',
|
|
name: '_qyxxsb',
|
|
component: () => import('@views/dtsjygl/qyxxsb.vue'),
|
|
meta: {
|
|
title: '企业信息上报审核',
|
|
},
|
|
},
|
|
{
|
|
path: 'qyfjfl',
|
|
name: '_qyfjfl',
|
|
component: () => import('@views/dtsjygl/qyfjfl.vue'),
|
|
meta: {
|
|
title: '企业分级分类',
|
|
},
|
|
},
|
|
{
|
|
path: 'qyxxtj',
|
|
name: '_qyxxtj',
|
|
component: () => import('@views/dtsjygl/qyxxtj.vue'),
|
|
meta: {
|
|
title: '企业信息统计',
|
|
},
|
|
},
|
|
],
|
|
},
|
|
// 执法机构管理
|
|
{
|
|
path: '/zfjgl',
|
|
name: 'zfjgl',
|
|
component: SviLayout,
|
|
meta: {title: '执法机构管理'},
|
|
children: [
|
|
{
|
|
path: 'jgrl',
|
|
name: '_jgrl',
|
|
component: () => import('@views/zfjgl/jgrl/index.vue'),
|
|
meta: {
|
|
title: '执法机构管理',
|
|
menuId: 'A-610100000000-0005_0197',
|
|
icon: 'zyyy_rzzx'
|
|
},
|
|
},
|
|
{
|
|
path: 'zfrygl',
|
|
name: '_zfrygl',
|
|
component: () => import('@views/zfjgl/zfrygl.vue'),
|
|
meta: {
|
|
title: '执法人员管理',
|
|
},
|
|
},
|
|
{
|
|
path: 'zfzbgl',
|
|
name: '_zfjgl_zfzbgl',
|
|
component: () => import('@views/zbgl/zfzbgl.vue'),
|
|
meta: {
|
|
title: '执法装备管理'
|
|
}
|
|
},
|
|
{
|
|
path: 'zfclgl',
|
|
name: '_zfjgl_zfclgl',
|
|
component: () => import('@views/zbgl/zfclgl.vue'),
|
|
meta: {
|
|
title: '执法车辆管理'
|
|
}
|
|
},
|
|
{
|
|
path: 'jcbgl',
|
|
name: '_zfjgl_jcbgl',
|
|
component: () => import('@views/xzzfgl/jcbgl.vue'),
|
|
meta: {
|
|
title: '检查表管理',
|
|
},
|
|
},
|
|
{
|
|
path: 'jcsxgl',
|
|
name: '_zfjgl_jcsxgl',
|
|
component: () => import('@views/xzzfgl/jcsxgl.vue'),
|
|
meta: {
|
|
title: '自定义检查事项',
|
|
},
|
|
},
|
|
],
|
|
},
|
|
|
|
{
|
|
path: '/xzzfgl',
|
|
name: 'xzzfgl',
|
|
component: SviLayout,
|
|
meta: {title: '行政执法'},
|
|
children: [
|
|
{
|
|
path: 'zfxxgl',
|
|
name: '_zfxxgl',
|
|
component: () => import('@views/xzzfgl/zfxxgl.vue'),
|
|
meta: {
|
|
title: '执法案件资源池',
|
|
},
|
|
},
|
|
{
|
|
path: 'zfjc',
|
|
name: '_zfj',
|
|
meta: {
|
|
title: '行政检查',
|
|
},
|
|
children: [
|
|
{
|
|
path: 'dzjcfa',
|
|
name: '_dzjcfa',
|
|
component: () => import('@views/xzzfgl/dzjcfa.vue'),
|
|
meta: {
|
|
title: '定制检查方案',
|
|
},
|
|
},
|
|
{
|
|
path: 'fasp',
|
|
name: '_fasp',
|
|
component: () => import('@views/xzzfgl/fasp.vue'),
|
|
meta: {
|
|
title: '方案审批',
|
|
},
|
|
},
|
|
{
|
|
path: 'zfjc',
|
|
name: '_zfjc_menu',
|
|
component: () => import('@views/xzzfgl/zfjc.vue'),
|
|
meta: {
|
|
title: '现场检查',
|
|
},
|
|
},
|
|
{
|
|
path: 'zgfc',
|
|
name: '_zgfc_menu',
|
|
component: () => import('@views/xzzfgl/zgfc.vue'),
|
|
meta: {
|
|
title: '整改复查',
|
|
},
|
|
},
|
|
{
|
|
path: 'xcclcs',
|
|
name: '_xcclcs_menu',
|
|
component: () => import('@views/xzzfgl/xcclcs.vue'),
|
|
meta: {
|
|
title: '现场处理措施',
|
|
},
|
|
},
|
|
{
|
|
path: 'xzjccl',
|
|
name: '_xzjccl_menu',
|
|
component: () => import('@views/xzzfgl/xzjccl.vue'),
|
|
meta: {
|
|
title: '行政检查处理',
|
|
},
|
|
},
|
|
]
|
|
},
|
|
{
|
|
path: 'xzcf',
|
|
name: '_xzcf',
|
|
meta: {
|
|
title: '行政处罚',
|
|
},
|
|
children: [
|
|
{
|
|
path: 'zfla',
|
|
name: '_zfla',
|
|
component: () => import('@views/xzzfgl/zfla.vue'),
|
|
meta: {
|
|
title: '立案',
|
|
},
|
|
},
|
|
{
|
|
path: 'dcqz',
|
|
name: '_dcqz',
|
|
component: () => import('@views/xzzfgl/caseInquiry.vue'),
|
|
meta: {
|
|
title: '调查取证',
|
|
},
|
|
},
|
|
{
|
|
path: 'fxyp',
|
|
name: '_fxyp',
|
|
component: () => import('@views/xzzfgl/fxyp.vue'),
|
|
meta: {
|
|
title: '审理',
|
|
},
|
|
},
|
|
{
|
|
path: 'cssbhtz',
|
|
name: '_cssbhtz',
|
|
component: () => import('@views/xzzfgl/cssbhtz.vue'),
|
|
meta: {
|
|
title: '陈述申辩或听证',
|
|
},
|
|
},
|
|
{
|
|
path: 'gz',
|
|
name: '_gz',
|
|
component: () => import('@views/xzzfgl/caseInform.vue'),
|
|
meta: {
|
|
title: '告知',
|
|
},
|
|
},
|
|
{
|
|
path: 'fzsh',
|
|
name: '_fzsh',
|
|
component: () => import('@views/xzzfgl/fzshjzfjd.vue'),
|
|
meta: {
|
|
title: '法制审核',
|
|
},
|
|
},
|
|
{
|
|
path: 'jttl',
|
|
name: '_jttl',
|
|
component: () => import('@views/xzzfgl/jttl.vue'),
|
|
meta: {
|
|
title: '集体讨论',
|
|
},
|
|
},
|
|
{
|
|
path: 'zfjd',
|
|
name: '_zfjd',
|
|
component: () => import('@views/xzzfgl/zfjd.vue'),
|
|
meta: {
|
|
title: '决定',
|
|
},
|
|
},
|
|
{
|
|
path: 'zfzx',
|
|
name: '_zfzx',
|
|
component: () => import('@views/xzzfgl/zfzx.vue'),
|
|
meta: {
|
|
title: '执行',
|
|
},
|
|
},
|
|
{
|
|
path: 'zfja',
|
|
name: '_zfja',
|
|
component: () => import('@views/xzzfgl/zfja.vue'),
|
|
meta: {
|
|
title: '结案',
|
|
},
|
|
},
|
|
]
|
|
},
|
|
{
|
|
path: 'zdzfjh',
|
|
name: '_zdzfjh',
|
|
meta: {
|
|
title: '监督检查计划',
|
|
},
|
|
children: [
|
|
{
|
|
path: 'zdjcqyqd',
|
|
name: '_zdjcqyqd',
|
|
component: () => import('@views/xzzfgl/zdjcqyqd.vue'),
|
|
meta: {
|
|
title: '年度监督检查计划',
|
|
},
|
|
},
|
|
{
|
|
path: 'scssjygkqd',
|
|
name: '_scssjygkqd',
|
|
component: () => import('@views/xzzfgl/scssjygkqd.vue'),
|
|
meta: {
|
|
title: '双随机一公开计划',
|
|
},
|
|
},
|
|
{
|
|
path: 'zfjhrwgl',
|
|
name: '_zfjhrwgl',
|
|
component: () => import('@views/xzzfgl/zfjhrwgl.vue'),
|
|
meta: {
|
|
title: '计划审批',
|
|
},
|
|
},
|
|
]
|
|
},
|
|
{
|
|
path: 'ddjcjh',
|
|
name: '_ddjcjh',
|
|
meta: {
|
|
title: '督导检查计划',
|
|
},
|
|
children: [
|
|
{
|
|
path: 'ddjc',
|
|
name: 'ddjc',
|
|
component: () => import('@views/xzzfgl/ddjc.vue'),
|
|
meta: {
|
|
title: '督导检查',
|
|
},
|
|
},
|
|
{
|
|
path: 'ddjcsp',
|
|
name: 'ddjcsp',
|
|
component: () => import('@views/xzzfgl/ddjcsp.vue'),
|
|
meta: {
|
|
title: '督导检查审批',
|
|
},
|
|
},
|
|
{
|
|
path: 'ddjcrwgl',
|
|
name: '_ddjcrwgl',
|
|
component: () => import('@views/xzzfgl/ddjcrwgl.vue'),
|
|
meta: {
|
|
title: '督导检查任务管理',
|
|
},
|
|
},
|
|
]
|
|
},
|
|
{
|
|
path: 'jbhcxx',
|
|
name: '_jbhcxx',
|
|
component: () => import('@views/xzzfgl/jbhcxx.vue'),
|
|
meta: {
|
|
title: '举报核查',
|
|
},
|
|
},
|
|
{
|
|
path: 'jchcjh',
|
|
name: '_jchcjh',
|
|
meta: {
|
|
title: '交叉检查计划',
|
|
},
|
|
children: [
|
|
{
|
|
path: 'jchc',
|
|
name: '_jchc',
|
|
component: () => import('@views/xzzfgl/jchc.vue'),
|
|
meta: {
|
|
title: '交叉检查',
|
|
},
|
|
},
|
|
{
|
|
path: 'jchcrwgl',
|
|
name: '_jchcrwgl',
|
|
component: () => import('@views/xzzfgl/jchcrwgl.vue'),
|
|
meta: {
|
|
title: '交叉检查任务管理',
|
|
},
|
|
},
|
|
]
|
|
},
|
|
{
|
|
path: 'smrq',
|
|
name: '_smrq',
|
|
component: () => import('@views/xzzfgl/smrq.vue'),
|
|
meta: {
|
|
title: '扫码入企',
|
|
},
|
|
},
|
|
{
|
|
path: 'jcbgl',
|
|
name: '_jcbgl',
|
|
component: () => import('@views/xzzfgl/jcbgl.vue'),
|
|
meta: {
|
|
title: '检查表管理',
|
|
},
|
|
},
|
|
{
|
|
path: 'jcsxgl',
|
|
name: '_jcsxgl',
|
|
component: () => import('@views/xzzfgl/jcsxgl.vue'),
|
|
meta: {
|
|
title: '自定义检查事项',
|
|
},
|
|
},
|
|
{
|
|
path: 'zfwsgl',
|
|
name: '_zfwsgl',
|
|
component: () => import('@views/xzzfgl/zfwsgl.vue'),
|
|
meta: {
|
|
title: '执法文书管理',
|
|
},
|
|
},
|
|
{
|
|
path: 'caseList',
|
|
name: '_caseList',
|
|
component: () => import('@views/xzzfgl/caseList.vue'),
|
|
meta: {
|
|
title: '案卷清单',
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
path: '/fxczfgl',
|
|
name: 'fxczfgl',
|
|
component: SviLayout,
|
|
meta: {title: '非现场执法'},
|
|
children: [
|
|
{
|
|
path: 'index',
|
|
name: '_index',
|
|
component: () => import('@views/fxczfgl/index.vue'),
|
|
meta: {
|
|
title: '非现场执法管理'
|
|
}
|
|
},
|
|
{
|
|
path: 'zxxcxx',
|
|
name: '_zxxcxx',
|
|
component: () => import('@views/fxczfgl/zxxcxx.vue'),
|
|
meta: {
|
|
title: '在线巡查信息'
|
|
}
|
|
},
|
|
{
|
|
path: 'zxxcqd',
|
|
name: '_zxxcqd',
|
|
meta: {
|
|
title: '在线巡查启动'
|
|
},
|
|
children: [
|
|
{
|
|
path: 'sjzxxc',
|
|
name: '_sjzxxc',
|
|
component: () => import('@views/fxczfgl/sjzxxc.vue'),
|
|
meta: {
|
|
title: '随机在线巡查',
|
|
},
|
|
},
|
|
{
|
|
path: 'dzzxxc',
|
|
name: '_dzzxxc',
|
|
component: () => import('@views/fxczfgl/dzzxxc.vue'),
|
|
meta: {
|
|
title: '定制在线巡查',
|
|
},
|
|
}
|
|
]
|
|
},
|
|
{
|
|
path: 'zxxcsp',
|
|
name: '_zxxcsp',
|
|
component: () => import('@views/fxczfgl/zxxcsp.vue'),
|
|
meta: {
|
|
title: '在线巡查结果'
|
|
}
|
|
},
|
|
{
|
|
path: 'fxczftj',
|
|
name: '_fxczftj',
|
|
component: () => import('@views/fxczfgl/fxczftj.vue'),
|
|
meta: {
|
|
title: '非现场执法统计'
|
|
}
|
|
}
|
|
],
|
|
},
|
|
{
|
|
path: '/zfwssd',
|
|
name: 'zfwssd',
|
|
component: SviLayout,
|
|
meta: {title: '执法文书'},
|
|
children: [
|
|
{
|
|
path: 'sdfsgl',
|
|
name: '_sdfsgl',
|
|
component: () => import('@views/zfwssd/sdfsgl.vue'),
|
|
alias: '/xzzfgl/wssd/sdfsgl',
|
|
meta: {
|
|
title: '送达方法管理'
|
|
}
|
|
},
|
|
{
|
|
path: 'ssdrgl',
|
|
name: '_ssdrgl',
|
|
component: () => import('@views/zfwssd/ssdrgl.vue'),
|
|
alias: '/xzzfgl/wssd/ssdrgl',
|
|
meta: {
|
|
title: '受送达人管理'
|
|
}
|
|
},
|
|
{
|
|
path: 'zfwsxx',
|
|
name: '_zfwsxx',
|
|
component: () => import('@views/zfwssd/zfwsxx.vue'),
|
|
alias: '/xzzfgl/wssd/zfwsxx',
|
|
meta: {
|
|
title: '执法文书管理'
|
|
}
|
|
},
|
|
{
|
|
path: 'sdywtj',
|
|
name: '_sdywtj',
|
|
component: () => import('@views/zfwssd/sdywtj.vue'),
|
|
alias: '/xzzfgl/wssd/sdywtj',
|
|
meta: {
|
|
title: '送达业务统计'
|
|
}
|
|
},
|
|
],
|
|
},
|
|
{
|
|
path: '/dagl',
|
|
name: 'dagl',
|
|
component: SviLayout,
|
|
meta: {title: '档案管理'},
|
|
children: [
|
|
{
|
|
path: 'xzjcdagl',
|
|
name: '_xzjcdagl',
|
|
component: () => import('@views/xzzfgl/xzjcdagl.vue'),
|
|
alias: '/xzzfgl/ljgd/xzjcdagl',
|
|
meta: {
|
|
title: '行政检查档案'
|
|
}
|
|
},
|
|
|
|
{
|
|
path: 'xzcfdagl',
|
|
name: '_xzcfdagl',
|
|
component: () => import('@views/xzzfgl/xzcfdagl.vue'),
|
|
alias: '/xzzfgl/ljgd/xzcfdagl',
|
|
meta: {
|
|
title: '行政执法档案'
|
|
}
|
|
},
|
|
{
|
|
path: 'caseList',
|
|
name: '_caseList',
|
|
component: () => import('@views/xzzfgl/caseList.vue'),
|
|
alias: '/xzzfgl/ljgdl/caseList',
|
|
meta: {
|
|
title: '案卷资料清单',
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
path: '/zbgl',
|
|
name: 'zbgl',
|
|
component: SviLayout,
|
|
meta: {title: '装备管理'},
|
|
children: [
|
|
{
|
|
path: 'zfzbgl',
|
|
name: '_zfzbgl',
|
|
component: () => import('@views/zbgl/zfzbgl.vue'),
|
|
meta: {
|
|
title: '执法装备管理'
|
|
}
|
|
},
|
|
{
|
|
path: 'zsfzgl',
|
|
name: '_zsfzgl',
|
|
component: () => import('@views/zbgl/zsfzgl.vue'),
|
|
meta: {
|
|
title: '制式服装管理'
|
|
}
|
|
},
|
|
{
|
|
path: 'zfclgl',
|
|
name: '_zfclgl',
|
|
component: () => import('@views/zbgl/zfclgl.vue'),
|
|
meta: {
|
|
title: '执法车辆管理'
|
|
}
|
|
},
|
|
],
|
|
},
|
|
{
|
|
path: '/tztg',
|
|
name: 'tztg',
|
|
component: SviLayout,
|
|
meta: {title: '通知公告'},
|
|
children: [
|
|
{
|
|
path: 'tztggl',
|
|
name: '_tztggl',
|
|
component: () => import('@views/tztggl/NoticeManager.vue'),
|
|
meta: {
|
|
title: '执法装备管理'
|
|
}
|
|
}
|
|
],
|
|
},
|
|
{
|
|
path: '/tjbb',
|
|
name: 'tjbb',
|
|
component: SviLayout,
|
|
meta: {title: '统计分析'},
|
|
children: [
|
|
{
|
|
path: 'qxtjsb',
|
|
name: '_qxtjsb',
|
|
meta: {
|
|
title: '区县统计上报',
|
|
},
|
|
children: [
|
|
{
|
|
path: 'zflasb',
|
|
name: '_zflasb',
|
|
component: () => import('@views/dtsjygl/zflasb.vue'),
|
|
meta: {
|
|
title: '执法立案上报',
|
|
},
|
|
},
|
|
{
|
|
path: 'zfjcsb',
|
|
name: '_zfjcsb',
|
|
component: () => import('@views/dtsjygl/zfjcsb.vue'),
|
|
meta: {
|
|
title: '执法检查上报',
|
|
},
|
|
},
|
|
{
|
|
path: 'lszfsb',
|
|
name: '_lszfsb',
|
|
component: () => import('@views/dtsjygl/lszfjlsb.vue'),
|
|
meta: {
|
|
title: '历史执法信息上报',
|
|
},
|
|
}
|
|
]
|
|
|
|
},
|
|
{
|
|
path: 'qxtjsbsp',
|
|
name: '_qxtjsbsp',
|
|
meta: {
|
|
title: '区县统计上报审核',
|
|
},
|
|
children: [
|
|
{
|
|
path: 'zflasbsp',
|
|
name: '_zflasbsp',
|
|
component: () => import('@views/dtsjygl/zflasbsp.vue'),
|
|
meta: {
|
|
title: '执法立案上报审核',
|
|
},
|
|
},
|
|
{
|
|
path: 'zfjcsbsp',
|
|
name: '_zfjcsbsp',
|
|
component: () => import('@views/dtsjygl/zfjcsbsp.vue'),
|
|
meta: {
|
|
title: '执法检查上报审核',
|
|
},
|
|
},
|
|
{
|
|
path: 'lszfjlsbsp',
|
|
name: '_lszfjlsbsp',
|
|
component: () => import('@views/dtsjygl/lszfjlsbsp.vue'),
|
|
meta: {
|
|
title: '历史执法信息上报审核',
|
|
},
|
|
}
|
|
]
|
|
},
|
|
{
|
|
path: 'zflatj',
|
|
name: '_zflatj',
|
|
component: () => import('@views/dtsjygl/zflatj.vue'),
|
|
meta: {
|
|
title: '执法立案统计'
|
|
}
|
|
},
|
|
{
|
|
path: 'zfjcqktj',
|
|
name: '_zfjcqktj',
|
|
component: () => import('@views/dtsjygl/zfjcqktj.vue'),
|
|
meta: {
|
|
title: '检查情况统计'
|
|
}
|
|
},
|
|
{
|
|
path: 'zfsjzbb',
|
|
name: '_zfsjzbb',
|
|
component: () => import('@views/dtsjygl/zfsjzbb.vue'),
|
|
meta: {
|
|
title: '执法数据周报表'
|
|
}
|
|
},
|
|
{
|
|
path: 'zfsjjbb',
|
|
name: '_zfsjjbb',
|
|
component: () => import('@views/dtsjygl/zfsjjbb.vue'),
|
|
meta: {
|
|
title: '执法数据季报表'
|
|
}
|
|
},
|
|
{
|
|
path: 'qyxxStatice',
|
|
name: '_qyxxStatice',
|
|
component: () => import('@views/dtsjygl/qyxxtj.vue'),
|
|
meta: {
|
|
title: '企业信息统计',
|
|
},
|
|
},
|
|
{
|
|
path: 'fxczfStatice',
|
|
name: '_fxczfStatice',
|
|
component: () => import('@views/fxczfgl/fxczftj.vue'),
|
|
meta: {
|
|
title: '非现场执法统计'
|
|
}
|
|
}
|
|
,
|
|
{
|
|
path: 'wssdtj',
|
|
name: '_wssdtj',
|
|
component: () => import('@views/zfwssd/sdywtj.vue'),
|
|
meta: {
|
|
title: '送达业务统计'
|
|
}
|
|
},
|
|
],
|
|
},
|
|
// 投诉举报
|
|
{
|
|
path: '/jbts',
|
|
name: 'jbts',
|
|
component: SviLayout,
|
|
meta: {title: '举报投诉'},
|
|
children: [
|
|
{
|
|
path: 'tsjbkb',
|
|
name: '_tsjbkb',
|
|
component: () => import('@views/jbts/ComplaintReportBoard.vue'),
|
|
meta: {
|
|
title: '投诉举报看板'
|
|
}
|
|
},
|
|
{
|
|
path: 'jbhcxx',
|
|
name: '_jbhcxx',
|
|
component: () => import('@views/xzzfgl/jbhcxx.vue'),
|
|
meta: {
|
|
title: '举报核查'
|
|
}
|
|
}
|
|
]
|
|
},
|
|
|
|
]
|
|
|
|
// 创建路由实例
|
|
const router = createRouter({
|
|
history: createWebHashHistory(),
|
|
routes: baseRoutes
|
|
})
|
|
|
|
// 标记路由是否已经初始化
|
|
let routesInitialized = false
|
|
|
|
// 动态添加路由方法
|
|
export function addDynamicRoutes() {
|
|
const routeStore = useRouteStore();
|
|
|
|
// 确保路由存储已初始化默认路由
|
|
if (routeStore.defaultRoutes.length === 0) {
|
|
routeStore.initDefaultRoutes();
|
|
}
|
|
|
|
const dynamicRoutes = routeStore.defaultRoutes || [];
|
|
|
|
console.log('开始加载动态路由,当前路由表:', router.getRoutes().map(r => r.path));
|
|
console.log('动态路由数据:', JSON.stringify(dynamicRoutes, null, 2));
|
|
|
|
// 先清除所有非基础路由
|
|
router.getRoutes().forEach(route => {
|
|
if (!baseRoutes.some(r => r.name === route.name)) {
|
|
router.removeRoute(route.name);
|
|
}
|
|
});
|
|
|
|
// 如果有动态路由,添加到路由表中
|
|
if (dynamicRoutes && dynamicRoutes.length > 0) {
|
|
dynamicRoutes.forEach(route => {
|
|
console.log('正在添加路由:', route.path, route.name);
|
|
try {
|
|
if (!router.hasRoute(route.name)) {
|
|
router.addRoute(route);
|
|
console.log('成功添加路由:', route.path);
|
|
} else {
|
|
console.log('路由已存在,跳过:', route.path);
|
|
}
|
|
} catch (error) {
|
|
console.error('添加路由失败:', route.path, error);
|
|
}
|
|
});
|
|
console.log('动态路由加载完成,更新后的路由表:', router.getRoutes().map(r => r.path));
|
|
// 标记路由已初始化
|
|
routesInitialized = true;
|
|
} else {
|
|
console.warn('没有可用的动态路由数据!');
|
|
}
|
|
|
|
return dynamicRoutes;
|
|
}
|
|
|
|
// 全局前置导航守卫,在路由跳转前进行检查
|
|
router.beforeEach(async (to, from, next) => {
|
|
console.log('路由跳转:', from.path, '->', to.path);
|
|
console.log('当前路由表:', router.getRoutes().map(r => r.path));
|
|
|
|
// 直接放行
|
|
next();
|
|
});
|
|
|
|
export function setupRouter(app) {
|
|
// 创建路由实例
|
|
app.use(router);
|
|
|
|
// 在路由初始化时就加载所有路由
|
|
try {
|
|
// 强制加载动态路由,无论是否已经初始化
|
|
// addDynamicRoutes();
|
|
|
|
// 打印当前路由表信息
|
|
console.log('路由初始化完成,当前路由表:', router.getRoutes().map(r => r.path));
|
|
|
|
// 确保路由已初始化
|
|
routesInitialized = true;
|
|
} catch (error) {
|
|
console.error('路由初始化错误:', error);
|
|
}
|
|
}
|