11体能测试页面
5 + 3新增表 + 新增字段
29江西当前启用页面回归门禁
一、范围锁定
只处理“演示体能测试模块 → 江西本地项目”。演示提供功能、交互、接口和数据契约;江西提供代码集成、页面风格、权限、数据库和回归基线。
最小改动:只改体能测试闭环必需的文件和结构,但业务规则、异常处理、权限、事务和测试一个都不能省。
模块专属文件可以迁入;Staff、EnginerySet、路由、全局导入方法和共享表只做局部合并,禁止整文件覆盖。
不复制演示历史人员、测试、分析、地址、评分数据,不复制演示品牌和 dist。
二、最小改动红线
- 优先新增体能专属页面、控制器、逻辑、模型和校验。
- 共享文件仅局部修改 EnginerySet、Staff、router/index.js 和 main.js;不得整文件替换。
- 不修改 BodyTest、InBody、体重管理逻辑及其数据表。
- 不修改现有 unit/address/category/norm 字段类型,只使用现有 type 隔离。
- 不升级前端依赖,不修改全局主题和公共组件行为。
- 不迁移演示业务数据,不改写江西现有业务数据。
- 如需扩大共享文件范围,必须先说明原因和影响。
三、功能范围
| 功能 | 江西交付结果 |
|---|---|
| 测试记录 | 列表、新增、编辑、删除、查看、人员指标录入 |
| 导入导出 | 模板下载、完整校验、零部分写入、结果导出 |
| 附件 | 上传、查看、下载、删除及归属校验 |
| 体能设置 | 地址、单位、指标、指标分类、启停和引用限制 |
| 评分设置 | 项目、专项、性别、权重和评分区间 |
| 个体分析 | 人员列表、原始值趋势、评分趋势和空状态 |
四、数据库方案
新表:ydy_test、ydy_staff_test、ydy_sport_score、ydy_norm_score、ydy_test_analysis。
新字段:staff.test_date、sport.status、norm_category.type。
隔离:分类/指标/单位 type=5,地址 type=3,数据权限 type=6;InBody/体重继续使用原有独立结构。
江西审核稿无活动 DROP 和业务 DML;不复制演示数据;分析表增加 test_uuid,避免同人同日多场测试覆盖。
五、后端策略
- 用真实业务实现替换江西当前 Test 空脚手架。
- 新增 NormScore、SportProject 和体能附件能力。
- EnginerySet 增加可选 type;原调用不传参数时保持当前行为。
- Staff 只增加 sport_uuid/sport_event_uuid 返回字段,不改变江西人员筛选和权限。
- 测试主记录、明细、分析、数据权限和最近测试日期事务化保存。
- 评分先匹配专项+性别,再匹配项目+性别;无配置显示“未配置”。
六、前端与江西风格
- 迁入11个页面和10个路由,补导入映射及附件图标。
- 统一使用江西菜单、面包屑、搜索区、按钮、表格、分页、弹窗、图标和提示。
- 局部 scoped 样式,不修改全局 Element UI;不升级公共依赖。
- 修正演示旧接口,不复制演示域名、Logo、主题和打包物。
- 使用江西源码重新生成 public/dist,并验证三种桌面分辨率。
七、实施顺序
冻结江西基线
记录代码、数据库和29个启用页面正常状态。
数据库结构
审核后执行 schema,初始化数据暂不复制。
共享兼容层
完成 EnginerySet、Staff 和附件局部适配。
设置和评分
单位、地址、指标、分类、评分逐项闭环。
记录与分析
增删改查、导入导出、附件、趋势和评分。
江西风格和构建
完成视觉适配和 public/dist。
回归后开放
新功能和29个当前页面全绿后才执行菜单 SQL。
八、回归和完成门禁
| 范围 | 要求 |
|---|---|
| 当前功能 | 综合、训练、机能、体重、营养、系统、综合设置和 InBody 全部正常 |
| 未启用模块 | 不经过本次路径的不验收;共享代码的只做默认行为和 type 隔离烟测 |
| 新增模块 | 设置、评分、记录、导入导出、附件、分析、权限完整通过 |
| 技术 | PHP 5.6、MySQL 5.6、生产构建、控制台、静态资源全部通过 |
任一江西当前启用功能回归失败,禁止开放体能测试菜单。
九、发布与回滚
结构 SQL → 后端 → 前端构建 → 新功能测试 → 当前功能回归 → 菜单 SQL → 测试角色授权。
回滚优先撤销菜单授权并回退代码/dist;新增表有业务数据时禁止删除;共享字段默认保留;菜单只按本次36个 UUID 回滚。