# 课程资源管理模块(RuoYi 后台手动操作手册 v1) 更新时间:2025-10-18 本文手把手指导你在 RuoYi 后台完成“课程资源管理模块”的菜单、按钮与角色授权配置,配合现有前后端代码实现完整的“上传/审核/维护”闭环。 重要前提 - 门户(普通用户界面)统一路由前缀为 `/portal`,课程资源分享模块入口为 `/portal/course-resource`,不依赖后台菜单;写操作仍走 `/manage` 接口并受按钮权限控制。 - 后台(专业负责人/管理员)通过本手册配置的菜单进入管理页(如“待审核”)。 - 账号角色:默认存在 user(普通用户)、major_lead(专业负责人)、admin/super_admin(管理员)。 术语说明 - 目录:仅用于分组的菜单节点,component 选 Layout。 - 菜单:真实页面,需填写 组件路径、路由地址、权限字符(页面最小查询权限)。 - 按钮:页面内的操作权限(增删改审等),仅填写“菜单名称/权限字符”。 目录总览(最佳实践) - 课程资源(目录,模块路由前缀:/manage/course-resource) - 专业管理(菜单,管理员) - 课程管理(菜单,负责人+管理员) - 专业负责人(菜单,管理员) - 资源列表(已上架)(菜单,负责人+管理员) - 待审核(菜单,负责人+管理员) - 回收站(合并“已驳回/已下架”,菜单,负责人+管理员) 一、创建顶层目录 - 系统管理 → 菜单管理 → 新增 - 菜单类型:目录 - 菜单名称:课程资源 - 路由地址:/manage/course-resource - 组件:Layout - 是否外链:否;是否缓存:否;显示状态:显示 - 权限字符:留空(目录无需) 二、创建子菜单与按钮 注意:子菜单的“路由地址”不要以斜杠开头,应填写相对路径(如 approved、audit、trash、major、course、major-lead)。父目录“路由地址”使用绝对路径(如 /manage/course-resource)。 A. 专业管理(管理员) - 菜单(用于维护 `tb_major` 专业字典) - 上级菜单:课程资源 - 菜单类型:菜单 - 菜单名称:专业管理 - 路由地址:major - 组件路径:manage/courseResource/major/index - 权限字符(最小查询权限):manage:major:list - 按钮(新增以下按钮到该菜单下,菜单类型=按钮) - 新增:manage:major:add - 修改:manage:major:edit - 删除:manage:major:remove - 详情:manage:major:query(如页面有“查看详情”按钮) B. 课程管理(负责人+管理员) - 菜单(用于维护 `tb_course`,负责人仅能操作本专业) - 上级菜单:课程资源 - 菜单类型:菜单 - 菜单名称:课程管理 - 路由地址:course - 组件路径:manage/courseResource/course/index - 权限字符:manage:course:list - 按钮 - 新增:manage:course:add - 修改:manage:course:edit - 删除:manage:course:remove - 详情:manage:course:query C. 专业负责人(管理员) - 菜单(用于维护 `tb_major_lead` 专业-负责人映射) - 上级菜单:课程资源 - 菜单类型:菜单 - 菜单名称:专业负责人 - 路由地址:major-lead - 组件路径:manage/courseResource/majorLead/index - 权限字符:manage:majorLead:list - 按钮 - 新增:manage:majorLead:add - 删除:manage:majorLead:remove D. 资源列表(已上架)(负责人+管理员) - 菜单(用于维护已通过上架的资源,负责人仅本专业) - 上级菜单:课程资源 - 菜单类型:菜单 - 菜单名称:资源列表 - 路由地址:approved - 组件路径:manage/courseResource/approved - 权限字符:manage:courseResource:list - 按钮 - 下载:manage:courseResource:download - 设为最佳/取消最佳:manage:courseResource:best - 下架:manage:courseResource:offline - 修改:manage:courseResource:edit(若支持后台直接改名称/简介) - 强制删除(谨慎):manage:courseResource:remove - 详情:manage:courseResource:query E. 待审核(负责人+管理员) - 菜单(用于审核 `status=0` 待审资源) - 上级菜单:课程资源 - 菜单类型:菜单 - 菜单名称:待审核 - 路由地址:audit - 组件路径:manage/courseResource/audit - 权限字符:manage:courseResource:list - 按钮 - 下载:manage:courseResource:download(用于审核时查看资源内容) - 审核通过:manage:courseResource:approve - 审核驳回:manage:courseResource:reject - 详情:manage:courseResource:query F. 回收站(最佳实践:合并“已驳回/已下架”) - 菜单(用于筛选 `status in (2,3)`,支持重新上架/硬删除) - 上级菜单:课程资源 - 菜单类型:菜单 - 菜单名称:回收站 - 路由地址:trash - 组件路径:manage/courseResource/trash - 权限字符:manage:courseResource:list - 按钮 - 下载:manage:courseResource:download(需要复核内容时使用) - 重新上架(进入待审):manage:courseResource:online - 强制删除(硬删,仅删库):manage:courseResource:remove 提示:管理端下载接口为受保护路由(/manage/courseResource/{id}/download),前端使用 window.open 时无法自动携带请求头,已改为在 URL 上追加 `?token=<当前登录token>` 进行认证,并在服务端进行下载计数与 302 跳转。 说明: - 路由地址采用“模块前缀 + 子功能”的分层规范:`/manage/course-resource/`,便于与其他模块(如 `/manage/book/...`)共存而不冲突。 - 组件路径均为相对 `src/views` 的路径,不带 `.vue` 后缀;课程资源模块统一置于 `src/views/manage/courseResource` 下。例如 `manage/courseResource/audit` 对应 `src/views/manage/courseResource/audit.vue`。 三、角色授权 1. 给“管理员(admin/super_admin)” - 分配“课程资源”目录下全部菜单与按钮 - 同时可分配“系统管理”等平台能力 2. 给“专业负责人(major_lead)” - 分配:课程管理、资源列表、待审核、回收站(及其按钮) - 不分配:专业管理、专业负责人(仅管理员维护) 3. 给“普通用户(user)” - 不分配后台菜单(门户即可完成日常浏览) - 仅分配普通用户写权限(按钮级)以启用上传和个人资源管理: - manage:upload:oss - manage:courseResource:add - manage:courseResource:edit - manage:courseResource:remove - manage:courseResource:offline - manage:courseResource:online 四、对照校验(常见问题) - 白屏/404: - 检查“组件路径”是否正确(相对于 `src/views`,不含 `.vue`) - 页面未开发完毕前,菜单可先只建“按钮权限”,待页面上线后再补“组件路径” - 403 无权限: - 前端按钮 `v-hasPermi` 与后端 `@PreAuthorize` 标识须完全一致 - 角色是否已勾选对应“按钮权限” - 列表为空: - “待审核”页需传 `status=0`;“资源列表(已上架)”页需传 `status=1` - 负责人仅能看到本专业数据,确保已配置 `tb_major_lead` 五、页面与接口对齐速查 - 专业管理(菜单路由):/manage/course-resource/major(manage:major:*) - 课程管理(菜单路由):/manage/course-resource/course(manage:course:*) - 专业负责人(菜单路由):/manage/course-resource/major-lead(manage:majorLead:*) - 资源审核与维护(接口前缀):/manage/courseResource(manage:courseResource:*) - 门户只读(接口前缀):/portal/major|course|resource|top(登录即可) 六、推荐的页面实现顺序(若尚未全部完成) 1) 待审核(已实现:manage/resource/audit) 2) 资源列表(已上架):manage/resource/approved(推荐新增) 3) 回收站(已驳回/已下架合一):manage/resource/trash(推荐新增) 4) 专业管理:manage/major/index(推荐新增) 5) 课程管理:manage/course/index(推荐新增) 6) 专业负责人:manage/majorLead/index(推荐新增) 七、验证流程(最小闭环) - 用 user 角色:在门户 /portal/course-resource 上传(有按钮权限),进入“我上传的”查看状态 - 切换 major_lead 角色:后台“待审核”通过/驳回;“资源列表”可下架 - 切换 admin 角色:后台“专业管理/课程管理/专业负责人”维护基础数据 附:字段填写速查(必填) - 目录:菜单名称、路由地址 - 菜单:菜单名称、路由地址(相对路径)、组件路径、权限字符 - 按钮:菜单名称、权限字符 如需,我可以继续为“资源列表(已上架)/回收站/课程管理/专业管理/专业负责人”补齐前端页面骨架,以便你一键启用上述菜单.