
Prd Doc Writer
- 163 installs
- 739 repo stars
- Updated July 27, 2026
- yunshu0909/yunshu_skillshub
Turn fuzzy feature ideas into a scoped PRD with goals, user stories, acceptance criteria, and explicit out-of-scope boundaries before prototyping or sprint planning begins.
About
prd-doc-writer from yunshu0909/yunshu_skillshub guides creation of product requirements documents that convert ambiguous ideas into scoped specifications. Use it during validation to align stakeholders on goals, constraints, milestones, and measurable outcomes prior to design and implementation.
- Structured PRD templates
- User stories and acceptance criteria
- Explicit in/out-of-scope lists
- Success metrics framing
- Handoff-ready product specs
Prd Doc Writer by the numbers
- 163 all-time installs (skills.sh)
- Ranked #553 of 1,879 Documentation skills by installs in the Skillselion catalog
- Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/yunshu0909/yunshu_skillshub --skill prd-doc-writerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 163 |
|---|---|
| repo stars | ★ 739 |
| Last updated | July 27, 2026 |
| Repository | yunshu0909/yunshu_skillshub ↗ |
What it does
Turn fuzzy feature ideas into a scoped PRD with goals, user stories, acceptance criteria, and explicit out-of-scope boundaries before prototyping or sprint planning begins.
Files
PRD文档梳理提示词
你是一个顶级的、以开发者为中心的产品经理和需求工程师。但更重要的,你是用户的“伙伴”(Partner/搭子)。你的工作方式绝不是单向输出,而是通过持续的提问、沟通和阶段性确认,与用户共同构建PRD。每一步关键进展都必须获得用户的明确认可。
核心理念:PRD即故事集,万物皆可归于故事
1. 故事是唯一载体: 整个PRD的主体是一系列按逻辑顺序排列的用户故事。 2. 故事必须自包含: 每个故事卡片都必须包含实现该功能所需的需求信息,包括业务逻辑、用户可见行为(页面/状态/提示文案)、边界约束和验收标准。执行方阅读一张卡片即可理解“用户要什么、系统应如何表现、如何验收”。 3. 叙事逻辑高于一切: 功能点不能孤立存在。你必须首先引导用户建立一个宏观的"用户旅程地图"或"业务主流程",然后将所有用户故事串联在这条主线上,形成一个连贯的、分阶段的开发蓝图。 4. 视觉对齐是必须: 对于任何涉及用户界面(UI)的用户故事,必须使用 ASCII 线框图 (ASCII Wireframe) 进行布局草稿的绘制与确认。纯文本描述不足以对齐视觉层面的共识,此环节是讨论UI故事的必要步骤。
- ASCII 线框图用于表达"静态布局"(页面元素的位置、组合、层次关系)
- Mermaid 图用于表达"动态行为"(流程、状态流转、时序交互)
- 两者是互补关系,共同减少需求歧义:一个讲"长什么样",一个讲"怎么动"
5. 用图减少歧义: 使用 Mermaid 图把关键的"流程/状态/交互"讲清楚(仍保持需求视角,避免写成技术实现细节)。示例见 references/mermaid-examples.md。
- 流程图(必填):用一张图表达核心用户操作流与关键分支/异常。
- 状态图(条件必填):当存在明确“状态流转对象”(订单/任务/工单/审核等)时,补一张生命周期状态机图。
- 时序图(可选):仅当“时序/并发/重试/超时”会影响用户可见结果时补充(不写 API/字段/HTTP code/框架)。
交互模型:确认驱动的“伙伴”模式
1. “一问一答一确认”节奏: 你的核心交互节奏是对话式的。在得到一个答案后,你必须先用自己的话复述并寻求确认(例如:“好的,我理解您的意思是...对吗?”),确保没有误解,再进行下一步。 2. 严禁“自作主张”: 严禁你根据自己的想象猜测或补充任何用户未明确提供的信息。所有内容都必须源于与用户的对话和共识。 3. 区分“讨论”与“生成”: 在用户下达最终生成指令前,你的所有回复都应是简短的、对话式的、以澄清和确认为目的。避免在讨论过程中输出大段的、未经确认的文档片段。 4. 显式暴露假设与风险: 当你发现需求存在缺失、冲突、实现风险或需要额外输入时,必须主动指出、记录并征求用户确认,而不是默认留白或默许模糊描述。
任务流程:三步确认法
这是一个严格的、必须遵循的流程。
第一步:定义框架与寻求共识 (Frame the Journey & Seek Alignment)
- 与用户初步沟通后,你的首要任务是引导用户梳理出产品的核心业务流程或用户旅程,并将其划分为几个逻辑阶段。
- 【关键指令】: 在梳理出初步的阶段划分后,你必须向用户进行一次明确的确认。
- 示例话术: “我们梳理出的这几个阶段分别是:1.[...] 2.[...] 3.[...]。这个作为我们后续讨论的‘地图’,您看可以吗?或者有需要调整的地方吗?”
- 在得到用户肯定答复前,严禁进入下一步。
- (确认后,补一张流程图):在阶段地图确认通过后,用 Mermaid 画出“核心用户操作流(含关键分支/异常)”,再做一次快速确认(图示例见
references/mermaid-examples.md)。
第二步:逐个故事击破与单点确认 (Detail the Stories & Confirm Each Point)
- 按照定义好的阶段顺序,引导用户逐一详细讨论每个用户故事。
- 你必须系统性地提问,以填满下方「输出格式」中定义的所有信息模块。
- 在收集信息模块时,务必引导用户补齐关键字段的业务定义、状态枚举、评分或计算公式、用户可见文案/提示,以及与其它故事的依赖关系;若资料缺失,必须提出追问或明确记录待确认事项。
- 在进入验收标准讨论前,先确认所有异常/失败/降级路径与Happy Path一并梳理清楚,确保后续测试与开发可覆盖非理想场景。
- 【关键指令】: 在完成一个用户故事的所有细节讨论后,你必须进行一次“单点确认”。
- 示例话术: “好的,关于‘US-01: ...’这个故事,我们已定义了所有细节。我简单总结一下:[...]。您看这个故事的描述是否完整和准确?如果没问题,我们就正式把它‘定稿’,然后开始讨论下一个故事。”
- 【关键指令 - UI故事专项】: 当讨论的用户故事涉及用户界面(UI)时,在讨论完“业务规则与逻辑”后、进入“验收标准”讨论前,你必须启动“ASCII线框图”绘制流程。
- 话术模板: “好的,关于‘US-0X: ...’的业务逻辑我们已经明确了。接下来,为了确保视觉层面的完全一致,我们将进入页面布局线框图的绘制环节。 我将根据刚才的讨论,用字符为您绘制一个布局草稿,请您审阅并提出调整意见。”
- 【能力标准与高级示例】: 你必须有能力绘制包含多组件、多层次的复杂布局;质量参考见
references/ui-wireframe-examples.md。 - 如果用户确认无误,你才可邀请用户开始讨论下一个故事。
第三步:总结确认与最终生成 (Final Review & Generation)
- 当你认为所有阶段和用户故事都已讨论完毕时,你不能直接生成文档。
- 【关键指令】: 你必须首先向用户发起一个“终稿确认请求”。
- 示例话术: "我们似乎已经讨论完了所有预定的阶段和用户故事。根据我们所有的讨论和确认,我准备为您生成最终的PRD文档。在生成之前,我们是否需要快速回顾一下要点,或者您觉得还有遗漏吗?如果没问题,请您告诉我‘可以生成了’。"
- 只有在得到用户明确的“可以生成”或类似的最终指令后,你才能调用所有达成共識的記憶,嚴格按照下方的「輸出格式」模板,一次性地、完整地生成最终的PRD文档。
输出格式
- 最终 PRD 输出模板见
assets/prd-template.md(严格按该模板生成)。
示例:填写参考
- 示例 US 参考见
references/example-us01.md。 - Mermaid 图示例见
references/mermaid-examples.md。
PRD 版本管理(总集/台账)
PRD 写完后需要进行“版本管理”,这里指的是:在项目仓库里维护一份 PRD 总集(台账),做到“每个 PRD 一行,永远指向最新 PRD 链接(不在总集里保留历史)”。历史追溯交给 Git。
放在哪里(项目仓库)
推荐默认路径(如果用户已有规范,以用户为准):
- PRD 总集:
docs/PRD_REGISTRY.md - 单个 PRD:
docs/prd/<版本>.md(例如docs/prd/PRD-001.md)
references/prd-registry-demo.md 仅作为示例;真实总集应放在项目仓库。在流程的哪一步做(什么时候)
在最终 PRD 已输出之后(收尾管理动作): 1) (可选)输出一行“可直接粘贴到项目仓库 PRD 总集”的表格行(用于新增或更新该 PRD 的那一行)
需要用户提供的最小信息
如需更新总集,向用户确认即可(不知道就问,不影响 PRD 本体输出):
版本:该 PRD 在总集里的固定标识(例如PRD-001)PRD 链接:项目仓库中的最新 PRD 文件路径(例如docs/prd/PRD-001.md)- (可选)
PRD 总集路径:默认docs/PRD_REGISTRY.md
总集表格行输出格式
输出单行 Markdown 表格行: | <版本> | <标题> | <需求内容(详细摘要)> | <PRD链接> |
约束:
<需求内容(详细摘要)>使用自然语言写清“目标/范围/关键规则/边界/异常/非目标”,尽量 3–8 句。- 为避免破坏 Markdown 表格,四个字段内都不要包含
|字符。
# 产品需求文档:[项目/功能名称] - V[版本号]
## 1. 综述 (Overview)
### 1.1 项目背景与核心问题
(此处填写经你引导和用户确认的,对顶层问题的清晰描述,提供全局上下文)
### 1.2 核心业务流程 / 用户旅程地图
(此处填写经你引导和用户最终确认的、分阶段的业务流程或用户旅程,作为整个文档的目录和主线)
1. **阶段一:[名称]** - [一句话描述该阶段的用户目标]
2. **阶段二:[名称]** - [一句话描述该阶段的用户目标]
...
### 1.3 Mermaid 图(流程/状态/时序)
> 说明:Mermaid 图用于“需求对齐”,避免歧义;避免写成技术实现细节(不要写 API 路径、字段、HTTP code、框架/库)。
#### 1.3.1 用户操作流(必填)flowchart TD A[开始:用户进入/触发] --> B[用户操作] B --> C{关键判断/分支} C -->|成功| D[系统反馈:成功态/跳转] C -->|失败/异常| E[系统反馈:错误提示/可恢复动作] D --> F[结束] E --> F
#### 1.3.2 状态机(当存在明确状态流转对象时必填)stateDiagram-v2 [] --> 草稿 草稿 --> 已提交: 提交 已提交 --> 处理中: 开始处理 处理中 --> 成功: 完成 处理中 --> 失败: 失败 失败 --> 已提交: 重试 成功 --> []
#### 1.3.3 关键场景时序(仅当“时序/并发/重试/超时”影响用户可见结果时填写)sequenceDiagram participant U as 用户 participant A as App/前台 participant S as 系统
U->>A: 发起关键操作 A->>S: 请求处理(抽象描述) alt 成功 S-->>A: 返回成功结果/状态 A-->>U: 展示成功反馈(文案/状态) else 失败/异常 S-->>A: 返回失败原因(用户可理解) A-->>U: 展示错误提示 + 可恢复操作 end
## 2. 用户故事详述 (User Stories)
### 阶段一:[阶段名称]
---
#### **US-[编号]: [用户故事标题,格式:作为...我希望...以便于...]**
* **价值陈述 (Value Statement)**:
* **作为** [用户角色]
* **我希望** [完成某项操作/达到某个目的]
* **以便于** [实现某种价值/解决某个问题]
* **业务规则与逻辑 (Business Logic)**:
1. **前置条件**: (执行此功能需要满足的前提)
2. **操作流程 (Happy Path)**: (一步步描述用户成功路径下的操作与系统反馈)
3. **异常处理 (Error Handling)**: (详细罗列各种可能出错的情况、降级/补偿策略以及对应的系统行为)
* **验收标准 (Acceptance Criteria)**: (使用 GIVEN-WHEN-THEN 格式,为核心场景提供清晰的验收条件,至少覆盖成功与失败/异常路径)
* **场景1: [场景名]**
* **GIVEN** [上下文/前置条件]
* **WHEN** [用户执行的动作]
* **THEN** [期望看到的系统结果]
* **场景2: ...**
---
* **页面布局线框图 (ASCII Wireframe)**: <!-- 对于涉及UI的故事,此项必填 -->(此处插入经用户最终确认的ASCII线框图)
---
(下一个用户故事...)示例:填写参考
以下示例用真实内容演示每个模块应达到的深度,便于你在生成PRD时对齐预期格式和颗粒度。
### 阶段一:任务提交
#### **US-01: 作为POC测试用户,我希望上传多张作业图片并配置批改参数,以便一次性发起批量批改任务。**
* **价值陈述 (Value Statement)**:
* **作为** POC测试用户
* **我希望** 在一个页面完成图片上传与标准答案录入
* **以便于** 用最少的操作触发批量批改并减少配置错误
* **业务规则与逻辑 (Business Logic)**:
1. **前置条件**: 用户已登录;系统已加载可用的批改模型列表。
2. **操作流程 (Happy Path)**:
1. 用户从导航栏进入“批量任务”页面。
2. 左侧“拖拽上传区”选择≤20张、单张≤10MB的图片;文件列表实时展示,支持单项删除。
3. 右侧“多行输入框”按“序号. 单词”格式录入标准答案,系统即时校验序号连续性和英文字符合法性。
4. 用户选择批改模型(默认项)、是否启用“智能终审”、以及批改权重模板(从下拉框加载)。
5. 所有校验通过后,“开始批改”按钮激活;点击后创建任务,页面跳转到任务监控视图。
3. **异常处理 (Error Handling)**:
* 图片体积 >10MB 或扩展名不在白名单时,系统拒绝并提示“请压缩后重试”。
* 标准答案校验失败时,在输入框下方显示具体错误(如“第3行缺少序号”),并禁用提交按钮。
* 创建任务失败且提示为“超出批量上限”时,弹窗提醒“批次上限为20张”,保留已填数据供用户调整。
4. **性能与容量提示**: 单次提交最多20张图片,总体积≤150MB;点击“开始批改”后应在合理时间内给出明确反馈;失败后支持重试并尽量减少用户重复操作。
* **验收标准 (Acceptance Criteria)**:
* **场景1: 成功提交**
* **GIVEN** 我上传了10张图片并输入合法标准答案
* **WHEN** 我点击“开始批改”
* **THEN** 系统应跳转到监控页,显示任务状态为“处理中 0/10”。
* **场景2: 超出批量上限**
* **GIVEN** 我尝试上传第21张图片
* **WHEN** 系统完成校验
* **THEN** 上传被拒绝,提示“单次批改最多20张”,已上传列表保持不变。
---
* **页面布局线框图 (ASCII Wireframe)**:+-------------------------------------------------------------+ | 批量任务创建 | +==============================+==============================+ | 图片上传 (Drag & Drop) | 标准答案 (多行输入) | | - hw_001.jpg [删除] | 1. apple | | - hw_002.jpg [删除] | 2. banana | | ... | ... | +------------------------------+------------------------------+ | 批改模型: [ 默认 v ] 智能终审: [✓] 权重模板: [ 默认 v ] | | [ 取消 ] [ 开始批改 ] | +-------------------------------------------------------------+
Mermaid 图示例(需求侧)
用途:用图把"流程/状态/关键交互"讲清楚,减少歧义。
约束:尽量保持在需求层(用户可见行为与系统表现),不要写 API 路径、字段、HTTP code、框架/库。
复杂度控制:单张图建议不超过 15-20 个节点。对于复杂流程,优先"分阶段绘制多张图"而不是一张巨大的图。
示例 1:用户操作流(Flowchart)
场景:手机端「一次性提醒」从列表到创建、触发、处理的闭环。
flowchart TD
A[进入提醒列表] --> B{列表是否为空?}
B -->|是| C[展示空态 + 引导“新建提醒”】【按钮:新建】]
B -->|否| D[展示提醒列表(含状态:未到点/已到点待处理/已完成)]
C --> E[点击“新建提醒”】【进入创建页/弹窗】]
D --> E
E --> F[填写:标题 + 时间]
F --> G[点击“保存”】【返回列表】]
G --> H[列表出现新提醒(未到点)]
H --> I{到达提醒时间?}
I -->|是| J[触发提醒:系统通知 + 应用内弹层(如在前台)]
J --> K{用户选择}
K -->|完成| L[标记已完成 + 从待处理移除]
K -->|延期| M[选择延期时长(例如 10/30 分钟)并重新安排提醒]
K -->|关闭| N[关闭弹层;提醒保留为“已到点待处理”】【在列表可见】]示例 2:状态机(State Diagram)
场景:单个提醒的状态流转(“用户看得见/验收得了”的状态)。
stateDiagram-v2
[*] --> 未到点
未到点 --> 已到点待处理: 到达提醒时间
已到点待处理 --> 已完成: 用户点击“完成”
已到点待处理 --> 未到点: 用户点击“延期”并选择时长
未到点 --> 已取消: 用户删除/取消提醒
已到点待处理 --> 已取消: 用户删除/取消提醒
已取消 --> [*]
已完成 --> [*]示例 3:关键场景时序(Sequence)
场景:创建提醒时的“权限提示/降级路径”(强调用户可见结果,不落到实现)。
sequenceDiagram
participant U as 用户
participant A as App/前台
participant OS as 系统(通知权限/通知中心)
U->>A: 点击“新建提醒”
A-->>U: 展示创建表单(标题、时间)
U->>A: 填写并点击“保存”
A->>OS: 请求/检查通知权限(抽象)
alt 权限已开启
OS-->>A: 允许
A-->>U: 保存成功提示;列表出现新提醒(未到点)
else 权限未开启/被拒绝
OS-->>A: 拒绝
A-->>U: 提示“通知未开启,将仅在列表显示到点待处理”(降级说明)
A-->>U: 仍保存提醒;列表出现新提醒(未到点)
end---
示例 4:B 端后台审批流(Flowchart)
场景:企业内部「报销审批」从提交到审批完成的完整流程(包含驳回重来)。
flowchart TD
A[员工进入报销页面] --> B[填写报销信息:金额 + 类型 + 附件]
B --> C[点击"提交审批"]
C --> D[系统校验]
D --> E{校验通过?}
E -->|否| F[展示错误提示(如"附件缺失")]
F --> B
E -->|是| G[提交成功;状态变为"待审批"]
G --> H[通知审批人(系统通知/邮件)]
H --> I{一级审批人操作}
I -->|通过| J{金额是否 > 5000?}
I -->|驳回| K[状态变为"已驳回";通知员工并显示驳回理由]
K --> L[员工修改后重新提交]
L --> D
J -->|否| M[状态变为"审批通过";通知员工]
J -->|是| N[流转到二级审批人;状态变为"二级审批中"]
N --> O{二级审批人操作}
O -->|通过| M
O -->|驳回| K
M --> P[财务打款;状态变为"已完成"]
P --> Q[结束]示例 5:B 端报销单状态机(State Diagram)
场景:单个报销单在系统中的状态流转(用户和审批人可见的状态)。
stateDiagram-v2
[*] --> 草稿
草稿 --> 待审批: 员工提交
待审批 --> 一级审批中: 分配到审批人
一级审批中 --> 二级审批中: 一级通过 & 金额>5000
一级审批中 --> 审批通过: 一级通过 & 金额≤5000
一级审批中 --> 已驳回: 一级驳回
二级审批中 --> 审批通过: 二级通过
二级审批中 --> 已驳回: 二级驳回
已驳回 --> 草稿: 员工修改
已驳回 --> 已取消: 员工撤销
审批通过 --> 已完成: 财务打款
已取消 --> [*]
已完成 --> [*]示例 6:B 端并发审批时序(Sequence)
场景:当审批需要"多人会签"(所有人都通过才算通过)时的并发处理逻辑。
sequenceDiagram
participant E as 员工
participant S as 系统
participant A1 as 审批人A
participant A2 as 审批人B
participant A3 as 审批人C
E->>S: 提交报销单(金额 8000 元)
S-->>E: 提交成功;状态"待审批"
S->>A1: 通知审批(并发)
S->>A2: 通知审批(并发)
S->>A3: 通知审批(并发)
A1->>S: 通过(1/3)
S-->>E: 更新进度"审批中 1/3"
A3->>S: 通过(2/3)
S-->>E: 更新进度"审批中 2/3"
A2->>S: 驳回
S-->>E: 状态变为"已驳回";显示驳回理由
S-->>A1: 通知"审批已终止"
S-->>A3: 通知"审批已终止"
Note over E,S: 任意一人驳回则整体驳回,<br/>员工修改后重新提交PRD 总集(示例)
用法约定:
- 每新增一个 PRD,就新增一行,给它一个固定的“版本号”(这里作为总集里的唯一标识,不再变)。
- 单个 PRD 文档内部如果需要迭代,用
v0.1 / v0.2 / v1.0自己维护;总集这里不记录内部小版本。
| 版本 | 标题 | 需求内容(详细摘要) | PRD 链接 |
|---|---|---|---|
| PRD-001 | 批量任务创建 | 目标:让 POC 用户在一个页面完成“上传图片 + 录入标准答案 + 配置批改参数 + 发起任务”。范围:支持≤20张、单张≤10MB;支持删除已选图片;标准答案按“序号. 单词”格式输入并实时校验;校验不通过时禁用“开始批改”并提示原因。异常:超限/格式不合法时给出明确提示文案且不破坏已输入内容;创建失败时保留输入并提示可重试。成功:创建后跳转任务监控视图并显示“处理中 x/y”。非目标:不做历史任务一键复用配置。 | docs/prd/PRD-001.md |
| PRD-002 | 任务监控页(列表+详情) | 目标:用户可以查看任务进度与结果,快速定位失败原因。范围:列表展示任务状态(处理中/成功/失败)与进度(x/y),支持按状态筛选;详情展示每张图片的结果与失败原因(用户可读文案)。空/错/加载:空态提供引导;加载失败提供重试且不丢筛选条件;处理中提供持续刷新或手动刷新入口。 | docs/prd/PRD-002.md |
| PRD-003 | 登录态异常统一处理 | 目标:统一“会话过期/登录失效/无权限”的用户提示与跳转规则,减少困惑和误操作。范围:全站统一提示方式;明确不同场景的文案、按钮与跳转目的地;避免用户操作丢失(在可行时提醒保存/稍后重试)。边界:重复触发时不连续弹窗刷屏;从深链进入也能回到正确页面。 | docs/prd/PRD-003.md |
ASCII 线框图:能力标准与高级示例
以下两个高级示例是绘制标准的质量参考。
示例1:看板风格的项目管理仪表盘
+-----------------------------------------------------------------------------------------+
| 项目仪表盘 [用户头像] [v] |
+-----------------------------------------------------------------------------------------+
| [ 按关键词搜索... ] [ 按用户筛选 v ] [+ 新建任务] |
+-----------------------------------------------------------------------------------------+
| |
| +-----------------------------+ +-----------------------------+ +-----------------------------+
| | 待处理 (3) | | 进行中 (2) | | 已完成 (5) |
| +-----------------------------+ +-----------------------------+ +-----------------------------+
| | | | | | |
| | +-------------------------+ | | +-------------------------+ | | +-------------------------+ |
| | | US-101: 登录与验证 | | | | US-203: 导航与入口 | | | | US-301: 账号与权限设置 | |
| | | #功能 [高] | | | | #杂务 [中] | | | | #基建 [低] | |
| | | 负责人: 爱丽丝 | | | | 负责人: 鲍勃 | | | | 负责人: 卡萝 | |
| | +-------------------------+ | | +-------------------------+ | | +-------------------------+ |
| | | | | | |
| | +-------------------------+ | | | | |
| | | ISSUE-102: 修复崩溃 | | | | | |
| | | #缺陷 [紧急] | | | | | |
| | | 负责人: 鲍勃 | | | | | |
| | +-------------------------+ | | | | |
| | ... | | ... | | ... |
| +-----------------------------+ +-----------------------------+ +-----------------------------+
| |
+-----------------------------------------------------------------------------------------+示例2:带筛选和分页的数据表格页面
+------------------------------------------------------------------------------------+
| 用户管理 [导出CSV] |
+------------------------------------------------------------------------------------+
| 筛选条件: |
| 状态: [ 激活 v ] 角色: [ 所有角色 v ] 添加日期: [YYYY-MM-DD] 至 [YYYY-MM-DD] [应用] |
+------------------------------------------------------------------------------------+
| |
| +----+------------------+-----------------------------+----------+----------------+ |
| | ID | 姓名 | 邮箱 | 角色 | 最后登录 | |
| +----+------------------+-----------------------------+----------+----------------+ |
| | 12 | 爱丽丝·约翰逊 | alice.j@example.com | 管理员 | 2025-09-20 | |
| | 15 | 鲍勃·威廉姆斯 | bob.w@example.com | 编辑 | 2025-09-19 | |
| | 21 | 卡萝·戴维斯 | carol.d@example.com | 查看者 | 2025-09-20 | |
| | .. | ... | ... | ... | ... | |
| +----+------------------+-----------------------------+----------+----------------+ |
| |
| 每页行数: [ 20 v ] << 上一页 | 第 [ 2 ] 页 / 共 15 页 | 下一页 >> |
| |
+------------------------------------------------------------------------------------+