docs: 归档项目需求分析、一期开发说明书及Kingbase数据库审计报告
This commit is contained in:
1 parent
83797f9286
commit
9d053bf41f
24 files changed
+17152
No files matched your search
@@ -0,0 +1,72 @@
|
||||
# 培训前端现状
|
||||
|
||||
## 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` 中可复现的能力;在提交或交接前应先明确哪些文件属于正式基线。
|
||||
Reference in new issue
Block a user