7.2 KiB
7.2 KiB
培训前端现状
1. 前端入口与路由机制
当前培训业务前端是 build_ui/:package.json 的 description 为“智慧培训管理平台”,src/views/train 和 src/api/train 均位于此处。
build_ui/src/router/index.js 没有静态培训菜单,只包含登录、首页、个人中心和若依少量隐藏动态路由。登录后,build_ui/src/store/modules/permission.js 调用 build_ui/src/api/menu.js 的 GET /getRouters,按后端 sys_menu 数据加载组件。
因此:
- 仓库代码可以确认“页面文件存在”。
- 仓库不能确认“当前数据库菜单存在且角色已授权”。
RuoYi-Vue/sql/ry_20250522.sql未发现任何train菜单/权限数据,精确菜单名称和路径只能通过实时sys_menu再核验。
2. 页面与 API 对照
表中的“菜单”表示该页面预期承载的功能名称,不表示已在实时 sys_menu 中确认。
| 菜单/功能 | 页面路径 | API | 当前完成度 | 备注 |
|---|---|---|---|---|
| 教师信息 | views/train/teacher/index.vue |
api/train/teacher.js → /train/teacher |
CRUD页面存在,接通未证实 | 有列表/详情/增改删/导出;按钮用 train:teacher:*,后端用 system:teacher:* |
| 学员信息 | views/train/student/index.vue |
api/train/student.js → /train/student |
CRUD页面存在,接通未证实 | 同类权限不一致;无培训学员导入 |
| 课程信息 | views/train/course/index.vue |
api/train/course.js → /train/course |
CRUD页面存在,接通未证实 | 附件/资源仍为文本输入 |
| 开班计划 | views/train/plan/index.vue |
api/train/plan.js → /train/plan |
CRUD页面存在,接通未证实 | 不是课表或班级工作台 |
| 宿舍信息 | views/train/dormitory/index.vue |
api/train/dormitory.js → /train/dorminfo |
部分存在 | 页面已修改、API未跟踪;无按钮权限与导出按钮 |
| 宿舍权限 | views/train/auth/index.vue |
api/train/auth.js → /train/auth |
CRUD页面存在,接通未证实 | 仅维护授权记录,不调用门锁系统 |
| 教室信息 | views/train/classroom/index.vue |
实际用 api/train/info.js → /train/classroominfo |
CRUD页面存在,接通未证实 | info.js已修改;另有未跟踪classroom.js;别名未提交 |
| 实训场地 | views/train/site/index.vue |
api/train/site.js → /train/site |
CRUD页面存在,接通未证实 | 配套设备为文本字段 |
| 开班报到 | views/train/report/index.vue |
api/train/report.js → /train/report |
CRUD页面存在,接通未证实 | 表单手工录入,不是现场报到工作台 |
| 电子班牌 | views/train/board/index.vue |
api/train/board.js → /train/board |
CRUD页面存在,接通未证实 | 设备登记,不含心跳/内容发布/签到回调 |
| 学员签到 | views/train/checkin/index.vue |
api/train/checkin.js → /train/checkin |
CRUD页面存在,接通未证实 | 手工维护签到记录,无课次和设备流程 |
| 成绩信息 | views/train/score/index.vue |
api/train/score.js → /train/scoreinfo |
部分存在 | 页面/API未跟踪;无权限指令与导出入口 |
| 学习时长 | views/train/duration/index.vue |
api/train/duration.js → /train/duration |
CRUD页面存在,接通未证实 | 是明细 CRUD,不是聚合统计工作台 |
| 学员画像 | views/train/portrait/index.vue |
api/train/portrait.js → /train/portrait |
CRUD页面存在,接通未证实 | 编辑指标/文本的表格,无画像计算和可视化 |
| 学员成绩档案 | views/train/student-score/index.vue |
api/train/score.js 的列表 |
只读筛选页,未跟踪 | 按学号过滤同一 CRUD 列表,无专用统计接口 |
| 课程成绩总览 | views/train/course-score/index.vue |
api/train/score.js 的列表 |
只读筛选页,未跟踪 | “综合评级”仅按 examScore 前端判断,不是三类成绩综合算法 |
| 自主学习设备 | views/train/equipment/index.vue |
无 | 占位页,未跟踪 | 文案宣称部分能力“已就绪”,代码没有相应设备接入 |
| 设备物联管理 | views/train/extra/index.vue |
无 | 占位页,未跟踪 | 仅 el-result 与跳转按钮 |
| 人物/人员页面 | views/train/person/index.vue |
使用旧角色/图谱相关逻辑 | 遗留页面 | 权限为 train:role:*,无对应当前培训 Controller |
| 图谱页面 | views/train/character/graph.vue |
api/train/character.js |
遗留/未接通 | 当前后端未找到对应培训 Controller |
| 图表示例 | views/train/character/charts.vue |
旧接口/本地数据 | 演示性质 | 含 ECharts、随机数和历史地址,不能视为培训统计已实现 |
| 时间地点分析 | views/train/analysis/timeAndAddress.vue |
旧逻辑 | 遗留/未接通 | 无当前培训统计 Controller 对应 |
| 天气 | views/train/weather/index.vue |
旧逻辑 | 遗留/未接通 | 与 14 张培训表无对应关系 |
所有路径相对于 build_ui/src/。
3. 用户要求的页面能力确认
| 能力 | 结论 | 依据 |
|---|---|---|
| 已有哪些菜单 | 无法从仓库确认实时菜单;路由由 /getRouters + sys_menu 动态生成 |
router/index.js、store/modules/permission.js、api/menu.js;系统 SQL无train菜单 |
| 页面调用哪个 API | 14个主要页面都有对应API文件;教室实际使用info.js |
页面 import 与 src/api/train/*.js |
| 页面是否只是 CRUD | 14个核心业务页本质均为 CRUD;两个成绩衍生页只是列表筛选 | 页面 methods 与后端 Controller |
| 业务工作台 | 不存在 | 首页 views/index.vue 仅展示平台名称、版本和图片 |
| 统计图 | 培训业务统计图未实现 | dashboard/*Chart.vue 是若依示例;character/charts.vue 含随机/旧数据且无培训统计API |
| 画像 | 只有画像记录 CRUD | views/train/portrait/index.vue |
| 模拟设备页面 | 没有可运行模拟设备;只有设备管理 CRUD、遗留图表和两个占位页 | board、equipment、extra |
| 报到页面 | 有,但只是报到记录 CRUD | views/train/report/index.vue |
| 课程表页面 | 未发现 | views/train、router 与 API 搜索无 timetable/schedule/课程表实现 |
4. 权限与前端接通风险
大多数生成页面的按钮写成 v-hasPermi="['train:<module>:<action>']",而对应 Controller 使用 system:<module>:<action>。教室页面用 train:info:*,宿舍/教室/成绩后端共用 system:info:*;宿舍与成绩当前页面又没有按钮权限指令。
超级管理员因若依通配权限可能掩盖此问题,但普通角色可能出现:菜单能见而按钮隐藏、按钮可见而请求被 403、三个模块共享过宽权限等现象。实际结果还取决于实时 sys_menu.perms,本次没有查询数据库。
5. 当前工作树状态对前端基线的影响
score.js、成绩 CRUD 页面、学生成绩页、课程成绩页、两个占位页均未跟踪。dormitory/index.vue已修改,dormitory.js未跟踪。info.js与vue.config.js已修改未提交。- 因此当前文件系统能看到的页面能力高于最近一次提交
83797f92中可复现的能力;在提交或交接前应先明确哪些文件属于正式基线。