更改校端权限

This commit is contained in:
chenxing
2026-09-07 09:32:38 +08:00
parent 9200fa2135
commit 7e37f2ada6
15 changed files with 461 additions and 120 deletions
+28 -14
View File
@@ -1,4 +1,5 @@
import type { RouteRecordRaw } from "vue-router";
import { UserRoleEnum } from "@/types";
import GroupUser from "@/views/group-user/index.vue";
import AppList from "@/views/app/AppList.vue";
import AppCategory from "@/views/app/AppCategory.vue";
@@ -12,41 +13,54 @@ import OperationLogList from "@/views/oplog/OperationLogList.vue";
import OapiLogList from "@/views/oapilog/OapiLogList.vue";
import PushLog from "@/views/push/PushLog.vue";
import PushTest from "@/views/push/PushTest.vue";
import NoAuth from "@/views/NoAuth.vue";
// 管理端四级访问控制:meta.roles 为空/未声明 = 登录即可访问
const ALL_ADMIN = [UserRoleEnum.SuperAdmin, UserRoleEnum.Bureau, UserRoleEnum.School];
const routes: RouteRecordRaw[] = [
{
path: "/",
redirect: "/group-user",
},
// ===== 无权限页(路由守卫重定向目标)=====
{
path: "/no-auth",
name: "NoAuth",
component: NoAuth,
meta: { title: "暂无权限" },
},
// ===== 开发组(组/用户管理,多页嵌套目录)=====
{
path: "/group-user",
name: "GroupUser",
component: GroupUser,
meta: { title: "组,用户管理", icon: "icon-list", modId: 1101 },
meta: { title: "组,用户管理", icon: "icon-list", modId: 1101, roles: ALL_ADMIN },
},
// ===== 应用管理(单选项卡)=====
// 应用管理主页(= 应用列表),菜单顶层「应用管理」指向此路由(modId 1102)
// 局端不开放应用管理(局端的应用动作是「开通」)
{
path: "/app-manage/list",
name: "AppList",
component: AppList,
meta: { title: "应用管理", icon: "icon-list", modId: 1102, keepAlive: true },
meta: { title: "应用管理", icon: "icon-list", modId: 1102, keepAlive: true, roles: [UserRoleEnum.SuperAdmin, UserRoleEnum.School] },
},
// 应用类型管理(深层子页,不在菜单里):meta.parentId=1102 关联父菜单「应用管理」,
// 由 layout.vue 的 routeChange 推导面包屑「应用管理>应用类型管理」并高亮父菜单
// 校管可:类别改名/排序(写覆盖表);新增/删除类别按钮由页面按级别隐藏
{
path: "/app-manage/category",
name: "AppCategory",
component: AppCategory,
meta: { title: "应用类型管理", modId: 11022, parentId: 1102 },
meta: { title: "应用类型管理", modId: 11022, parentId: 1102, roles: [UserRoleEnum.SuperAdmin, UserRoleEnum.School] },
},
// 模块管理(深层子页,不在菜单里):meta.parentId=1102 关联父菜单「应用管理」
// 模块管理(深层子页,不在菜单里):仅超管
{
path: "/app-manage/module",
name: "ModuleManage",
component: ModuleManage,
meta: { title: "模块管理", modId: 11023, parentId: 1102 },
meta: { title: "模块管理", modId: 11023, parentId: 1102, roles: [UserRoleEnum.SuperAdmin] },
},
// /app-manage 兜底重定向到主页
{
@@ -59,7 +73,7 @@ const routes: RouteRecordRaw[] = [
path: "/role-authz/list",
name: "RoleAuthzList",
component: RoleAuthzList,
meta: { title: "角色授权", icon: "icon-list", modId: 1110, keepAlive: true },
meta: { title: "角色授权", icon: "icon-list", modId: 1110, keepAlive: true, roles: ALL_ADMIN },
},
// 角色管理(深层子页,不在菜单里):meta.parentId=1110 关联父菜单「角色授权」,
// 由 layout.vue 推导面包屑「角色授权>角色管理」并高亮父菜单(与 /app-manage/category 范式一致)
@@ -67,7 +81,7 @@ const routes: RouteRecordRaw[] = [
path: "/role-authz/manage",
name: "RoleManage",
component: RoleManage,
meta: { title: "角色管理", modId: 11101, parentId: 1110 },
meta: { title: "角色管理", modId: 11101, parentId: 1110, roles: ALL_ADMIN },
},
// /role-authz 兜底重定向到主页
{
@@ -78,45 +92,45 @@ const routes: RouteRecordRaw[] = [
path: "/app-open",
name: "AppOpen",
component: AppOpen,
meta: { title: "应用开通", icon: "icon-list", modId: 1103 },
meta: { title: "应用开通", icon: "icon-list", modId: 1103, roles: [UserRoleEnum.SuperAdmin, UserRoleEnum.Bureau] },
},
{
path: "/group-auth",
name: "GroupAuth",
component: GroupAuth,
meta: { title: "组授权", icon: "icon-list", modId: 1104 },
meta: { title: "组授权", icon: "icon-list", modId: 1104, roles: ALL_ADMIN },
},
{
path: "/permission-view",
name: "PermissionView",
component: PermissionView,
meta: { title: "权限一览", icon: "icon-list", modId: 1105 },
meta: { title: "权限一览", icon: "icon-list", modId: 1105, roles: ALL_ADMIN },
},
{
path: "/push-log",
name: "PushLog",
component: PushLog,
meta: { title: "推送日志", icon: "icon-list", modId: 1112, keepAlive: true },
meta: { title: "推送日志", icon: "icon-list", modId: 1112, keepAlive: true, roles: [UserRoleEnum.SuperAdmin] },
},
{
path: "/push-test",
name: "PushTest",
component: PushTest,
meta: { title: "测试推送", icon: "icon-list", modId: 1113 },
meta: { title: "测试推送", icon: "icon-list", modId: 1113, roles: [UserRoleEnum.SuperAdmin] },
},
// ===== 操作日志 =====
{
path: "/oplog",
name: "OperationLogList",
component: OperationLogList,
meta: { title: "操作日志", icon: "icon-list", modId: 1111, keepAlive: true },
meta: { title: "操作日志", icon: "icon-list", modId: 1111, keepAlive: true, roles: [UserRoleEnum.SuperAdmin] },
},
// ===== 开放接口日志 =====
{
path: "/oapilog",
name: "OapiLogList",
component: OapiLogList,
meta: { title: "开放接口日志", icon: "icon-list", modId: 1114, keepAlive: true },
meta: { title: "开放接口日志", icon: "icon-list", modId: 1114, keepAlive: true, roles: [UserRoleEnum.SuperAdmin] },
},
];