一、核心结论
以江西本地代码和开发库的实际功能作为唯一回归基线。新增模块采用独立表、独立接口和显式类型隔离;共享代码只做向后兼容的增量适配,菜单最后开放。
二、隔离架构
| 隔离层 | 规则 | 保护对象 |
|---|---|---|
| 数据库 | 体能专属 5 张表;分类/指标/单位 type=5,地址 type=3,数据权限 type=6 | 训练、选材、机能、体重数据不串库 |
| 接口 | 共享方法新增可选 type,未传参保持江西当前默认;体能页面显式传参 | 现有调用方响应与行为不变 |
| 人员 | 只给 getStaffByStation 增加 sport_uuid/sport_event_uuid,不替换江西过滤规则 | 组织、人员、权限、InBody |
| 前端 | 复用江西容器、按钮、表格、弹窗、分页、图标和反馈;局部 scoped 样式 | 视觉和交互一致,不污染全局主题 |
| 发布 | 代码/表结构/构建/回归全部通过后再插入菜单并授权 | 未完成模块不对用户暴露 |
三、实施顺序
冻结江西基线
记录分支、当前本地改动、29 个启用页面和关键接口正常响应;保留本地启动配置及 BodyTest 当前改动。
数据库结构
新增 test、staff_test、sport_score、norm_score、test_analysis;补 staff.test_date、sport.status、norm_category.type;提供预检与安全 rollback。
共享兼容层
EnginerySet 显式 type 隔离、Staff 只增字段、测试附件限定主记录归属;先证明原调用不变。
体能设置闭环
依次完成单位、地址、指标、分类、评分;江西运动项目重新配置,评分权重总和固定为 10。
测试记录闭环
新增/读取/编辑/删除事务化;维护 manage_staff.type=6 和 staff.test_date;同人同日多场测试不覆盖。
导入导出与附件
Excel 全表先校验后一次性写入,失败不产生部分数据;附件只作用于当前测试。
个体分析
趋势、评分和空状态完整;评分按专项+性别精确匹配,再按项目+性别回退,无配置时显示未配置。
江西风格适配
按当前 selection/function 页面结构统一导航、搜索区、按钮、表格、弹窗、分页和三种桌面分辨率。
构建、菜单与开放
使用江西源码生成 public/dist,完成全回归后执行 36 条菜单 SQL并授权测试角色。
四、关键业务规则
- 测试主表、人员明细、分析、数据权限关系和最近测试日期在同一数据库事务内保存。
- 编辑按当前提交内容重建明细,删除同步清理并重新计算人员最近测试日期。
- 分析表以
(test_uuid, staff_uuid)唯一,避免演示库同日多测试互相覆盖。 - 评分优先匹配专项+性别,再匹配项目+性别;未配置不能误算成 0 分。
- 导入先全量校验人员、指标、单位和数值,再写入;任何错误都不产生部分结果。
- InBody/体重继续使用 body_composition、weight、weight_date,与体能测试表和事务完全分离。
五、强制回归门禁
| 级别 | 范围 | 通过条件 |
|---|---|---|
| A | 登录权限、综合管理、组织结构 ID/导出、训练、机能、体重、营养、系统与综合设置、InBody | 29 个当前启用页面及相关接口与基线一致;任一失败均阻断菜单开放 |
| B | 未启用但共享 EnginerySet、Staff、category/norm/unit/address 的代码 | 未传新参数时响应不变,type=3/4/5/6 数据严格隔离 |
| C | 未启用且不经过本次修改路径的历史模块 | 不纳入本次兼容和人工验收范围 |
新增功能验收
设置、评分、测试记录、导入导出、附件、个体分析、角色权限、PHP 5.6 语法、MySQL 5.6 SQL、前端生产构建和浏览器端到端必须全部通过。
六、页面一致性标准
- 沿用江西当前左侧菜单、顶部栏和面包屑,不带演示项目 Logo、品牌和旧主题。
- 复用当前页面容器、child-top、按钮颜色、iconfont、Element UI 表格、分页和 newDialog。
- 局部样式 scoped,不覆盖全局 Element UI;不升级 Vue、Element UI、Webpack 或 node-sass。
- 1366×768、1440×900、1920×1080 下无溢出、遮挡或操作列丢失。
- 加载、成功、错误、空数据、禁用和权限不足提示与江西当前系统一致。
七、回滚策略
- 优先撤销体能菜单授权,使模块立即不可见。
- 回退代码和 public/dist 到迁移前提交。
- 新增表只有在无江西业务数据时才可 DROP;有数据则保留并停止写入。
- 共享表新增字段保持向后兼容,常规回滚不删除。
- 菜单只按本次 36 个 UUID 删除,禁止按 ID 范围删除。
八、完成标准
当前状态:方案完成,可进入阶段 0;尚未修改 kxxl 业务代码、未执行开发库结构 SQL、未插入菜单。