ADDED Requirements
Requirement: 展示当前版本信息
系统 SHALL 在「版本更新维护」页面顶部展示当前版本信息(版本号、更新日期、版本说明、发布人、影响模块),数据 MUST 与导航栏版本号同源(均来自根目录 VERSION.md 的「① 当前版本信息」区与对应版本段落)。
Scenario: 正常展示当前版本
- WHEN 用户打开「版本更新维护」页面
- THEN 页面展示当前版本号、更新日期、版本说明,以及该版本段落中的发布人、影响模块,版本号与左侧导航底部显示一致
Scenario: 发布人与影响模块为空
- WHEN 当前版本段落未写「发布人」或「影响模块」
- THEN 对应项 MUST 隐藏(不显示空值或占位"-"以外的内容)
Scenario: 版本号缺失兜底
- WHEN
VERSION.md 的「① 当前版本信息」区为空或解析不到版本号
- THEN 页面展示"未获取到版本信息"提示,且不得报错白屏
Requirement: 查看历史版本更新内容
系统 SHALL 按版本号倒序(最新在最上)展示 VERSION.md「② 版本更新内容」区中所有版本的更新明细,并按「新增 / 优化 / 修复」分类显示。
Scenario: 展开查看某版本明细
- WHEN 用户在历史版本列表中展开某个版本
- THEN 该版本的「新增 / 优化 / 修复」条目全部列出,并显示该版本的发布人与影响模块;条目为"无"的分类 MUST 被隐藏而不显示为"无"
Scenario: 无历史记录
- WHEN 「② 版本更新内容」区没有任何版本记录
- THEN 列表区域展示"暂无版本更新记录"空状态
Requirement: 录入新版本更新内容
系统 SHALL 提供「新增版本」表单,允许录入版本号、更新日期、版本说明、发布人、影响模块与「新增 / 优化 / 修复」三类更新条目(每类支持动态增删多条)。
Scenario: 发布人默认当前登录用户
- WHEN 用户打开「新增版本」弹窗
- THEN 「发布人」MUST 默认填充当前登录用户的用户名,且允许修改
Scenario: 影响模块多选与自由输入
- WHEN 用户填写「影响模块」
- THEN 可从预置模块(DRG分组 / DIP付费 / 医保控费预警 / 盈亏分析 / 基础数据 / HIS数据 / 特例单议 / 系统管理 / 接口服务 / 其它)中多选,也 MUST 允许输入列表外的模块名
Scenario: 自动推算下一个版本号
- WHEN 用户打开「新增版本」弹窗
- THEN 版本号 MUST 自动填充为
v + 今天日期(YYYY.MM.DD)+ 当日已有最大序列号 + 1(当天无记录则为 01)
Scenario: 修改日期后重算版本号
- WHEN 用户修改「更新日期」
- THEN 版本号 MUST 同步重算为
v + 所选日期 + 该日已有最大序列号 + 1
Scenario: 动态增删更新条目
- WHEN 用户在某一分类下点击"添加一条"或删除某条
- THEN 该分类下输入项相应增加/减少,允许只填写部分分类
Scenario: 空内容拦截
- WHEN 用户提交时版本号为空,或三类更新内容全部为空
- THEN 系统 MUST 拦截提交并给出中文提示,不生成 Markdown
Scenario: 版本号重复拦截
- WHEN 用户提交的版本号在历史记录中已存在
- THEN 系统 MUST 拦截提交并提示"版本号已存在"
Requirement: 生成并输出 VERSION.md 内容
系统 SHALL 根据表单内容生成符合规范的 Markdown:① 用新版本信息替换「① 当前版本信息」区三行;② 将新版本段落(含 - 发布人:、- 影响模块: 两行,值为空时省略)插入到「② 版本更新内容」区最顶部;其余原文 MUST 原样保留。
Scenario: 生成含发布人与影响模块的段落
- WHEN 用户填写了发布人与影响模块并提交
- THEN 生成的新版本段落标题下 MUST 依次包含
- 发布人:<值> 与 - 影响模块:<值1>、<值2> 两行,再输出 ### 新增 等分类
Scenario: 生成完整文件并提供复制
- WHEN 用户提交新增版本表单
- THEN 系统生成完整
VERSION.md 文本并展示预览,提供「复制全文」按钮,复制成功后提示"已复制"
Scenario: 下载完整 VERSION.md
- WHEN 用户点击「下载 VERSION.md」
- THEN 浏览器下载
VERSION.md 文件(UTF-8,内容为生成的完整文本),提示操作成功
Scenario: 仅下载新增片段
- WHEN 用户点击「下载新增片段」
- THEN 浏览器下载仅含本次新增版本段落的 Markdown 片段文件,供手动粘贴到
VERSION.md
Scenario: 标记区缺失降级
- WHEN
VERSION.md 原文缺少 CURRENT_VERSION_START/END 或 CHANGELOG_START/END 标记
- THEN 系统 MUST 提示"版本文件标记区缺失,请检查 VERSION.md",并降级为仅生成新增版本片段供人工粘贴
Requirement: 页面生效提示
系统 SHALL 在页面显著位置提示:生成的内容需覆盖项目根目录 VERSION.md 并重新打包(npm run build)后,导航栏版本号才会更新。
Scenario: 展示生效提示
- WHEN 用户查看「版本更新维护」页面
- THEN 页面常驻提示"版本号来源于项目根目录 VERSION.md,替换文件后需重新打包生效"
Requirement: 菜单与路由注册
系统 SHALL 注册菜单 key system-version(标题「版本更新维护」,路径 /system/version),并在 keyToPath、menuTitleMap、MENU_RENDERERS 三处同时登记,dev 启动时三处一致性校验 MUST 通过。
Scenario: 通过菜单打开页面
- WHEN 用户在左侧导航点击「版本更新维护」
- THEN 页面正常渲染,URL 归一到
#/system/version,顶部 Header 与 Tab 标题显示「版本更新维护」
Scenario: 三处一致性校验通过
- WHEN dev 模式启动
- THEN
validateMenuRoutes() 不输出 system-version 相关的缺失告警