# 表单引擎 - 用户场景文档

> **版本**: v1.0  
> **最后更新**: 2026-01-11  
> **编写者**: FFOA 开发团队  
> **状态**: 🚧 Draft（基于现有文档与代码实现推导）

---

## ✅ 机器读取区（必填）

### 场景清单

| 场景 | 角色 | 触发条件 | 目标 | 结果 |
|------|------|----------|------|------|
| 设计表单 | 设计者 | 进入设计器并开始拖拽字段 | 构建表单结构 | 生成 DRAFT 版本 |
| 保存设计 | 设计者 | 点击保存 | 持久化表单结构 | 版本更新成功 |
| 提交审核 | 设计者 | 设计完成并提交审核 | 发起版本审核 | 状态变更为 PENDING_REVIEW |
| 审核通过 | 管理员 | 审核表单版本 | 发布可用版本 | 版本变为 PUBLISHED |
| 审核驳回 | 管理员 | 审核不通过 | 退回修改 | 版本变为 REJECTED |
| 填写表单 | 普通用户 | 访问已发布表单 | 提交数据 | 创建 FormInstance |

---

## 🧭 人类阅读区（可选）

### 用户角色

| 角色 | 描述 | 权限级别 |
|------|------|---------|
| 设计者 | 设计与维护表单结构 | form:design |
| 管理员 | 审核与发布版本 | form:admin |
| 普通用户 | 填写并提交表单 | form:use |

### 场景详情（可选）

- **场景名称**: 设计与保存表单  
  - **前置条件**: 具备表单设计权限  
  - **正常路径**: 进入设计器 → 拖拽字段 → 保存  
  - **异常路径**: 保存失败时提示错误并保留当前设计  

- **场景名称**: 版本审核  
  - **前置条件**: 版本处于 DRAFT/REJECTED  
  - **正常路径**: 提交审核 → 管理员审核通过 → 发布  
  - **异常路径**: 审核驳回 → 设计者修改后重新提交
