# RuoYi 后台菜单/按钮配置指引|功能房预约模块(MVP) 适用范围:本项目“功能房预约”模块。目标是在 RuoYi 后台完成菜单树与权限按钮配置,支撑后端接口的鉴权与前端页面的显示控制。 提示:本阶段前端页面尚在开发中,先完成菜单/权限,后续页面就绪即可直接绑定路由与按钮的 `v-hasPermi`。 --- ## 一、准备 - 入口:系统管理 → 菜单管理 - 账户:管理员或具备菜单管理权限的账号 - 约定:权限标识统一为 `manage::`,与后端 `@PreAuthorize` 完全一致。 --- ## 二、创建顶级目录“功能房预约” 1. 点击“新增” → 菜单类型:目录 2. 字段填写 - 菜单名称:功能房预约 - 父菜单:顶级菜单 - 路由地址:`/facility` - 组件路径:留空(目录无需) - 是否显示:显示 - 菜单状态:正常 - 图标:可选 `el-icon-office-building` 3. 保存 --- ## 三、业务菜单与按钮(逐项新增) > 操作方式:在“功能房预约”目录下,依次新增“菜单”,再在该菜单下新增“按钮”。菜单用于页面路由占位,按钮用于接口权限控制。 ### 1) 楼房管理 - 新增菜单 - 菜单类型:菜单 - 菜单名称:楼房管理 - 父菜单:功能房预约 - 路由地址:`/facility/building` - 组件路径:`manage/facility/building/index`(前端就绪后对应) - 是否显示:显示 - 新增按钮(在“楼房管理”下连续新增按钮类型) - 列表:`manage:facility:building:list` - 查看:`manage:facility:building:get` - 新增:`manage:facility:building:add` - 修改:`manage:facility:building:edit` - 删除:`manage:facility:building:remove` - 甘特图:`manage:facility:building:gantt` ### 2) 房间管理 - 新增菜单 - 菜单名称:房间管理 - 路由地址:`/facility/room` - 组件路径:`manage/facility/room/index` - 新增按钮 - 列表:`manage:facility:room:list` - 查看:`manage:facility:room:get` - 时间轴:`manage:facility:room:timeline` - 新增:`manage:facility:room:add` - 修改:`manage:facility:room:edit` - 启用/禁用:`manage:facility:room:enable` - 删除:`manage:facility:room:remove` ### 3) 预约审核 - 新增菜单 - 菜单名称:预约审核 - 路由地址:`/facility/booking-audit` - 组件路径:`manage/facility/booking-audit/index` - 新增按钮 - 审核列表:`manage:facility:booking:audit:list` - 审核通过:`manage:facility:booking:audit:approve` - 审核驳回:`manage:facility:booking:audit:reject` ### 4) 封禁管理 - 新增菜单 - 菜单名称:封禁管理 - 路由地址:`/facility/ban` - 组件路径:`manage/facility/ban/index` - 新增按钮 - 列表:`manage:facility:ban:list` - 新增封禁:`manage:facility:ban:add` - 移除封禁:`manage:facility:ban:remove` ### 5) 模块设置 - 新增菜单 - 菜单名称:模块设置 - 路由地址:`/facility/setting` - 组件路径:`manage/facility/setting/index` - 新增按钮 - 查看设置:`manage:facility:setting:get` - 修改设置:`manage:facility:setting:edit` ### 6) 排行榜 - 新增菜单 - 菜单名称:排行榜 - 路由地址:`/facility/ranking` - 组件路径:`manage/facility/ranking/index` - 新增按钮 - 房间榜:`manage:facility:ranking:room` - 用户榜:`manage:facility:ranking:user` --- ## 五、角色授权 - 学生工作者(staff) - 预约审核:list/approve/reject - 封禁管理:list/add/remove - 排行榜:room/user - 房间与楼房:list/get/timeline(只读) - 管理员(admin/super_admin) - 本模块全部权限 - 普通用户(user) - “用户接口(隐藏)”下的按钮权限集合 操作路径: 1. 系统管理 → 角色管理 → 新增/编辑角色 2. 分配菜单:勾选对应菜单与按钮项 3. 用户管理 → 给目标用户分配角色 4. 退出并重新登录生效 --- ## 六、校验与自检 - 接口连通: - GET `/manage/facility/setting/audit-required` 需 `manage:facility:setting:get` - POST `/manage/facility/booking` 需 `manage:facility:booking:add` - GET `/manage/facility/booking/audit/list` 需 `manage:facility:booking:audit:list` - 前端按钮:`v-hasPermi=['manage:facility:room:add']` 应与后端注解一致 - 常见问题: - 菜单/按钮勾选后未生效 → 重新登录 - 按钮标识拼写不一致 → 403 拒绝 - 菜单点击 404 → 前端组件未就绪,不影响按钮权限与接口调用 --- ## 七、附录:接口与权限对照速查 - 楼房 - GET `/manage/facility/building/list` → `manage:facility:building:list` - GET `/manage/facility/building/{id}` → `manage:facility:building:get` - POST `/manage/facility/building` → `manage:facility:building:add` - PUT `/manage/facility/building` → `manage:facility:building:edit` - DELETE `/manage/facility/building/{ids}` → `manage:facility:building:remove` - 房间 - GET `/manage/facility/room/list` → `manage:facility:room:list` - GET `/manage/facility/room/{id}` → `manage:facility:room:get` - GET `/manage/facility/room/{id}/timeline` → `manage:facility:room:timeline` - POST `/manage/facility/room` → `manage:facility:room:add` - PUT `/manage/facility/room` → `manage:facility:room:edit` - PUT `/manage/facility/room/{id}/enable` → `manage:facility:room:enable` - DELETE `/manage/facility/room/{ids}` → `manage:facility:room:remove` - 预约(用户) - POST `/manage/facility/booking` → `manage:facility:booking:add` - GET `/manage/facility/booking/my/list` → `manage:facility:booking:list` - PUT `/manage/facility/booking/{id}` → `manage:facility:booking:edit` - PUT `/manage/facility/booking/{id}/end-early` → `manage:facility:booking:edit` - DELETE `/manage/facility/booking/{id}` → `manage:facility:booking:cancel` - 审核 - GET `/manage/facility/booking/audit/list` → `manage:facility:booking:audit:list` - PUT `/manage/facility/booking/{id}/approve` → `manage:facility:booking:audit:approve` - PUT `/manage/facility/booking/{id}/reject` → `manage:facility:booking:audit:reject` - 设置 - GET `/manage/facility/setting/audit-required` → `manage:facility:setting:get` - PUT `/manage/facility/setting/audit-required` → `manage:facility:setting:edit` - 封禁 - GET `/manage/facility/ban/list` → `manage:facility:ban:list` - POST `/manage/facility/ban` → `manage:facility:ban:add` - DELETE `/manage/facility/ban/{id}` → `manage:facility:ban:remove` - 排行榜 - GET `/manage/facility/ranking/room` → `manage:facility:ranking:room` - GET `/manage/facility/ranking/user` → `manage:facility:ranking:user` --- 完成以上步骤后,你即可在 Apifox/前端对照权限进行联调。若需图文版逐步截图位(字段逐一标注),告诉我当前后台页面版本(字段命名/布局),我会补充带图版本。