feat: 文档技能包与模板规范完善
- 截图规范统一:JPEG 质量85% + 分终端目录 + 只截主界面/详情页 + 全屏视口(1440×900) - 内容通用化:全文去除客户名称与项目名称,文档可供任意客户阅读 - 交付格式规范:.md 为源 + 竖版 A4 PDF 最终交付,明确分页三原则 - PRD 合并优化:系统功能清单 HTML 表格(rowspan)替代页面清单,清理 .html 文件名与来源说明区 - 业务架构图模板重构:应用与服务层改横排竖版板块 + 层间横向分隔线 - .gitignore 忽略 /交付文档/ 目录;记忆新增操作手册截图规范 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
256b741c8f
commit
b5a8b83e6d
@@ -78,3 +78,18 @@ PAD 终端(餐厅终端设备各子设备)页面内不得出现可见滚动
|
||||
**How to apply:** 凡父实体下挂多个子行(规格/明细/条目)的模型加字段时,先判断"这个值是否随子行变化";随子行变化则行级维护(新增子行时同步出现该字段输入),否则组级。列表渲染同步调整:行级字段按子行逐行拆列展示。
|
||||
|
||||
**See Also:** [[decisions.md#净菜类型数据模型与净菜管理页展示模式]]
|
||||
|
||||
## 操作手册截图规范(2026-09-10)
|
||||
|
||||
操作手册(doc-operation-manual)及配套截图 skill 的截图必须遵守四条规范:
|
||||
|
||||
1. **只截主界面 + 重要表单/详情页**:弹窗、筛选下拉、选项列表等轻量交互不单独截图,在功能描述/注意事项中用文字或表格说明。
|
||||
2. **固定压缩比例(清晰度优先)**:输出 JPEG(质量 85%),APP 端缩放为 390px 宽;**用压缩比例限制,不设文件大小上限**(不用 KB 大小限制,保证清晰度的同时兼顾体积),参考 `项目背景.md` 7.4 节 PRD 截图规范。
|
||||
3. **分终端目录存放**:`交付文档/{子系统名}/操作手册/screenshots/{终端目录}/`(web-admin / employee-app / medical-pad 等),避免多终端截图混在同一目录。
|
||||
4. **Web 端截图前确保浏览器全屏/正确视口**:窗口未全屏会导致截图不完整、比例失调,截图前先 `resize_page` 设 1440×900 视口。
|
||||
|
||||
**Why:** 2026-09-10 生成健康监测 Web 管理端操作手册时,实际截图用了 PNG(体积大)、未分终端目录、截了过多页面,且浏览器未全屏导致截图不完整、比例失调。根因是 `web-capture/SKILL.md` 未同步规范(仍写 `.png`),doc-operation-manual 已更新但 web-capture 滞后。
|
||||
|
||||
**How to apply:** 涉及操作手册截图时,先确认 web-capture / android-capture / doc-operation-manual 三个 skill 及 operation-manual-template.md 的截图规范是否一致;不一致时以「JPEG 85%(压缩比例,清晰度优先)+ 分终端目录 + 只截主界面/详情页 + 全屏视口」为准。
|
||||
|
||||
**See Also:** [[project_progress.md]]
|
||||
|
||||
@@ -112,13 +112,35 @@ adb shell cat /sdcard/ui.xml | grep -oE 'text="[^"]+"[^>]*bounds="\[[0-9]+,[0-9]
|
||||
# 从 bounds="[x1,y1][x2,y2]" 取中心点:tap_x=(x1+x2)/2, tap_y=(y1+y2)/2
|
||||
```
|
||||
|
||||
### Step 5:交给操作手册 skill
|
||||
### Step 5:截图后处理(压缩 + 分目录)
|
||||
|
||||
截图完成后,交给 `doc-operation-manual` skill 组织成操作手册。
|
||||
真机截图原始为 1264×2800 的 PNG(体积可达 1.5MB),需压缩后才能用于操作手册:
|
||||
|
||||
1. **转 JPEG + 缩宽**:用 PowerShell System.Drawing 将 PNG 缩放为 390px 宽、质量 85% 的 JPEG(参考 `项目背景.md` 7.4 节 PRD 截图规范,目标单张约 80KB 以内)
|
||||
2. **分目录存放**:按终端分目录 `交付文档/{子系统名}/操作手册/screenshots/{终端目录}/`(如 `employee-app`),命名用中文页面名
|
||||
|
||||
```powershell
|
||||
# 示例:将 PNG 缩放为 390px 宽、JPEG 质量 85%
|
||||
Add-Type -AssemblyName System.Drawing
|
||||
$img = [System.Drawing.Image]::FromFile("源.png")
|
||||
$w = 390; $h = [int]($img.Height * $w / $img.Width)
|
||||
$bmp = New-Object System.Drawing.Bitmap($w, $h)
|
||||
$g = [System.Drawing.Graphics]::FromImage($bmp)
|
||||
$g.InterpolationMode = [System.Drawing.Drawing2D.InterpolationMode]::HighQualityBicubic
|
||||
$g.DrawImage($img, 0, 0, $w, $h)
|
||||
$enc = [System.Drawing.Imaging.ImageCodecInfo]::GetImageEncoders() | Where-Object { $_.MimeType -eq 'image/jpeg' }
|
||||
$ep = New-Object System.Drawing.Imaging.EncoderParameters(1)
|
||||
$ep.Param[0] = New-Object System.Drawing.Imaging.EncoderParameter([System.Drawing.Imaging.Encoder]::Quality, [long]85)
|
||||
$bmp.Save("目标.jpg", $enc, $ep)
|
||||
```
|
||||
|
||||
### Step 6:交给操作手册 skill
|
||||
|
||||
截图压缩完成后,交给 `doc-operation-manual` skill 组织成操作手册。
|
||||
|
||||
## 输出物
|
||||
|
||||
- `交付文档/{子系统名}/操作手册/screenshots/*.png`(APP 实际页面截图)
|
||||
- `交付文档/{子系统名}/操作手册/screenshots/{终端目录}/*.jpg`(APP 实际页面截图,JPEG 390px)
|
||||
|
||||
## 注意事项
|
||||
|
||||
@@ -126,6 +148,8 @@ adb shell cat /sdcard/ui.xml | grep -oE 'text="[^"]+"[^>]*bounds="\[[0-9]+,[0-9]
|
||||
- **读文字验证画面**:截图前务必用 uiautomator 读 text 确认页面,避免截错
|
||||
- **配对码时效短**:无线调试配对码几十秒就失效,拿到立刻配对
|
||||
- **截图命名用中文页面名**,与操作手册章节一一对应
|
||||
- **截图必须压缩**:真机截图原始 PNG 体积大,需缩放为 390px 宽 JPEG(质量 85%)再交付,不直接用原图
|
||||
- **截图按终端分目录**:`screenshots/{终端目录}/`,避免多终端截图混在同一目录
|
||||
- **点击坐标依分辨率换算**:先 `adb shell wm size` 确认(本机 1264×2800)
|
||||
- **中文输入受限**:`adb shell input text` 只支持 ASCII,中文需 adbkeyboard 或 `am broadcast`
|
||||
- 登录页等需要验证码/密码的场景,输入密码可自动化,验证码需人工识别
|
||||
|
||||
@@ -65,8 +65,8 @@ description: 生成指定子系统的《产品宣传册》(横版 A4,HTML
|
||||
## 注意事项
|
||||
|
||||
- **美观精炼**:宣传册面向客户,语言要有感染力,忌长篇技术描述;每页信息密度适中,元素丰富(图标/装饰/渐变卡片),避免单一
|
||||
- **横版分页**:每 `.page` 一屏一页(297×210mm 横版 A4),内容横向铺满,避免纵向留白
|
||||
- **横版分页**:每 `.page` 一屏一页(297×210mm 横版 A4),内容横向铺满,避免纵向留白;同一版块的文字与截图不跨页(内容超出一页时精简或拆页,不硬塞导致切割)
|
||||
- **配色统一**:沿用模板品牌蓝 `#1890FF` 设计令牌,不另造配色
|
||||
- **内容通用**:宣传册必须通用,不得体现客户信息(如「油田」、客户公司名、委托方名称等)
|
||||
- **内容通用**:宣传册必须通用,不得出现客户名称与项目名称(客户公司名、甲方名称、委托方、油田等一律不写)
|
||||
- emoji 图标用于视觉占位,正式交付如需替换为专业图标,告知用户
|
||||
- 文档名称「{子系统名}产品宣传册.html / .pdf」为中文,符合甲方要求
|
||||
|
||||
@@ -64,11 +64,14 @@ node _templates/docs/parse-sql.js <SQL文件> <输出md路径> <子系统名> Po
|
||||
|
||||
## 输出物
|
||||
|
||||
- `交付文档/{子系统名}/{子系统名}数据库设计说明书.md`
|
||||
- `交付文档/{子系统名}/{子系统名}数据库设计说明书.md`(源文件)
|
||||
- `交付文档/{子系统名}/{子系统名}数据库设计说明书.pdf`(最终交付物,竖版 A4,由使用方从 .md 转出)
|
||||
|
||||
## 注意事项
|
||||
|
||||
- SQL 注释是字段中文说明的唯一来源,`COMMENT ON COLUMN` 缺失时列说明留空并汇总提示用户补充
|
||||
- 表结构字段表严格沿用 7 列格式(序号/列名/数据类型/长度/主键/允许空值/列说明)
|
||||
- 若 SQL 无表注释,表中文名先留空,提醒用户补齐
|
||||
- **内容通用**:全文不得出现客户名称与项目名称,只介绍数据库自身设计,产出文档可供任意客户与人群阅读
|
||||
- **交付格式**:最终交付为竖版 A4 PDF(.md 为源,由使用方导出),分页遵循模板「PDF 导出规范」三原则,避免表行切割
|
||||
- 文档全部使用简体中文
|
||||
|
||||
@@ -13,7 +13,7 @@ description: 生成指定子系统的《详细设计说明书》(8 章正式
|
||||
## 输入参数
|
||||
|
||||
- **子系统名**(必须,中文):如 `体重管理系统`
|
||||
- **补充信息**(可选):甲方名称、技术架构说明等,缺省用模板默认值
|
||||
- **补充信息**(可选):技术架构说明等,缺省用模板默认值(不得含甲方名称等客户信息)
|
||||
|
||||
## 模板与素材
|
||||
|
||||
@@ -44,7 +44,7 @@ description: 生成指定子系统的《详细设计说明书》(8 章正式
|
||||
|
||||
按 `detailed-design-template.md` 逐章填充:
|
||||
|
||||
- **封面**:项目名 = `健康CQ升级 —— {子系统名}`,委托方 = CQ能源公司,日期 = 当天
|
||||
- **封面**:系统名称 = `{子系统名}`,日期 = 当天(信息表不写委托方,见模板)
|
||||
- **一、项目背景**:综合 `项目背景.md` 6.1 节 + 各端 PRD 模块概述
|
||||
- **二、建设目标**:分条,参考 docx「建设目标」句式(构建生态/打造引擎/实现追踪/建立评估)
|
||||
- **三、需求说明与功能设计**:
|
||||
@@ -66,6 +66,8 @@ description: 生成指定子系统的《详细设计说明书》(8 章正式
|
||||
|
||||
**架构图生成(业务架构图 + 技术架构图)**:
|
||||
1. 复制 `_templates/docs/architecture-business.html` / `architecture-technical.html`,按子系统内容修改各层盒子的标题与子项
|
||||
- **业务架构图·应用与服务层**:按一级菜单分组为横排竖版板块(`.domain`),板块内挂二级菜单或提炼的核心功能项;管理端功能用 `.d-item`、员工端 APP 功能用 `.d-item--app`(建议 📱 前缀);智能模型类用 `.domain-model` 虚线板块;底部保留双端图例(`.legend`)
|
||||
- 业务架构图层与层之间用横向分隔线(`.divider`)分隔,不使用竖线箭头
|
||||
2. 用浏览器打开 HTML,设置视口宽度 1008px、高度设为内容实际高度(用 JS 获取最后一个盒子底部位置 + body padding)
|
||||
3. 截图保存为 `交付文档/{子系统名}/业务架构图.png`、`技术架构图.png`
|
||||
4. 文档中引用 ``、``
|
||||
@@ -81,12 +83,15 @@ description: 生成指定子系统的《详细设计说明书》(8 章正式
|
||||
|
||||
## 输出物
|
||||
|
||||
- `交付文档/{子系统名}/{子系统名}详细设计说明书.md`
|
||||
- `交付文档/{子系统名}/{子系统名}详细设计说明书.md`(源文件)
|
||||
- `交付文档/{子系统名}/{子系统名}详细设计说明书.pdf`(最终交付物,竖版 A4,由使用方从 .md 转出)
|
||||
|
||||
## 注意事项
|
||||
|
||||
- **截图沿用现有**,不重新截取;无现成截图就不放图
|
||||
- 技术架构/安全/部署/售后等通用章节可跨子系统复用,不必每次从零写
|
||||
- 3.3 核心业务详细设计是本说明书的主体,功能点要与页面清单一一对应,不得遗漏页面
|
||||
- **内容通用**:全文不得出现客户名称与项目名称(客户公司名、甲方名称、委托方等一律不写),只介绍系统自身概况,产出文档可供任意客户与人群阅读
|
||||
- **交付格式**:最终交付为竖版 A4 PDF(.md 为源,由使用方导出),分页遵循模板「PDF 导出规范」三原则,避免图文割裂、表行切割
|
||||
- 文档全部使用简体中文,表格、标题层级严格按模板
|
||||
- 不改动任何现有文件,只新建交付文档
|
||||
|
||||
@@ -13,7 +13,7 @@ description: 生成指定子系统、指定终端的《操作手册》。当用
|
||||
## 输入参数
|
||||
|
||||
- **子系统名**(必须,中文):如 `健康监测系统`
|
||||
- **终端名**(必须,中文):如 `Web管理端` / `员工端APP` / `医疗点PAD`
|
||||
- **终端名**(必须,中文):如 `Web管理端` / `员工端APP` / `医疗点PAD`/ `健康应急APP`
|
||||
- **适用对象**(可选):用户角色,缺省按终端推断
|
||||
|
||||
## 核心原则:截图必须用实际系统截图
|
||||
@@ -32,7 +32,7 @@ description: 生成指定子系统、指定终端的《操作手册》。当用
|
||||
- 模板:`_templates/docs/operation-manual-template.md`
|
||||
- 公共章节素材:`_templates/docs/common-sections-template.md`
|
||||
- **文字素材**:该终端 `doc/PRD.md` 的「逐页说明」(功能说明 + 交互说明 + 业务规则),用于提炼操作步骤与注意事项
|
||||
- **截图素材**:由截图 skill(`web-capture` / `android-capture`)生成的实际系统截图,存放在 `交付文档/{子系统名}/操作手册/screenshots/`
|
||||
- **截图素材**:由截图 skill(`web-capture` / `android-capture`)生成的实际系统截图,按终端分目录存放 `交付文档/{子系统名}/操作手册/screenshots/{终端目录}/`
|
||||
|
||||
## 执行流程
|
||||
|
||||
@@ -40,8 +40,10 @@ description: 生成指定子系统、指定终端的《操作手册》。当用
|
||||
|
||||
1. **Web 管理端**:调用 `web-capture` skill,登录测试环境 → 导航到目标模块 → 逐页面截图
|
||||
2. **员工端 APP**:调用 `android-capture` skill,真机 adb 逐页面截图
|
||||
3. 截图存放 `交付文档/{子系统名}/操作手册/screenshots/`,命名用中文页面名
|
||||
4. 若截图 skill 尚未就绪或模块未上线,**暂停并告知用户**,不退回用原型图
|
||||
3. **截图范围**:只截「主界面」和「重要表单/详情页」,弹窗、筛选下拉等轻量交互不单独截图(在功能描述中用文字/表格说明)
|
||||
4. **分目录存放**:截图按终端分目录,`交付文档/{子系统名}/操作手册/screenshots/{终端目录}/`,终端目录用英文(`employee-app` / `web-admin` / `medical-pad` 等),命名用中文页面名
|
||||
5. **截图规格**:输出 JPEG(质量 85%,清晰度优先,不设文件大小上限),APP 端宽度 390px、Web 端视口 1440×900;截图前确保浏览器全屏或设置正确视口,避免截图不完整、比例失调(参考 `项目背景.md` 7.4 节 PRD 截图规范)
|
||||
6. 若截图 skill 尚未就绪或模块未上线,**暂停并告知用户**,不退回用原型图
|
||||
|
||||
### Step 1:定位模块文字素材
|
||||
|
||||
@@ -56,7 +58,7 @@ description: 生成指定子系统、指定终端的《操作手册》。当用
|
||||
- 员工端 APP:390×844(iPhone 14)
|
||||
- 医疗点 PAD:1280×800 横屏
|
||||
- 微信小程序:375×812
|
||||
- 适用对象按终端推断(平台管理员/能源员工/医疗点医护人员等)
|
||||
- 适用对象按终端推断(平台管理员/企业员工/医疗点医护人员等)
|
||||
|
||||
### Step 3:按业务线路组织操作手册(核心)
|
||||
|
||||
@@ -69,7 +71,7 @@ description: 生成指定子系统、指定终端的《操作手册》。当用
|
||||
**选择性覆盖原则**(与 PRD 前后呼应,但绝不完全一样):
|
||||
|
||||
- 只覆盖**核心操作**(高频、关键业务操作),不罗列所有小交互
|
||||
- 只收录**主要弹窗**和**核心二级页面**(详情页等),不列所有弹窗
|
||||
- **截图只截主界面 + 重要表单/详情页**:操作手册的截图仅覆盖「主界面」和「重要表单/详情页」;弹窗、筛选条件下拉、选项列表等轻量交互**不单独截图**,在「功能说明」或「注意事项」中用文字/表格说明即可
|
||||
- **页面状态选择性说明**:只说明用户常见的关键状态,不穷举所有状态(如只讲"进行中"和"已结束",不讲所有中间态)
|
||||
|
||||
按 `operation-manual-template.md` 生成:
|
||||
@@ -89,8 +91,8 @@ description: 生成指定子系统、指定终端的《操作手册》。当用
|
||||
|
||||
### Step 5:截图引用
|
||||
|
||||
- 引用 `交付文档/{子系统名}/操作手册/screenshots/` 下的实际系统截图
|
||||
- 路径相对操作手册文件:`screenshots/{页面名}.png`
|
||||
- 引用 `交付文档/{子系统名}/操作手册/screenshots/{终端目录}/` 下的实际系统截图
|
||||
- 路径相对操作手册文件:`screenshots/{终端目录}/{页面名}.jpg`
|
||||
- 若某页面截图缺失,标注「待补」,不退回用原型图
|
||||
|
||||
### Step 6:写入输出文件
|
||||
@@ -99,13 +101,19 @@ description: 生成指定子系统、指定终端的《操作手册》。当用
|
||||
|
||||
## 输出物
|
||||
|
||||
- `交付文档/{子系统名}/操作手册/{子系统名}{终端名}操作手册.md`
|
||||
- `交付文档/{子系统名}/操作手册/screenshots/*.png`(实际系统截图)
|
||||
- `交付文档/{子系统名}/操作手册/{子系统名}{终端名}操作手册.md`(源文件)
|
||||
- `交付文档/{子系统名}/操作手册/{子系统名}{终端名}操作手册.pdf`(最终交付物,竖版 A4,由使用方从 .md 转出)
|
||||
- `交付文档/{子系统名}/操作手册/screenshots/{终端目录}/*.jpg`(实际系统截图,JPEG 390px)
|
||||
|
||||
## 注意事项
|
||||
|
||||
- **截图必须实际系统截图**,严禁原型图;模块未上线或截图 skill 未就绪时,暂停并告知用户
|
||||
- **截图只截主界面 + 重要表单/详情页**:弹窗、筛选下拉等轻量交互不单独截图,在功能描述中用文字/表格说明
|
||||
- **截图规格**:JPEG 质量 85%(清晰度优先,不设文件大小上限),APP 端宽度 390px、Web 端视口 1440×900(截图前确保浏览器全屏,参考 `项目背景.md` 7.4 节)
|
||||
- **截图按终端分目录**:`screenshots/{终端目录}/`,终端目录用英文,避免多终端截图混在同一目录
|
||||
- **与 PRD 前后呼应**:手册章节对应 PRD 功能模块,但只覆盖核心操作、主要弹窗、核心二级页面,不逐页罗列所有弹窗/小交互/页面状态
|
||||
- 操作手册面向**终端用户**,语言通俗、步骤化,避免实现细节(字段名、接口名)
|
||||
- 每个子系统的每个终端单独一份手册,公共操作(登录/消息等)在各手册中重复体现(甲方要求)
|
||||
- **内容通用**:全文不得出现客户名称与项目名称,只介绍系统自身操作,产出文档可供任意客户与人群阅读
|
||||
- **交付格式**:最终交付为竖版 A4 PDF(.md 为源,由使用方导出),分页遵循模板「PDF 导出规范」三原则,避免图文割裂、表行切割
|
||||
- 文档全部使用简体中文
|
||||
|
||||
@@ -39,14 +39,17 @@ description: 将同一子系统的多个终端 PRD 合并成一份《产品需
|
||||
|
||||
### Step 3:按模板合成新文档
|
||||
|
||||
按 `prd-merge-template.md` 合成:
|
||||
按 `prd-merge-template.md` 合成。**交付定位:单独交付、不与原型代码一起交付,正文与标题中不得出现页面文件路径与页面文件名(`.html` 文件名、目录路径一律清理)**:
|
||||
|
||||
- **标题**:`{子系统名}产品需求文档`
|
||||
- **合并说明**:顶部标注各终端 PRD 来源路径(原始文件未改动)
|
||||
- **1. 子系统概述**:整合各终端「模块概述」为统一一段 + 按端分组的统一导航结构树 + 状态流转图(如有)
|
||||
- **2. 页面清单**:按端分组沿用原表格;**公共页面(登录/消息等)归入「公共部分」小节,不重复罗列**
|
||||
- **3. 逐页说明**:按端分组沿用原文,截图路径改为「从本文档位置指回原模块 doc/screenshots/ 的相对路径」
|
||||
- **4. 表单字段表**:按端分组合并
|
||||
- **标题**:`{子系统名}产品需求文档`;**不写**「本文档由…合并生成」来源说明区
|
||||
- **1. 子系统概述**:整合各终端「模块概述」为统一一段 + 按端分组的「系统功能清单」
|
||||
- 「系统功能清单」用 **HTML 表格 + rowspan 合并单元格**,三列:功能模块 / 功能子模块 / 功能点(一级=功能模块,二级=功能子模块,叶子=功能点;无二级的模块列2留空)
|
||||
- 取代原「页面导航结构」树与「页面清单」章节,不再单列页面清单
|
||||
- **2. 逐页说明**:按端分组沿用原文,但:
|
||||
- 每页标题仅保留功能名,**去掉「(文件名.html)」**
|
||||
- 正文中「跳转到 XX(filename.html)」等引用,**去掉括号内文件名**
|
||||
- 截图路径改为「从本文档位置指回原模块 doc/screenshots/ 的相对路径」,截图本身保留
|
||||
- **3. 表单字段表**:仅当各终端原 PRD 存在独立「表单字段表」段时才合并,否则省略
|
||||
|
||||
### Step 4:重算截图相对路径
|
||||
|
||||
@@ -62,12 +65,17 @@ description: 将同一子系统的多个终端 PRD 合并成一份《产品需
|
||||
|
||||
## 输出物
|
||||
|
||||
- `交付文档/{子系统名}/{子系统名}产品需求文档.md`(合并版,新文件)
|
||||
- `交付文档/{子系统名}/{子系统名}产品需求文档.md`(合并版源文件,新文件)
|
||||
- `交付文档/{子系统名}/{子系统名}产品需求文档.pdf`(最终交付物,竖版 A4,由使用方从 .md 转出)
|
||||
|
||||
## 注意事项
|
||||
|
||||
- **绝对不改动现有各终端 PRD 文件**,只新建合并文档
|
||||
- **截图沿用现有**:用相对路径指回原位置,不复制图片、不重新截图
|
||||
- 同一子系统各终端 PRD 若存在同名的公共页面,只保留一处(归「公共部分」),避免重复
|
||||
- 页面清单、逐页说明、表单字段表均按「端」分组,保持各端内容完整可追溯
|
||||
- **交付文档单独交付,不与原型一起交付**:正文与标题中**不得出现页面文件路径与页面文件名**(`.html` 文件名、目录路径一律清理);截图是必需交付内容,其引用路径保留相对路径指回原 `doc/screenshots/`
|
||||
- **不写**「本文档由以下终端 PRD 合并生成」来源说明区
|
||||
- **系统功能清单**替代「页面导航结构」树与「页面清单」章节,用 HTML 表格 + rowspan 合并单元格(三列:功能模块 / 功能子模块 / 功能点)
|
||||
- 逐页说明、表单字段表均按「端」分组,保持各端内容完整可追溯
|
||||
- **内容通用**:全文不得出现客户名称与项目名称,只介绍产品需求本身,产出文档可供任意客户与人群阅读
|
||||
- **交付格式**:最终交付为竖版 A4 PDF(.md 为源,由使用方导出),分页遵循模板「PDF 导出规范」三原则;「系统功能清单」rowspan 合并表尤需保证合并单元整体不跨页切割
|
||||
- 文档全部使用简体中文
|
||||
|
||||
@@ -68,13 +68,15 @@ description: 截取 Web 管理端测试环境的实际系统页面截图(用
|
||||
### Step 4:摸清模块菜单结构
|
||||
|
||||
1. `take_snapshot` 获取侧边栏菜单:一级菜单(`menuitem`)+ 二级菜单
|
||||
2. 记录菜单层级,规划截图清单(每个叶子页面截一张)
|
||||
2. 记录菜单层级,规划截图清单——**只截「主界面」+「重要表单/详情页」**,弹窗、筛选下拉、选项列表等轻量交互不单独截图
|
||||
|
||||
### Step 5:逐页面截图
|
||||
|
||||
1. 对每个叶子页面:`router.push` 到对应 URL(或点击侧边栏菜单项)
|
||||
2. `take_screenshot` 保存到 `交付文档/{子系统名}/操作手册/screenshots/{页面名}.png`
|
||||
3. 截图命名用中文页面名(如 `个人监测数据.png`),与操作手册章节对应
|
||||
1. **确保视口正确(避免截图不完整/比例失调)**:截图前先 `resize_page` 将浏览器窗口设置为 1440×900(或更大以匹配完整页面),确保窗口已全屏、无横向滚动条遗漏;页面加载后再截图
|
||||
2. 对每个目标页面:`router.push` 到对应 URL(或点击侧边栏菜单项),等待页面加载完成(`readyState === 'complete'`)
|
||||
3. `take_screenshot` 用 `format: "jpeg"` + `quality: 85`,保存为 `.jpg`(不是 `.png`)
|
||||
4. **分终端目录存放**:`交付文档/{子系统名}/操作手册/screenshots/web-admin/{页面名}.jpg`,截图命名用中文页面名(如 `个人监测数据.jpg`)
|
||||
5. **压缩比例**:JPEG 质量 85%(参考 `项目背景.md` 7.4 节 PRD 截图规范),清晰度优先,不设文件大小上限
|
||||
|
||||
### Step 6:交给操作手册 skill
|
||||
|
||||
@@ -82,11 +84,14 @@ description: 截取 Web 管理端测试环境的实际系统页面截图(用
|
||||
|
||||
## 输出物
|
||||
|
||||
- `交付文档/{子系统名}/操作手册/screenshots/*.png`(实际系统截图)
|
||||
- `交付文档/{子系统名}/操作手册/screenshots/web-admin/*.jpg`(实际系统截图,JPEG 质量 85%)
|
||||
|
||||
## 注意事项
|
||||
|
||||
- **验证码是每次登录的障碍**:优先建议让开发在测试环境关闭验证码;未关闭则每次登录请用户人工报验证码
|
||||
- **模块可能未上线**:首页模块卡片标「开发中,敬请期待」的模块不可截图,先和用户确认目标模块是否可用
|
||||
- **截图以实际系统为准**:操作手册严禁用原型图,必须是测试环境真实页面
|
||||
- **截图前确保浏览器全屏/正确视口**:窗口未全屏会导致截图不完整、比例失调,截图前先 `resize_page` 设置 1440×900 视口
|
||||
- **截图只截主界面 + 重要表单/详情页**:弹窗、筛选下拉等轻量交互不单独截图,在功能描述中用文字/表格说明
|
||||
- **截图规格**:JPEG 质量 85%(清晰度优先,不设文件大小上限),分终端目录 `web-admin/` 存放
|
||||
- 截图文件名用中文页面名,与操作手册章节一一对应
|
||||
|
||||
+2
-1
@@ -12,4 +12,5 @@ _*.png
|
||||
_*.jpg
|
||||
_*.jpeg
|
||||
_*.gif
|
||||
_*.webp
|
||||
_*.webp
|
||||
/交付文档/
|
||||
|
||||
@@ -2,6 +2,18 @@
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<!--
|
||||
业务架构图模板(doc-detailed-design skill 使用)
|
||||
说明:
|
||||
- 四层自上而下:用户交互层 / 应用与服务层 / 数据整合层 / 数据服务层,层间用横向分隔线(.divider)分隔
|
||||
- 应用与服务层:按「一级菜单」分组为横排竖版板块(.domain),板块内功能项竖版排列
|
||||
· .d-item = Web 管理端功能(蓝底标签)
|
||||
· .d-item--app = 员工端 APP 功能(绿底标签,建议 📱 前缀)
|
||||
· .domain-model = 智能模型类板块(虚线特殊样式)
|
||||
· .legend = 底部双端图例
|
||||
- 板块数量按子系统一级菜单数调整;菜单过多时可精简功能项或分两行
|
||||
- 标题/副标题/各层内容由 skill 按子系统替换
|
||||
-->
|
||||
<style>
|
||||
*{margin:0;padding:0;box-sizing:border-box;}
|
||||
body{font-family:"Microsoft YaHei","PingFang SC",sans-serif;background:#fff;padding:28px 24px;width:960px;}
|
||||
@@ -11,7 +23,6 @@
|
||||
.subtitle{font-size:12px;color:#7b8ba0;margin-top:6px;letter-spacing:2px;}
|
||||
|
||||
.layer{display:flex;border-radius:14px;overflow:hidden;box-shadow:0 4px 16px rgba(24,80,140,.08);margin-bottom:0;}
|
||||
.layer + .arrow{margin:0 auto;}
|
||||
.side{width:34px;display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;writing-mode:vertical-rl;letter-spacing:4px;}
|
||||
.body{flex:1;padding:16px 20px;}
|
||||
.lname{font-size:14px;font-weight:800;display:flex;align-items:center;gap:8px;margin-bottom:12px;}
|
||||
@@ -19,18 +30,35 @@
|
||||
.items{display:flex;flex-wrap:wrap;gap:8px;}
|
||||
.item{font-size:12px;padding:7px 13px;border-radius:8px;background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:0 2px 6px rgba(0,0,0,.04);color:#3a4c66;}
|
||||
|
||||
/* 层间横向分隔线 */
|
||||
.divider{display:flex;align-items:center;height:22px;padding:0 4px;}
|
||||
.divider-line{flex:1;height:1px;background:linear-gradient(90deg,transparent,#bcd2ec 18%,#bcd2ec 82%,transparent);}
|
||||
|
||||
/* 用户交互层 */
|
||||
.l1{background:linear-gradient(135deg,#e8f4ff,#d8ecff);}
|
||||
.l1 .side{background:linear-gradient(180deg,#4da3ff,#1d7be0);}
|
||||
.l1 .lname{color:#0a5cb8;}
|
||||
.l1 .item{border-color:#c3e2ff;}
|
||||
|
||||
/* 应用与服务层 */
|
||||
/* 应用与服务层(竖版板块横排一行) */
|
||||
.l2{background:linear-gradient(135deg,#eef3ff,#e4ecff);}
|
||||
.l2 .side{background:linear-gradient(180deg,#7a9bff,#4a6fe0);}
|
||||
.l2 .lname{color:#3d57c9;}
|
||||
.l2 .item{border-color:#d4dfff;}
|
||||
.model{background:linear-gradient(135deg,#e6f7ff,#d9f0ff);border:1px dashed #69c0ff;color:#0a5cb8;font-weight:700;}
|
||||
.domains{display:flex;gap:8px;align-items:stretch;}
|
||||
.domain{flex:1;min-width:0;background:#fff;border:1px solid #d4dfff;border-radius:10px;padding:10px 6px;box-shadow:0 2px 6px rgba(0,0,0,.04);display:flex;flex-direction:column;}
|
||||
.domain-head{font-size:12px;font-weight:800;color:#3d57c9;margin-bottom:8px;text-align:center;display:flex;align-items:center;justify-content:center;gap:4px;line-height:1.2;}
|
||||
.domain-head::before{content:'';width:4px;height:13px;background:linear-gradient(180deg,#7a9bff,#4a6fe0);border-radius:2px;flex-shrink:0;}
|
||||
.domain-items{display:flex;flex-direction:column;gap:5px;}
|
||||
.d-item{font-size:10.5px;padding:5px 4px;border-radius:6px;background:#f3f6ff;border:1px solid #d4dfff;color:#3a4c66;text-align:center;white-space:nowrap;line-height:1.3;}
|
||||
.d-item--app{background:#e9f9f0;border:1px solid #b7ebc8;color:#1d7a45;}
|
||||
.domain-model{background:linear-gradient(135deg,#e6f7ff,#d9f0ff);border:1px dashed #69c0ff;}
|
||||
.domain-model .domain-head{color:#0a5cb8;}
|
||||
.domain-model .domain-head::before{background:linear-gradient(180deg,#69c0ff,#1890ff);}
|
||||
.domain-model .d-item{background:#fff;border-color:#91d5ff;color:#0a5cb8;font-weight:600;}
|
||||
.legend{display:flex;gap:14px;margin-top:10px;font-size:10.5px;color:#7b8ba0;align-items:center;}
|
||||
.legend .dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px;}
|
||||
.legend .dot--mgmt{background:#f3f6ff;border:1px solid #d4dfff;}
|
||||
.legend .dot--app{background:#e9f9f0;border:1px solid #b7ebc8;}
|
||||
|
||||
/* 数据整合层 */
|
||||
.l3{background:linear-gradient(135deg,#e9fbf8,#ddf6f1);}
|
||||
@@ -43,54 +71,107 @@
|
||||
.l4 .side{background:linear-gradient(180deg,#6b8cff,#3f5bd8);}
|
||||
.l4 .lname{color:#2f4abf;}
|
||||
.l4 .item{background:#f3f6ff;border-color:#d3dcf7;}
|
||||
|
||||
.arrow{display:flex;justify-content:center;align-items:center;height:30px;}
|
||||
.arrow-line{width:2px;height:100%;background:linear-gradient(180deg,#4da3ff,#2ba8a0);}
|
||||
.arrow-dot{width:10px;height:10px;border-left:2px solid #4da3ff;border-bottom:2px solid #4da3ff;transform:rotate(-45deg);margin-top:-2px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="wrap">
|
||||
<div class="head">
|
||||
<div class="title">体重管理系统业务架构图</div>
|
||||
<div class="subtitle">数据驱动 · 智能指导 · 闭环管理</div>
|
||||
<div class="title">{子系统名}业务架构图</div>
|
||||
<div class="subtitle">{核心理念副标题,如:数据驱动 · 智能监测 · 闭环管理}</div>
|
||||
</div>
|
||||
|
||||
<!-- 用户交互层 -->
|
||||
<!-- 用户交互层:按端替换(员工端 + 管理端) -->
|
||||
<div class="layer l1">
|
||||
<div class="side">用户交互层</div>
|
||||
<div class="body">
|
||||
<div class="lname">用户交互层(应用层)<span class="ltag">价值呈现端</span></div>
|
||||
<div class="items">
|
||||
<div class="item">👤 油田员工 · 健康长庆 APP / 小程序</div>
|
||||
<div class="item">🖥️ 管理专员 · 管理后台</div>
|
||||
<div class="item">👤 企业员工 · 员工端 APP</div>
|
||||
<div class="item">🖥️ 管理专员 · 管理后台(Web 管理端)</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="arrow"><div class="arrow-line"></div></div>
|
||||
<div class="divider"><div class="divider-line"></div></div>
|
||||
|
||||
<!-- 应用与服务层 -->
|
||||
<!-- 应用与服务层:按一级菜单分组为横排竖版板块;d-item=管理端,d-item--app=员工端 -->
|
||||
<div class="layer l2">
|
||||
<div class="side">应用与服务层</div>
|
||||
<div class="body">
|
||||
<div class="lname">应用与服务层<span class="ltag">业务中枢</span></div>
|
||||
<div class="items">
|
||||
<div class="item">活动管理</div>
|
||||
<div class="item">报名管理</div>
|
||||
<div class="item">每日打卡</div>
|
||||
<div class="item">吃动平衡</div>
|
||||
<div class="item">数据分析</div>
|
||||
<div class="item">自我管理</div>
|
||||
<div class="item">员工档案</div>
|
||||
<div class="item">数据接入</div>
|
||||
<div class="item model">🧠 营养膳食模型</div>
|
||||
<div class="item model">🏃 运动处方模型</div>
|
||||
<div class="domains">
|
||||
<div class="domain">
|
||||
<div class="domain-head">健康档案</div>
|
||||
<div class="domain-items">
|
||||
<span class="d-item">个人监测数据</span>
|
||||
<span class="d-item">单位报表数据</span>
|
||||
<span class="d-item">算法模型</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="domain">
|
||||
<div class="domain-head">健康现状</div>
|
||||
<div class="domain-items">
|
||||
<span class="d-item">员工评估信息</span>
|
||||
<span class="d-item">单位评估统计</span>
|
||||
<span class="d-item d-item--app">📱 现状仪表盘</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="domain">
|
||||
<div class="domain-head">健康排查</div>
|
||||
<div class="domain-items">
|
||||
<span class="d-item">问卷管理</span>
|
||||
<span class="d-item">活动管理</span>
|
||||
<span class="d-item d-item--app">📱 活动参与</span>
|
||||
<span class="d-item d-item--app">📱 问卷填写</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="domain">
|
||||
<div class="domain-head">穿戴监测</div>
|
||||
<div class="domain-items">
|
||||
<span class="d-item">设备管理</span>
|
||||
<span class="d-item">用户数据</span>
|
||||
<span class="d-item">告警记录</span>
|
||||
<span class="d-item">数据统计</span>
|
||||
<span class="d-item">运维中心</span>
|
||||
<span class="d-item d-item--app">📱 指标详情</span>
|
||||
<span class="d-item d-item--app">📱 预警历史</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="domain">
|
||||
<div class="domain-head">健康环境</div>
|
||||
<div class="domain-items">
|
||||
<span class="d-item">设备管理</span>
|
||||
<span class="d-item">数据监测</span>
|
||||
<span class="d-item">异常报警</span>
|
||||
<span class="d-item">数据分析</span>
|
||||
<span class="d-item d-item--app">📱 地图查看</span>
|
||||
<span class="d-item d-item--app">📱 设备详情</span>
|
||||
<span class="d-item d-item--app">📱 报警数据</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="domain">
|
||||
<div class="domain-head">异常事件</div>
|
||||
<div class="domain-items">
|
||||
<span class="d-item">系统脏数据</span>
|
||||
<span class="d-item">结果异常</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="domain domain-model">
|
||||
<div class="domain-head">智能模型</div>
|
||||
<div class="domain-items">
|
||||
<span class="d-item">🧠 健康评估模型</span>
|
||||
<span class="d-item">🚨 告警预警模型</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="legend">
|
||||
<span><span class="dot dot--mgmt"></span>Web 管理端功能</span>
|
||||
<span><span class="dot dot--app"></span>员工端 APP 功能</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="arrow"><div class="arrow-line"></div></div>
|
||||
<div class="divider"><div class="divider-line"></div></div>
|
||||
|
||||
<!-- 数据整合层 -->
|
||||
<!-- 数据整合层:通用,一般无需替换 -->
|
||||
<div class="layer l3">
|
||||
<div class="side">数据整合层</div>
|
||||
<div class="body">
|
||||
@@ -103,18 +184,19 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="arrow"><div class="arrow-line"></div></div>
|
||||
<div class="divider"><div class="divider-line"></div></div>
|
||||
|
||||
<!-- 数据服务层 -->
|
||||
<!-- 数据服务层:按子系统对接的硬件/设备替换 -->
|
||||
<div class="layer l4">
|
||||
<div class="side">数据服务层</div>
|
||||
<div class="body">
|
||||
<div class="lname">数据服务层<span class="ltag">数据感知网络</span></div>
|
||||
<div class="items">
|
||||
<div class="item">🍚 食堂智能餐线</div>
|
||||
<div class="item">⚖️ 智能体脂秤</div>
|
||||
<div class="item">⌚ 智能穿戴设备</div>
|
||||
<div class="item">🏋️ 运动器械</div>
|
||||
<div class="item">⌚ 智能穿戴设备(手表)</div>
|
||||
<div class="item">🌡️ 室内空气监测设备</div>
|
||||
<div class="item">🌤️ 室外空气监测设备</div>
|
||||
<div class="item">💧 水质监测设备</div>
|
||||
<div class="item">🌸 花粉监测设备</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -9,7 +9,9 @@
|
||||
用途:doc-brochure skill 的生成骨架
|
||||
说明:{占位符} 由 skill 填充;横版 A4(297×210mm)分页,便于打印/转 PDF
|
||||
转 PDF:@page 已设 A4 landscape,浏览器打印(Ctrl+P)或 headless 截图即可
|
||||
约束:宣传册必须通用,不得体现客户信息(如"油田"、客户公司名等)
|
||||
约束:宣传册必须通用,不得出现客户名称与项目名称(客户公司名、甲方名称、委托方、油田等一律不写)
|
||||
分页:每 .page 一页(297×210mm 横版 A4),内容需在该页内铺满且不溢出(overflow:hidden 兜底),
|
||||
避免同一版块的文字与截图被切到下一页
|
||||
-->
|
||||
<style>
|
||||
:root{
|
||||
|
||||
@@ -2,6 +2,19 @@
|
||||
数据库设计说明书模板
|
||||
用途:doc-database-design skill 的生成骨架,表结构格式沿用「doc/体重管理项目系统设计说明.docx」5.3 节
|
||||
填写约定:{占位符} 由 skill 依据研发提供的 SQL 文件解析填充
|
||||
|
||||
通用约束:全文不得出现客户名称与项目名称,只介绍数据库自身设计,产出文档可供任意客户与人群阅读。
|
||||
|
||||
PDF 导出规范(竖版 A4):
|
||||
- 版式:竖版 A4(210×297mm),最终交付为 PDF;本 .md 为源,导出时按下方分页原则处理
|
||||
- 分页三原则:① 标题不孤行(标题与其后内容同页)② 图文不割裂 ③ 表行不切割
|
||||
(字段表单行、数据字典表单行不被水平切成两页)
|
||||
- 可选 CSS(浏览器 / Puppeteer 系导出工具):
|
||||
@page { size: A4 portrait; margin: 18mm 16mm; }
|
||||
h1,h2,h3,h4 { page-break-after: avoid; }
|
||||
img, pre, blockquote { page-break-inside: avoid; }
|
||||
tr { page-break-inside: avoid; }
|
||||
- 无法避免的跨页(超大字段表等)由使用方在导出时自行处理
|
||||
-->
|
||||
|
||||
# {子系统名}数据库设计说明书
|
||||
|
||||
@@ -4,6 +4,20 @@
|
||||
填写约定:{占位符} 由 skill 依据「子系统页面清单 + 项目背景.md + 各终端 PRD.md」自动填充
|
||||
架构图:业务架构图/技术架构图用 H5 布局生成后截图,以 PNG 引用(见 doc-detailed-design skill)
|
||||
HTML 注释(<!-- -->)仅作填写指引,转 PDF 时不会显示
|
||||
|
||||
通用约束:全文不得出现客户名称与项目名称(客户公司名、甲方名称、委托方等一律不写),
|
||||
只介绍系统自身概况,产出文档可供任意客户与人群阅读。
|
||||
|
||||
PDF 导出规范(竖版 A4):
|
||||
- 版式:竖版 A4(210×297mm),最终交付为 PDF;本 .md 为源,导出时按下方分页原则处理
|
||||
- 分页三原则:① 标题不孤行(标题与其后内容同页)② 图文不割裂(图片与其说明/标题同页)
|
||||
③ 表行不切割(表格单行不被水平切成两页)
|
||||
- 可选 CSS(浏览器 / Puppeteer 系导出工具):
|
||||
@page { size: A4 portrait; margin: 18mm 16mm; }
|
||||
h1,h2,h3,h4 { page-break-after: avoid; }
|
||||
img, pre, blockquote { page-break-inside: avoid; }
|
||||
tr { page-break-inside: avoid; }
|
||||
- 无法避免的跨页(超大表格 / 超长截图)由使用方在导出时自行处理
|
||||
-->
|
||||
|
||||
# {子系统名}详细设计说明书
|
||||
@@ -12,8 +26,7 @@
|
||||
|
||||
| 项 | 内容 |
|
||||
|----|------|
|
||||
| 项目名称 | 健康CQ升级 —— {子系统名} |
|
||||
| 委托方 | CQ能源公司 |
|
||||
| 系统名称 | {子系统名} |
|
||||
| 文档类型 | 系统详细设计说明书 |
|
||||
| 版本号 | V1.0 |
|
||||
| 编制日期 | {YYYY-MM-DD} |
|
||||
@@ -26,7 +39,7 @@
|
||||
|
||||
## 一、项目背景
|
||||
|
||||
{一段话:先交代健康CQ升级平台整体背景,再落到本子系统定位}
|
||||
{一段话:先交代企业健康管理平台整体背景,再落到本子系统定位}
|
||||
- 素材来源:`项目背景.md` 6.1 节 + 本子系统各终端 PRD 的「模块概述」段
|
||||
|
||||
## 二、建设目标
|
||||
|
||||
@@ -2,6 +2,25 @@
|
||||
操作手册模板
|
||||
用途:doc-operation-manual skill 的生成骨架
|
||||
粒度:按「子系统 + 终端」分册,每个终端单独一份操作手册
|
||||
|
||||
截图规范(必须遵守):
|
||||
- 范围:只截「主界面」+「重要表单/详情页」;弹窗、筛选下拉等轻量交互不单独截图,在功能描述/注意事项中用文字或表格说明
|
||||
- 规格:JPEG 质量 85%(清晰度优先,不设文件大小上限),APP 端宽度 390px、Web 端视口 1440×900(截图前确保浏览器全屏,避免截图不完整/比例失调,参考 项目背景.md 7.4 节 PRD 截图规范)
|
||||
- 目录:按终端分目录 screenshots/{终端目录}/(employee-app / web-admin / medical-pad 等),截图命名用中文页面名
|
||||
- 引用:相对路径 screenshots/{终端目录}/{页面名}.jpg
|
||||
|
||||
通用约束:全文不得出现客户名称与项目名称,只介绍系统自身操作,产出文档可供任意客户与人群阅读。
|
||||
|
||||
PDF 导出规范(竖版 A4):
|
||||
- 版式:竖版 A4(210×297mm),最终交付为 PDF;本 .md 为源,导出时按下方分页原则处理
|
||||
- 分页三原则:① 标题不孤行(标题与其后内容同页)② 图文不割裂(操作步骤/截图/注意事项作为一个版块,
|
||||
图片与其标题不跨页)③ 表行不切割(常见问题表格单行不被水平切成两页)
|
||||
- 可选 CSS(浏览器 / Puppeteer 系导出工具):
|
||||
@page { size: A4 portrait; margin: 18mm 16mm; }
|
||||
h1,h2,h3,h4 { page-break-after: avoid; }
|
||||
img, pre, blockquote { page-break-inside: avoid; }
|
||||
tr { page-break-inside: avoid; }
|
||||
- 无法避免的跨页(超长截图等)由使用方在导出时自行处理
|
||||
-->
|
||||
|
||||
# {子系统名} · {终端名}操作手册
|
||||
@@ -28,7 +47,7 @@
|
||||
|
||||
### 1.2 适用对象
|
||||
|
||||
{本终端面向的用户角色,如:平台管理员 / 能源员工 / 体检医生 / 医疗点医护人员}
|
||||
{本终端面向的用户角色,如:平台管理员 / 企业员工 / 体检医生 / 医疗点医护人员}
|
||||
|
||||
### 1.3 运行环境
|
||||
|
||||
@@ -68,7 +87,7 @@
|
||||
|
||||
**界面截图**:
|
||||
|
||||

|
||||

|
||||
|
||||
**注意事项**:
|
||||
- {注意点1}
|
||||
|
||||
@@ -2,70 +2,76 @@
|
||||
产品需求文档(合并版)模板
|
||||
用途:doc-prd-merge skill 的生成骨架
|
||||
核心逻辑:同一子系统的多个终端已各自维护 doc/PRD.md,本模板用于「合成一份新文件」,不改动原有 PRD、沿用现有截图
|
||||
交付定位:单独交付(不与原型代码一起交付),文档内不得出现页面文件路径与页面文件名
|
||||
|
||||
通用约束:全文不得出现客户名称与项目名称,只介绍产品需求本身,产出文档可供任意客户与人群阅读。
|
||||
|
||||
PDF 导出规范(竖版 A4):
|
||||
- 版式:竖版 A4(210×297mm),最终交付为 PDF;本 .md 为源,导出时按下方分页原则处理
|
||||
- 分页三原则:① 标题不孤行(标题与其后内容同页)② 图文不割裂(页面标题/截图/功能说明作为一个版块,
|
||||
图片与其标题不跨页)③ 表行不切割(「系统功能清单」HTML 表格含 rowspan 合并单元格,
|
||||
导出时尤需保证合并单元整体不被水平切成两页)
|
||||
- 可选 CSS(浏览器 / Puppeteer 系导出工具):
|
||||
@page { size: A4 portrait; margin: 18mm 16mm; }
|
||||
h1,h2,h3,h4 { page-break-after: avoid; }
|
||||
img, pre, blockquote { page-break-inside: avoid; }
|
||||
tr { page-break-inside: avoid; }
|
||||
- 无法避免的跨页(超大功能清单表 / 超长截图)由使用方在导出时自行处理
|
||||
-->
|
||||
|
||||
# {子系统名}产品需求文档
|
||||
|
||||
<!-- 合并说明:标注来源,便于追溯 -->
|
||||
> 本文档由以下终端 PRD 合并生成(原始文件未改动):
|
||||
> - {终端1}:{原 PRD 相对路径}
|
||||
> - {终端2}:{原 PRD 相对路径}
|
||||
|
||||
---
|
||||
|
||||
## 1. 子系统概述
|
||||
|
||||
{整合各终端「模块概述」,改写成统一的一段,覆盖本子系统所有终端的整体功能}
|
||||
- 素材:各终端 PRD 的「模块概述」段
|
||||
|
||||
### 页面导航结构
|
||||
### 系统功能清单
|
||||
|
||||
{按端分组,呈现统一的导航结构树。每端沿用原 PRD 的导航结构树,加一级「{端名}」前缀}
|
||||
{按端分组,用 HTML 表格 + rowspan 合并单元格呈现功能层级,三列:功能模块 / 功能子模块 / 功能点}
|
||||
{合并规则:列1「功能模块」= 一级菜单,rowspan 合并;列2「功能子模块」= 二级菜单,rowspan 合并;列3「功能点」= 叶子功能,每行一个}
|
||||
{无二级子模块的模块(如健康现状),列2 留空即可}
|
||||
|
||||
```
|
||||
{子系统名}
|
||||
├── {端1(如 Web管理端)}
|
||||
│ ├── {一级菜单1}
|
||||
│ │ ├── {二级菜单/页面}
|
||||
│ │ └── ...
|
||||
│ └── ...
|
||||
├── {端2(如 员工端APP)}
|
||||
│ └── ...
|
||||
└── ...
|
||||
```
|
||||
#### {端1(如 Web管理端)}
|
||||
|
||||
### 状态流转图
|
||||
<table border="1" cellspacing="0" cellpadding="8" style="border-collapse:collapse; font-size:14px;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th style="width:120px;">功能模块</th>
|
||||
<th style="width:220px;">功能子模块</th>
|
||||
<th>功能点</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td rowspan="2">档案</td>
|
||||
<td rowspan="2">个人监测数据</td>
|
||||
<td>个人监测数据列表</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>个人监测详情</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>健康现状</td>
|
||||
<td></td>
|
||||
<td>员工评估信息</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
```mermaid
|
||||
{合并各端状态流转图;若无则本小节省略}
|
||||
```
|
||||
#### {端2}
|
||||
|
||||
## 2. 页面清单
|
||||
{同上}
|
||||
|
||||
{按端分组,每端沿用原 PRD 的页面清单表格;公共页面(登录/消息等)归入「公共部分」小节,不重复罗列}
|
||||
## 2. 逐页说明
|
||||
|
||||
### 公共部分
|
||||
|
||||
| 页面/弹窗 | 文件 | 所属 | 类型 |
|
||||
|-----------|------|------|------|
|
||||
{按端分组,每页标题仅保留功能名(不含文件名),截图路径改为从本文档位置指回原模块 doc/screenshots/ 的相对路径}
|
||||
|
||||
### {端1}
|
||||
|
||||
{沿用原 PRD 页面清单表格}
|
||||
#### {页面功能名}
|
||||
|
||||
### {端2}
|
||||
|
||||
{沿用原 PRD 页面清单表格}
|
||||
|
||||
## 3. 逐页说明
|
||||
|
||||
{按端分组,每端沿用原 PRD 逐页说明;截图路径改为从本文档位置指回原模块 doc/screenshots/ 的相对路径}
|
||||
|
||||
### {端1}
|
||||
|
||||
#### {页面1}
|
||||
|
||||

|
||||

|
||||
|
||||
**功能说明**:{沿用原文}
|
||||
|
||||
@@ -73,24 +79,8 @@
|
||||
|
||||
**交互说明**:{沿用原文}
|
||||
|
||||
#### {页面2}
|
||||
|
||||
{同上}
|
||||
|
||||
### {端2}
|
||||
|
||||
{同上}
|
||||
|
||||
## 4. 表单字段表
|
||||
|
||||
{按端分组,合并各端原 PRD 的表单字段表}
|
||||
|
||||
### {端1}
|
||||
|
||||
| 字段名 | 类型 | 是否必填 | 校验规则 |
|
||||
|--------|------|---------|---------|
|
||||
|
||||
### {端2}
|
||||
|
||||
| 字段名 | 类型 | 是否必填 | 校验规则 |
|
||||
|--------|------|---------|---------|
|
||||
{表单字段表:仅当各终端原 PRD 存在独立「表单字段表」段时才合并生成,否则本部分省略}
|
||||
|
||||
Reference in New Issue
Block a user