校园智慧后勤管理系统的设计与实现(SpringBoot+Vue+JWT,RBAC 动态菜单前后端分离源码)
2026/9/5 21:49:41 网站建设 项目流程

校园智慧后勤管理系统的设计与实现(SpringBoot+Vue+JWT,RBAC 动态菜单前后端分离源码)

前言

一所校园的后勤部门,日常要跟多少套台账打交道?宿舍楼门禁的通行记录是一张表,仓库里的灭火器和维修工具是一张表,学生手里的 IC 卡余额是一张表,再加上公告通知、维修动态,基本全靠 Excel 和纸质单据在几个科室之间流转。人一多、楼一多,账目对不上、责任理不清的问题就来了。

这个项目把这套后勤台账搬到了线上:门禁通行、物料库存、IC 卡账户、学生住宿信息、消息公告全部入库管理,再配一套完整的用户-角色-菜单权限体系,不同科室登录后只看得到自己的业务模块。项目采用前后端分离架构,后端 Spring Boot + MyBatis-Plus 提供纯 REST 接口,前端 Vue2 + Element UI 渲染,JWT 令牌维持登录态——是学习 RBAC 权限设计和前后端分离工程组织的一个规整样本。

技术栈

  • 后端:Spring Boot 2.5 + MyBatis-Plus 3.5,RESTful 风格接口,业务报表通过 Apache POI 支持 Excel 导入导出;
  • 认证:JWT 无状态令牌。登录成功后签发 Token,前端存入 localStorage,此后每个请求在请求头携带token字段,拦截器统一校验解析;
  • 权限:经典 RBAC 三件套——用户表、角色表、菜单表,外加角色-菜单关联表。登录接口不仅返回用户信息,还一并下发该角色可见的菜单树,前端据此动态注册路由、渲染侧边栏,没有权限的页面连路由都不存在;
  • 前端:Vue2 + Vue Router + Vuex + Element UI,webpack 打包;管理端与面向学生的前台门户共用一个工程,通过路由分区;
  • 数据库:MySQL 5.7,utf8mb4 字符集,12 张表。

整个工程构建后是一个可执行 jar,前端构建产物直接内嵌其中——部署时只需要一个 MySQL 和一条java -jar命令,浏览器打开就是一个完整的后勤管理系统。

功能设计

系统按业务域划分为三大块:后勤管理(门禁、物料、消息、IC 卡、学生)、系统管理(用户、角色、菜单、文件)和面向普通用户的前台门户。整体功能结构如下图。

后勤管理

  • 门禁管理:登记人员通行授权与通行记录,含生效时间、结束时间、门禁数量与状态,支持按姓名检索;
  • 物料管理:后勤物资台账,记录物资名称、库存数量、所属区域与备注,支撑库存盘点;
  • IC 卡余额管理:维护每张卡的持卡人、当前余额与累计消费,宿舍水电、食堂消费都能挂在这套账上;
  • 学生基本信息:学生的宿舍号、班级、年龄、证件信息与佐证材料,支持 Excel 批量导入导出;
  • 消息管理与消息分类:公告、维修动态、政策文件按类型发布,前台门户同步展示。

系统管理(RBAC)

  • 用户管理:账号的增删改查与角色分配;
  • 角色管理:角色定义与菜单授权,勾选即生效;
  • 菜单管理:菜单树维护,菜单项与前端页面组件一一对应;
  • 文件管理:上传到服务器的资料文件统一归档管理;

前台门户:普通用户登录后可在前台查看消息公告、维护个人资料与修改密码。

登录后进入后台主页,左侧菜单完全由当前账号的角色权限动态生成——这正是 RBAC 动态菜单方案最直观的验证方式。

数据库设计

数据库db_intelligent_logistics共 12 张表,整体 E-R 关系如下。

核心表结构:

表名说明关键字段
t_entrance_guard门禁通行姓名、状态、证件号、门禁数量、生效/结束时间
t_goods物料台账物资名称、库存数量、所属区域及编号、备注
t_ic_cardIC 卡账户卡号、持卡人、余额、累计金额、备注
t_student学生信息姓名、性别、年龄、证件号、宿舍号、班级、佐证文件
t_news / t_news_type消息与分类标题、正文、作者、类型
sys_user / sys_role / sys_menu / sys_role_menuRBAC 权限四件套账号密码、角色标识、菜单树、角色-菜单关联
sys_dict / sys_file数据字典与上传文件图标字典、上传文件登记

权限四件套的关系值得细看:菜单表以pid组织成树,page_path字段直接对应前端页面组件名;角色-菜单关联表决定每个角色能看到哪些节点;登录接口把菜单树一次性下发给前端,前端setRoutes拿它动态注册路由。新增一个业务页面时,只需要在菜单表里插一行记录,所有拥有该菜单的角色自动可见——扩展成本非常低。

系统演示

门禁管理页提供按姓名搜索、批量删除与分页,表格列出每条通行授权的状态、证件号与生效区间,编辑和删除操作就近放置。

物料管理页维护各区域的物资库存,搜索、重置、新增、批量删除一应俱全。

学生基本信息页集中管理住宿学生的档案,配合 POI 导入导出可以和线下 Excel 无缝衔接。

消息管理按分类发布公告与动态,前台门户同步展示,形成"后台运营、前台消费"的闭环。

小结

这个项目的价值在于把"前后端分离 + RBAC 动态权限"这套在企业管理系统里最常用的组合跑通了一遍:JWT 无状态认证、菜单树驱动的前端动态路由、按角色收敛的数据可见性,每一环都有可以直接参考的实现。后勤业务的建模(门禁、物料、IC 卡、学生)贴近真实校园场景,拿来作为毕业设计、课程设计或者后勤信息化的起步模板都合适。

工程内含数据库初始化脚本与部署说明,导入 MySQL、java -jar启动后即可登录体验。对 RBAC 设计、JWT 认证或 MyBatis-Plus 用法有疑问的话,欢迎评论区交流。

完整工程已整理上传(含前后端源码、数据库脚本与部署说明):

校园智慧后勤管理系统源码(SpringBoot+Vue 前后端分离)

如果在实现类似系统时遇到问题,欢迎评论区交流。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询