import { createRouter, createWebHashHistory } from "vue-router"; import layout from "@/layout/index"; import store from "@/store"; /** * 路由配置说明 * * 1. publicRoutes(公开路由)- 所有用户都能访问,应用启动时静态注册 * 包括:登录页、首页、错误页等 * * 2. privateRoutes(私有路由)- 需要权限才能访问,登录后动态注册 * 包括:所有业务功能路由 * * 3. 路由的 name 属性必须与后端返回的菜单权限码(menuCodeSet)一致 */ /** * 公开路由表 - 所有人都能访问 */ export const publicRoutes = [ // 登录相关路由 { path: "/oatuh_login", name: "oatuh_login", component: () => import("@/views/login/oatuh_login") }, { path: "/login", name: "login", component: () => import("@/views/login/index") }, { path: "/zeroTrust_login", name: "zeroTrust_login", component: () => import("@/views/login/zeroTrust_login") }, // 错误页面 { path: "/401", name: "401", component: () => import("@/views/error/401.vue") }, { path: "/404", name: "404", component: () => import("@/views/error/404.vue") }, // 首页(所有登录用户都可访问) { path: "/", name: "home", component: () => import("@/views/home/index"), meta: { keepAlive: true, componentName: 'HomePage' } }, // 公共访问页面(无需权限校验) { path: "/mapNavigation", name: "mapNavigation", component: () => import("@/views/home/model/mapNavigation.vue") }, { path: "/KeyPopulations", name: "KeyPopulations", component: () => import("@/views/KeyPopulations/index") }, // 以下路由虽然在白名单中,但仍需要登录才能访问 // 它们是特殊业务路由,登录后所有人都能访问(不依赖菜单权限) { path: "/deploymentApproval", name: "deploymentApproval", component: () => import("@/views/backOfficeSystem/ApprovalInformation/deploycontrol/deploymentApproval.vue"), }, { path: "/shym", name: "shym", component: () => import("@/views/backOfficeSystem/IntelligentControl/marksControl/components/shym.vue"), }, { path: "/information", name: "information", component: () => import("@/views/backOfficeSystem/JudgmentHome/internalAuditor/information.vue"), }, { path: "/Spdloyment", name: "Spdloyment", component: () => import("@/views/backOfficeSystem/HumanIntelligence/auditList/components/spdloyment.vue"), }, { path: "/clueVerification", name: "clueVerification", component: () => import("@/views/backOfficeSystem/ApprovalInformation/Clue/index.vue"), }, { path: "/ReviewListSH", name: "ReviewListSH", component: () => import("@/views/backOfficeSystem/JudgmentHome/ReviewList/detail.vue"), }, { path: "/focusExploration", name: "focusExploration", component: () => import("@/views/backOfficeSystem/ApprovalInformation/FocusExploration/index.vue"), }, // 情报论坛(所有登录用户都可访问) { path: "/forumPost", name: "forumPost", component: layout, meta: { title: "情报论坛", icon: "article-ranking" }, children: [ { path: "", name: "forumPostPage", component: () => import("@/views/backOfficeSystem/luntan/index.vue"), meta: { title: "情报论坛", icon: "article-ranking" } } ] }, ]; /** * 私有路由表 - 需要权限才能访问 * 登录后根据用户的 menuCodeSet 动态注册 */ export const privateRoutes = [ // 派出所开放路由(特殊权限,不在菜单显示) { path: "/warningLists", name: "warningLists", component: () => import("@/views/backOfficeSystem/fourColorManage/warningList/index"), meta: { title: "布控预警", icon: "article-create" } }, { path: "/behaviorWarnings", name: "behaviorWarnings", meta: { title: "行为预警", icon: "article-create" }, component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/behaviorWarning/index"), }, { path: "/identityWarnings", name: "identityWarnings", meta: { title: "身份预警", icon: "article-create" }, component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/identityWarning/index"), }, { path: "/combinedWarnings", name: "combinedWarnings", meta: { title: "组合预警", icon: "article-create" }, component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/combinedWarning/index"), }, { path: "/mpvPeos", name: "mpvPeos", component: () => import("@/views/backOfficeSystem/DeploymentDisposal/mpvPeo/index"), meta: { title: "重点人管理", icon: "article-create" } }, { path: "/myControls", name: "myControls", component: () => import("@/views/backOfficeSystem/IntelligentControl/myControl/index"), meta: { title: "我的布控", icon: "article-create" } }, { path: "/DeploymentAreas", name: "DeploymentAreas", component: () => import("@/views/backOfficeSystem/IntelligentControl/DeploymentArea/index"), meta: { title: "布控区域", icon: "article-create" } }, // 主业务路由(带 layout) { path: "/editPassword", redirect: "/IdentityManage", component: layout, children: [ { path: "/FourColorWarning", name: "FourColorWarning", meta: { title: "预警中心", icon: "article-ranking" }, children: [ { path: "/YjData", name: "YjData", meta: { title: "预警列表", icon: "article-create" }, component: () => import("@/views/backOfficeSystem/fourColorManage/YjData/index.vue"), }, { path: "/jqjc", name: "jqjc", meta: { title: "警情监测", icon: "article-create" }, children: [ { path: "/policeReport", name: "policeReport", component: () => import("@/views/backOfficeSystem/policeReport/index.vue"), meta: { title: "警情信息", icon: "article-create" } }, { path: "/policeSituations", name: "policeSituations", component: () => import("@/views/backOfficeSystem/PoliceIncidentMonitoring/index.vue"), meta: { title: "警情预警监测", icon: "article-create" } }, ] }, { path: "/scoreRanking", name: "scoreRanking", meta: { title: "积分排名", icon: "article-create" }, component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/scoreRanking/index"), }, { path: "/sevenWarningFail", name: "sevenWarningFail", meta: { title: "报错列表", icon: "article" }, component: () => import("@/views/backOfficeSystem/fourColorManage/warningControl/sevenWarningFail/index.vue"), }, ] }, { path: "/IntelligentControl", name: "IntelligentControl", meta: { title: "智能布控", icon: "article-ranking" }, children: [ { path: "/DeploymentArea", name: "DeploymentArea", component: () => import("@/views/backOfficeSystem/IntelligentControl/DeploymentArea/index"), meta: { title: "布控区域", icon: "article-create" } }, { path: "/myControl", name: "myControl", component: () => import("@/views/backOfficeSystem/IntelligentControl/myControl/index"), meta: { title: "常态布控", icon: "article-create" } }, { path: "/PrivateSurveillance", name: "PrivateSurveillance", component: () => import("@/views/backOfficeSystem/IntelligentControl/myControl/index"), meta: { title: "临时布控", icon: "article-create" } }, { path: "/marksControl", name: "marksControl", component: () => import("@/views/backOfficeSystem/IntelligentControl/marksControl/index"), meta: { title: "标签布控", icon: "article-create" } }, { path: "/ReviewListControl", name: "ReviewListControl", component: () => import("@/views/backOfficeSystem/IntelligentControl/ReviewListControl/index"), meta: { title: "审核列表", icon: "article-create" } }, ] }, { path: "/HumanIntelligence", name: "HumanIntelligence", meta: { title: "信息汇聚支撑", icon: "article-ranking" }, children: [ { path: "/InfoCollection", name: "InfoCollection", component: () => import("@/views/backOfficeSystem/HumanIntelligence/infoCollection/index"), meta: { title: "信息采集", icon: "article-create" }, }, { path: "/InternalList", name: "InternalList", component: () => import("@/views/backOfficeSystem/HumanIntelligence/listView/index"), meta: { title: "内部列表", icon: "article-create", qbjbList: '02' }, }, { path: "/openSourceList", name: "openSourceList", component: () => import("@/views/backOfficeSystem/HumanIntelligence/listView/index"), meta: { title: "共享列表", icon: "article-create", qbjbList: '01' }, }, { path: "/auditList", name: "auditList", component: () => import("@/views/backOfficeSystem/HumanIntelligence/auditList/index"), meta: { title: "审批列表", icon: "article-create" }, }, { path: "/supplementReportList", name: "supplementReportList", component: () => import("@/views/backOfficeSystem/supplementReportList/index.vue"), meta: { title: "补充续报", icon: "article-create" } }, { path: "/integralList", name: "integralList", component: () => import("@/views/backOfficeSystem/integralList/index.vue"), meta: { title: "积分列表", icon: "article-create" } }, { path: "/InformationReporting", name: "InformationReporting", component: () => import("@/views/backOfficeSystem/InformationReporting/index.vue"), meta: { title: "蜂群信息", icon: "article-create" } }, ] }, { path: "/ResearchJudgment", name: "ResearchJudgment", meta: { title: "线索落核盯办", icon: "article-ranking" }, children: [ { path: "/socialInformationCrculated", name: "changeTheClue", component: () => import("@/views/backOfficeSystem/HumanIntelligence/FollowLeads/index"), meta: { title: "线索列表", icon: "article" }, }, { path: "/lamXs", name: "lamXs", component: () => import("@/views/backOfficeSystem/HumanIntelligence/lamXs/index"), meta: { title: "林安码线索", icon: "article" }, }, { path: "/InstructionInformation", name: "InstructionInformation", component: () => import("@/views/backOfficeSystem/ResearchJudgment/InformationFlows/InstructionInformation/index"), meta: { title: "线索发布", icon: "article" } }, ] }, { path: "/JudgmentHome", name: "JudgmentHome", redirect: "/ResearchHome", meta: { title: "会商研判", icon: "article-ranking" }, children: [ { path: "/policeManagement", name: "policeManagement", component: () => import("@/views/backOfficeSystem/policeManagement/index.vue"), meta: { title: "重大事件", icon: "article-create" } }, { path: "/ResearchHome", name: "ResearchHome", component: () => import("@/views/backOfficeSystem/JudgmentHome/ResearchHome/index"), meta: { title: "智能研判", icon: "article-create" } }, { path: "/dataReduction", name: "dataReduction", component: () => import("@/views/backOfficeSystem/JudgmentHome/dataReduction/index"), meta: { title: "研判约稿", icon: "article-create" } }, { path: "/strategicResearchs", name: "strategicResearchs", component: () => import("@/views/backOfficeSystem/JudgmentHome/strategicResearch/index.vue"), meta: { title: "研判报告", icon: "article-create" } }, { path: "/ReviewList", name: "ReviewList", component: () => import("@/views/backOfficeSystem/JudgmentHome/ReviewList/index.vue"), meta: { title: "审核列表", icon: "article-create" } }, { path: "/judgmentCommand", name: "judgmentCommand", component: () => import("@/views/backOfficeSystem/JudgmentHome/judgmentCommand/index.vue"), meta: { title: "研判指令", icon: "article-create" } }, { path: "/internalAuditor", name: "internalAuditor", component: () => import("@/views/backOfficeSystem/JudgmentHome/internalAuditor/index.vue"), meta: { title: "内部审核人员", icon: "article-create" } }, { path: "/MeetingRoom", name: "MeetingRoom", component: () => import("@/views/backOfficeSystem/JudgmentHome/MeetingRoom/index"), meta: { title: "网上会商室", icon: "article-create" } } ] }, { path: "/DeploymentDisposal", name: "DeploymentDisposal", redirect: "/ResearchHome", meta: { title: "全域管控", icon: "article-ranking" }, children: [ { path: "/BaseLibrary", name: "BaseLibrary", component: () => import("@/views/backOfficeSystem/DeploymentDisposal/BaseLibrary/index"), meta: { title: "基础库", icon: "article-create" } }, { path: "/mpvPeo", name: "mpvPeo", component: () => import("@/views/backOfficeSystem/DeploymentDisposal/mpvPeo/index"), meta: { title: "重点人员库", icon: "article-create" } }, { path: "/gzPeo", name: "gzPeo", component: () => import("@/views/backOfficeSystem/DeploymentDisposal/gzPeo/index"), meta: { title: "关注人员库", icon: "article-create" } }, { path: "/mpvGroup", name: "mpvGroup", component: () => import("@/views/backOfficeSystem/DeploymentDisposal/mpvGroup/index"), meta: { title: "重点群体库", icon: "article-create" } }, { path: "/mpvCar", name: "mpvCar", component: () => import("@/views/backOfficeSystem/DeploymentDisposal/mpvCar/index"), meta: { title: "重点车辆库", icon: "article-create" } }, { path: "/mvpSP", name: "mvpSP", component: () => import("@/views/backOfficeSystem/DeploymentDisposal/mvpSP/index"), meta: { title: "审核列表", icon: "article-create" } }, ] }, { path: "/dataApplication", name: "dataApplication", meta: { title: "数据应用", icon: "article-ranking" }, children: [ { path: "/Gzqkgl", name: "Gzqkgl", meta: { title: "工作情况管理", icon: "article-create" }, children: [ { path: "/goingJob", name: "goingJob", meta: { title: "工作情况", icon: "article-ranking" }, component: () => import("@/views/backOfficeSystem/goingJob/index.vue") }, { path: "/workLogInfo", name: "workLogInfo", meta: { title: "值班信息", icon: "article-ranking" }, component: () => import("@/views/backOfficeSystem/workLogInfo/index.vue") } ] }, { path: "/Cspz", name: "Cspz", component: () => import("@/views/backOfficeSystem/fourColorManage/Cspz/index"), meta: { title: "参数配置", icon: "article-create" } }, { path: "/permissionApply", name: "permissionApply", component: () => import("@/views/backOfficeSystem/HumanIntelligence/permissionApply/index"), meta: { title: "权限申请", icon: "article-create" } }, { path: "/appraisalManagement", name: "appraisalManagement", component: () => import("@/views/backOfficeSystem/HumanIntelligence/appraisalManagement/index"), meta: { title: "考核管理", icon: "article-create" } }, { path: "/FileData", name: "FileData", component: () => import("@/views/backOfficeSystem/HumanIntelligence/FileData/index"), meta: { title: "文件中转", icon: "article-create" } }, { path: "/ssemanticAnalysis", name: "semanticAnalysis", component: () => import("@/views/backOfficeSystem/SemanticAnalysis/index.vue"), meta: { title: "语义分析", icon: "article-create" } }, { path: "/ReportStatisticalAnalysis", name: "ReportStatisticalAnalysis", component: () => import("@/views/backOfficeSystem/ResearchJudgment/InformationFlows/ReportStatisticalAnalysis/index"), meta: { title: "情报统计分析", icon: "article-create" } }, { path: "/RecordsOperations", name: "RecordsOperations", component: () => import("@/views/backOfficeSystem/ResearchJudgment/RecordsOperations/index"), meta: { title: "操作记录", icon: "article-create" } }, { path: "/dataMonitor", name: "dataMonitor", meta: { title: "数据监控", icon: "article-ranking" }, children: [ { path: "/resourceMonitoring", name: "resourceMonitoring", component: () => import("@/views/backOfficeSystem/dataMonitor/resourceMonitoring/index.vue"), meta: { title: "数据资源检测", icon: "article-create" } }, { path: "/onlineUserMonitoring", name: "onlineUserMonitoring", component: () => import("@/views/backOfficeSystem/dataMonitor/onlineUserMonitoring/index.vue"), meta: { title: "在线用户监控", icon: "article-create" } } ] }, ] }, { path: "/systemConfig", name: "systemConfigModel", meta: { title: "系统管理", icon: "article-ranking" }, children: [ { path: "/user/department-ist", name: "departmentList", component: () => import("@/views/backOfficeSystem/systemConfig/department-list/index"), meta: { title: "部门管理", icon: "article-create" } }, { path: "/user/userList", name: "userList", component: () => import("@/views/backOfficeSystem/systemConfig/user-list/index"), meta: { title: "用户管理", icon: "article-create" } }, { path: "/user/role", name: "userRoleIndex", component: () => import("@/views/backOfficeSystem/systemConfig/role-list/index"), meta: { title: "角色列表", icon: "article-create" } }, { path: "/user/menuList", name: "menuList", component: () => import("@/views/backOfficeSystem/systemConfig/menu-list/index"), meta: { title: "菜单管理", icon: "article-create" } }, { path: "/dict/detail", name: "dictDetail", component: () => import("@/views/backOfficeSystem/systemConfig/dict/detail"), meta: { title: "字典数据" } }, { path: "/dict/index", name: "dictIndex", component: () => import("@/views/backOfficeSystem/systemConfig/dict/index"), meta: { title: "字典列表", icon: "article-create" } }, { path: "/user/deptAllocationUser/:id", name: "deptAllocationUser", component: () => import("@/views/backOfficeSystem/systemConfig/department-list/deptAllocationUser"), meta: { title: "管理用户" } }, { path: "/user/allocationUser/:id", name: "allocationUser", component: () => import("@/views/backOfficeSystem/systemConfig/role-list/allocationUser"), meta: { title: "分配用户" } }, { path: "/user/systemConfig", name: "systemConfig", component: () => import("@/views/backOfficeSystem/systemConfig/system-config-list/index"), meta: { title: "系统配置", icon: "article-create" } }, { path: "/calendar", name: "calendar", component: () => import("@/views/backOfficeSystem/calendar/index.vue"), meta: { title: "敏感节点", icon: "article-create" } }, ] }, { path: "/rests", name: "rests", meta: { title: "其他", icon: "article-ranking" }, children: [ { path: "/socialInformationCrculatec", name: "recombinantSynthesis", component: () => import("@/views/backOfficeSystem/HumanIntelligence/ConversionSynthesis/index"), meta: { title: "转合成列表", icon: "article-create" }, }, { path: "/transferConsultationList", name: "transferConsultationList", component: () => import("@/views/backOfficeSystem/transferConsultationList/index.vue"), meta: { title: "转会商列表", icon: "article-create" } }, { path: "/DatAcquisition", name: "DatAcquisition", component: () => import("@/views/backOfficeSystem/ResearchJudgment/DatAcquisition/index"), meta: { title: "线索数据采集", icon: "article" } }, { path: "/IntelligenceManagement", name: "IntelligenceManagement", component: () => import("@/views/backOfficeSystem/ResearchJudgment/IntelligenceManagement/index"), meta: { title: "线索管理", icon: "article" } }, { path: "/CollectCrculate", name: "CollectCrculate", component: () => import("@/views/backOfficeSystem/HumanIntelligence/CollectCrculate/index"), meta: { title: "情报采集", icon: "article-create" }, }, { path: "/RlStatisticalAnalysis", name: "RlStatisticalAnalysis", component: () => import("@/views/backOfficeSystem/HumanIntelligence/RlStatisticalAnalysis/index"), meta: { title: "上报统计分析", icon: "article-create" } }, { path: "/TaskScheduling", name: "TaskScheduling", component: () => import("@/views/backOfficeSystem/HumanIntelligence/TaskScheduling/index"), meta: { title: "上报任务调度", icon: "article-create" } }, { path: "/ConstructionManagement", name: "ConstructionManagement", component: () => import("@/views/backOfficeSystem/HumanIntelligence/ConstructionManagement/index"), meta: { title: "力量建设管理", icon: "article-create" } }, { path: "/StatisticalAnalysis", name: "StatisticalAnalysis", component: () => import("@/views/backOfficeSystem/ResearchJudgment/InformationFlows/StatisticalAnalysis/index"), meta: { title: "情报统计分析", icon: "article-create" } }, { path: "/ysMyControl", name: "ysMyControl", component: () => import("@/views/backOfficeSystem/IntelligentControl/ysMyControl/index"), meta: { title: "常态布控", icon: "article-create" } }, { path: "/ysPrivateSurveillance", name: "ysPrivateSurveillance", component: () => import("@/views/backOfficeSystem/IntelligentControl/ysMyControl/index"), meta: { title: "临时布控", icon: "article-create" } }, { path: "/ysmarksControl", name: "ysmarksControl", component: () => import("@/views/backOfficeSystem/IntelligentControl/ysMarksControl/index"), meta: { title: "标签布控", icon: "article-create" } }, { path: "/ExcavationResearch", name: "ExcavationResearch", meta: { title: "重点人发掘", icon: "article-ranking" }, children: [ { path: "/PreliminaryExcavations", name: "PreliminaryExcavations", component: () => import("@/views/backOfficeSystem/ExcavationResearch/PreliminaryExcavations/index"), meta: { title: "重点人员初步发掘", icon: "article-create" } }, { path: "/ZdryFjyp", name: "ZdryFjyp", component: () => import("@/views/backOfficeSystem/ExcavationResearch/ZdryFjyp/index"), meta: { title: "重点人员深度发掘", icon: "article-create" } }, { path: "/LandingAudit", name: "LandingAudit", component: () => import("@/views/backOfficeSystem/ExcavationResearch/LandingAudit/index"), meta: { title: "重点人员落地审核", icon: "article-create" } }, { path: "/tacticalResearch", name: "tacticalResearch", component: () => import("@/views/backOfficeSystem/JudgmentHome/tacticalResearch/index.vue"), meta: { title: "战术研判", icon: "article-create" } }, { path: "/strategicResearch", name: "strategicResearch", component: () => import("@/views/backOfficeSystem/JudgmentHome/strategicResearch/index.vue"), meta: { title: "战略研判", icon: "article-create" } }, ] }, { path: "/tacticalResearch", name: "tacticalResearch", component: () => import("@/views/backOfficeSystem/JudgmentHome/tacticalResearch/index.vue"), meta: { title: "战术研判", icon: "article-create" } }, { path: "/strategicResearch", name: "strategicResearch", component: () => import("@/views/backOfficeSystem/JudgmentHome/strategicResearch/index.vue"), meta: { title: "战略研判", icon: "article-create" } }, { path: "/JobAppraisal", name: "JobAppraisal", component: () => import("@/views/backOfficeSystem/HumanIntelligence/JobAppraisal/index"), meta: { title: "工作考核", icon: "article-create" } }, ] }, ] } ]; // 创建路由实例,只注册公开路由 const router = createRouter({ history: createWebHashHistory(), routes: publicRoutes }); // 重置路由(退出登录时调用) export function resetRouter() { // 移除所有动态添加的路由 router.getRoutes().forEach(route => { if (route.name && !publicRoutes.find(r => r.name === route.name)) { router.removeRoute(route.name); } }); } export default router;