菜单权限配置指南.md 8.2 KB

招生迎新系统菜单权限配置指南

📋 概述

本文档详细说明招生迎新系统的菜单权限配置方案,包括菜单结构设计、权限分配策略和配置步骤。

🏗️ 菜单结构设计

一级菜单

  • 招生迎新管理 (menu_id: 2100)
    • 路径: /zsjy
    • 图标: education
    • 权限: 无(目录菜单)

二级菜单及功能权限

1. 报名信息管理 (menu_id: 2101)

  • 基本信息

    • 路径: /zsjy/enrollment
    • 组件: zsjy/enrollment/index
    • 图标: peoples
    • 基础权限: zsjy:enrollment:list
  • 功能权限列表 | 权限名称 | 权限标识 | 说明 | |---------|---------|------| | 报名信息查询 | zsjy:enrollment:query | 查看详细信息 | | 报名信息新增 | zsjy:enrollment:add | 新增报名记录 | | 报名信息修改 | zsjy:enrollment:edit | 修改报名信息 | | 报名信息删除 | zsjy:enrollment:remove | 删除报名记录 | | 报名信息导出 | zsjy:enrollment:export | 导出Excel | | 报名信息导入 | zsjy:enrollment:import | 批量导入 | | 报名信息审核 | zsjy:enrollment:approve | 审核报名 | | 报名信息统计 | zsjy:enrollment:statistics | 查看统计 |

2. 专业信息管理 (menu_id: 2110)

  • 基本信息

    • 路径: /zsjy/major
    • 组件: zsjy/major/index
    • 图标: skill
    • 基础权限: zsjy:major:list
  • 功能权限列表 | 权限名称 | 权限标识 | 说明 | |---------|---------|------| | 专业信息查询 | zsjy:major:query | 查看详细信息 | | 专业信息新增 | zsjy:major:add | 新增专业 | | 专业信息修改 | zsjy:major:edit | 修改专业信息 | | 专业信息删除 | zsjy:major:remove | 删除专业 | | 专业信息导出 | zsjy:major:export | 导出Excel | | 专业启用禁用 | zsjy:major:changeStatus | 状态管理 |

3. 录取流程管理 (menu_id: 2120)

  • 基本信息

    • 路径: /zsjy/process
    • 组件: zsjy/process/index
    • 图标: cascader
    • 基础权限: zsjy:process:list
  • 功能权限列表 | 权限名称 | 权限标识 | 说明 | |---------|---------|------| | 录取流程查询 | zsjy:process:query | 查看流程详情 | | 录取流程新增 | zsjy:process:add | 创建流程 | | 录取流程修改 | zsjy:process:edit | 修改流程 | | 录取流程删除 | zsjy:process:remove | 删除流程 | | 录取流程导出 | zsjy:process:export | 导出Excel | | 流程状态更新 | zsjy:process:updateStatus | 状态流转 | | 录取审批 | zsjy:process:approve | 录取决策 |

4. 审核记录管理 (menu_id: 2130)

  • 基本信息

    • 路径: /zsjy/audit
    • 组件: zsjy/audit/index
    • 图标: documentation
    • 基础权限: zsjy:audit:list
  • 功能权限列表 | 权限名称 | 权限标识 | 说明 | |---------|---------|------| | 审核记录查询 | zsjy:audit:query | 查看审核记录 | | 审核记录新增 | zsjy:audit:add | 添加审核记录 | | 审核记录修改 | zsjy:audit:edit | 修改审核记录 | | 审核记录删除 | zsjy:audit:remove | 删除记录 | | 审核记录导出 | zsjy:audit:export | 导出Excel | | 审核统计 | zsjy:audit:statistics | 审核统计 |

5. 招生统计分析 (menu_id: 2140)

  • 基本信息

    • 路径: /zsjy/statistics
    • 组件: zsjy/statistics/index
    • 图标: chart
    • 基础权限: zsjy:statistics:list
  • 功能权限列表 | 权限名称 | 权限标识 | 说明 | |---------|---------|------| | 统计数据查询 | zsjy:statistics:query | 查看统计数据 | | 统计数据新增 | zsjy:statistics:add | 新增统计 | | 统计数据修改 | zsjy:statistics:edit | 修改统计 | | 统计数据删除 | zsjy:statistics:remove | 删除统计 | | 统计数据导出 | zsjy:statistics:export | 导出Excel | | 报名统计概览 | zsjy:statistics:overview | 概览数据 | | 专业统计 | zsjy:statistics:major | 专业统计 | | 录取进度统计 | zsjy:statistics:progress | 进度统计 | | 地区分布统计 | zsjy:statistics:region | 地区分析 | | 性别分布统计 | zsjy:statistics:gender | 性别分析 | | 年龄分布统计 | zsjy:statistics:age | 年龄分析 | | 时间趋势统计 | zsjy:statistics:trend | 趋势分析 | | 刷新统计数据 | zsjy:statistics:refresh | 数据刷新 | | 生成统计报表 | zsjy:statistics:report | 报表生成 |

🔧 配置步骤

1. 执行SQL脚本

# 进入数据库
mysql -u root -p hzdyjs_xg

# 执行菜单权限配置脚本
source docs/设计文档/database/zsjy-menu-permissions.sql

2. 验证菜单配置

-- 查询招生迎新菜单结构
SELECT 
    menu_id,
    menu_name,
    parent_id,
    order_num,
    path,
    perms,
    menu_type,
    status
FROM sys_menu 
WHERE menu_id BETWEEN 2100 AND 2154
ORDER BY menu_id;

3. 角色权限分配

-- 为指定角色分配权限(示例:角色ID为2)
INSERT INTO sys_role_menu (role_id, menu_id) 
SELECT 2, menu_id FROM sys_menu WHERE menu_id BETWEEN 2100 AND 2154;

👥 角色权限建议

超级管理员 (role_id: 1)

  • 权限范围: 所有功能权限
  • 说明: 已在SQL脚本中自动配置

招生管理员

  • 建议权限:
    • 报名信息管理:全部权限
    • 专业信息管理:查询、修改、导出
    • 录取流程管理:全部权限
    • 审核记录管理:全部权限
    • 招生统计分析:查询、概览、统计相关

招生老师

  • 建议权限:
    • 报名信息管理:查询、修改、导出、审核
    • 专业信息管理:查询
    • 录取流程管理:查询、状态更新、审批
    • 审核记录管理:查询、新增、导出
    • 招生统计分析:查询、概览相关

统计分析员

  • 建议权限:
    • 报名信息管理:查询、导出、统计
    • 专业信息管理:查询
    • 录取流程管理:查询、导出
    • 审核记录管理:查询、导出、统计
    • 招生统计分析:全部权限

📊 权限统计

模块 菜单数量 功能权限数量 总计
报名信息管理 1 8 9
专业信息管理 1 5 6
录取流程管理 1 6 7
审核记录管理 1 5 6
招生统计分析 1 13 14
总计 5 37 42

🚀 使用说明

1. 前端路由配置

确保前端路由配置与菜单路径一致:

// router/modules/zsjy.js
export default {
  path: '/zsjy',
  component: Layout,
  redirect: '/zsjy/enrollment',
  name: 'Zsjy',
  meta: { title: '招生迎新管理', icon: 'education' },
  children: [
    {
      path: 'enrollment',
      component: () => import('@/views/zsjy/enrollment/index'),
      name: 'ZsjyEnrollment',
      meta: { title: '报名信息管理', icon: 'peoples' }
    },
    // ... 其他子路由
  ]
}

2. 按钮权限控制

在前端页面中使用权限指令:

<template>
  <!-- 新增按钮 -->
  <el-button 
    v-hasPermi="['zsjy:enrollment:add']"
    type="primary"
    @click="handleAdd">
    新增
  </el-button>
  
  <!-- 修改按钮 -->
  <el-button 
    v-hasPermi="['zsjy:enrollment:edit']"
    type="text"
    @click="handleUpdate(row)">
    修改
  </el-button>
</template>

3. 权限验证

后端API接口权限验证:

@SaCheckPermission("zsjy:enrollment:list")
@GetMapping("/list")
public TableDataInfo<ZsjyEnrollmentInfoVo> list(ZsjyEnrollmentInfoBo bo, PageQuery pageQuery) {
    return zsjyEnrollmentInfoService.queryPageList(bo, pageQuery);
}

⚠️ 注意事项

  1. 菜单ID范围: 2100-2154,避免与其他模块冲突
  2. 权限标识规范: 统一使用 模块:功能:操作 格式
  3. 图标选择: 使用Element UI内置图标
  4. 路径设计: 保持层级清晰,便于维护
  5. 角色分配: 根据实际业务需求合理分配权限

🔄 后续维护

  1. 新增功能: 按照现有规范添加菜单和权限
  2. 权限调整: 及时更新角色权限配置
  3. 文档更新: 保持配置文档与实际一致
  4. 权限测试: 定期验证权限配置正确性

配置完成后,重新登录系统即可看到招生迎新管理菜单! 🎉