Files
ba_web/src/router/index.js
2025-10-28 18:26:31 +08:00

328 lines
8.2 KiB
JavaScript

import { createRouter, createWebHashHistory } from "vue-router";
import layout from "@/layout/index"; //layout直接引用 其他使用路由懒加载
import store from "@/store";
// import Home from '../views/Home.vue'
/**
* 关于路由配置描述
* 1.meta && meta.title && meta.icon 则在菜单栏显示
* 2.如果存在children , 则以el-sub-menu子菜单显示
* 否则不在menu菜单显示
* 如果只展示单级别菜单 需要像developer这样配置
*/
/**
* 私有路由表
*/
export const privateRoutes = [
{
path: "/",
name: "unitManagement",
component: layout,
redirect: "/unitManagement/unitInformation",
meta: {
title: "单位管理",
icon: "personnel"
},
children: [
{
path: "/unitManagement/unitInformation",
name: "unitInformation",
component: () =>
import("@/views/securityManagement/unitManagement/unitInformation/index"),
meta: {
title: "单位信息",
icon: "personnel"
},
}
]
},
{
path: "/personnelManagement",
name: "personnelManagement",
component: layout,
meta: {
title: "人员管理",
icon: "personnel"
},
children: [
{
path: "/personnelManagement/practitioner",
name: "practitioner",
component: () =>
import("@/views/securityManagement/personnelManagement/practitioner/index"),
meta: {
title: "从业人员管理",
icon: "personnel"
},
},
{
path: "/personnelManagement/applicantPersonnel",
name: "applicantPersonnel",
component: () =>
import("@/views/securityManagement/personnelManagement/applicantPersonnel/index"),
meta: {
title: "申请人员",
icon: "personnel"
}
},
]
},
{
path: "/trainingManagement",
name: "trainingManagement",
component: layout,
meta: {
title: "培训管理",
icon: "personnel"
},
children: [
{
path: "/trainingManagement/trainer",
name: "trainer",
component: () =>
import("@/views/securityManagement/trainingManagement/trainer/index"),
meta: {
title: "培训人员",
icon: "personnel"
},
},
{
path: "/trainingManagement/personnelTraining",
name: "personnelTraining",
component: () =>
import("@/views/securityManagement/trainingManagement/personnelTraining/index"),
meta: {
title: "保安待培训人员管理",
icon: "personnel"
},
},
{
path: "/trainingManagement/trainingProject",
name: "trainingProject",
component: () =>
import("@/views/securityManagement/trainingManagement/trainingProject/index"),
meta: {
title: "保安培训项目管理",
icon: "personnel"
}
},
{
path: "/trainingManagement/examManagement",
name: "examManagement",
component: () =>
import("@/views/securityManagement/trainingManagement/examManagement/index"),
meta: {
title: "保安考试管理",
icon: "personnel"
},
},
]
},
{
path: "/training",
name: "training",
component: layout,
meta: {
title: "培训中心",
icon: "personnel"
},
children: [
{
path: "/training/securityTrainingVideo",
name: "securityTrainingVideo",
component: () => import("@/views/Training/SecurityTrainingVideo/index"),
meta: {
title: "保安培训视频",
icon: "personnel"
}
},
{
path: "/training/securityQuestionBank",
name: "securityQuestionBank",
component: () => import("@/views/Training/SecurityQuestionBank/index"),
meta: {
title: "保安题库",
icon: "personnel"
}
},
{
path: "/training/securityTrainingSyllabus",
name: "securityTrainingSyllabus",
component: () => import("@/views/Training/SecurityTrainingSyllabus/index"),
meta: {
title: "保安培训教学大纲",
icon: "personnel"
}
},
]
},
{
path: "/njxx",
name: "njxx",
component: layout,
meta: {
title: "年检信息",
icon: "personnel"
},
children: [
{
path: "/training/annualInspectionTraining",
name: "annualInspectionTraining",
component: () => import("@/views/Training/AnnualInspectionTraining/index"),
meta: {
title: "年检培训",
icon: "personnel"
}
},
{
path: "/training/annualInspectionApplicants",
name: "annualInspectionApplicants",
component: () => import("@/views/Training/AnnualInspectionApplicants/index"),
meta: {
title: "年检申请人员",
icon: "personnel"
}
},
{
path: "/training/annualInspection",
name: "annualInspection",
component: () => import("@/views/Training/AnnualInspection/index"),
meta: {
title: "年检",
icon: "personnel"
}
},
]
},
{
path: "/systemConfig",
name: "systemConfigModel",
component: layout,
meta: {
title: "系统管理",
icon: "personnel"
},
children: [
{
path: "/user/userList",
name: "userList",
component: () =>
import("@/views/backOfficeSystem/systemConfig/user-list/index"),
meta: {
title: "用户管理",
icon: "role"
}
},
{
path: "/user/role",
name: "userRoleIndex",
component: () =>
import("@/views/backOfficeSystem/systemConfig/role-list/index"),
meta: {
title: "角色列表",
icon: "role"
}
},
{
path: "/user/menuList",
name: "menuList",
component: () =>
import("@/views/backOfficeSystem/systemConfig/menu-list/index"),
meta: {
title: "菜单管理",
icon: "personnel-manage"
}
},
{
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-ranking"
}
},
{
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: "分配用户"
}
},
]
},
];
/**
* 公开路由表
*/
export const publicRoutes = [
{
path: "/publicPage",
name: "publicPage",
component: () => import("@/views/login/publicPage")
},
{
path: "/oatuh_login",
name: "oatuh_login",
component: () => import("@/views/login/oatuh_login")
},
{
path: "/sso_redirect",
name: "sso_redirect",
component: () => import("@/views/login/sso_redirect")
},
{
path: "/login",
name: "login",
component: () => import("@/views/login/index")
},
// {
// path: "/homeMy",
// name: "homeMy",
// component: () => import("@/views/homeMy/index") //街面巡防
// },
];
const router = createRouter({
history: createWebHashHistory(),
routes: publicRoutes
});
//初始化路由表
export function resetRouter() {
if (store.getters?.routeReady && store.getters?.userInfo?.permission?.menus) {
const menus = store.getters.userInfo.permission.menus;
menus.forEach((menu) => {
router.removeRoute(menu);
});
}
}
export default router;