> ## Documentation Index
> Fetch the complete documentation index at: https://test-8ad8522e-feat-ai-sre.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 自定义表单

> 为创建、认领和关闭故障配置按条件展示的补充信息表单

自定义表单让你在处理故障的关键步骤收集一致的信息。你可以分别为 **创建故障**、**认领故障** 和 **关闭故障** 配置一份账户级表单；配置变更会立即应用到相应操作。

表单适合收集值班交接信息、影响范围、处理结论或截图等内容。需要复用业务属性时，先在[自定义字段](/zh/on-call/configuration/custom-fields)中创建字段，再将它加入表单。

## 配置表单

<Steps>
  <Step title="进入自定义表单">
    在控制台进入 **配置中心 → 自定义表单**，选择要配置的操作：**创建故障**、**认领故障** 或 **关闭故障**。
  </Step>

  <Step title="添加表单元素">
    点击 **添加字段**，按需加入以下元素：

    | 元素    | 用途                                        |
    | ----- | ----------------------------------------- |
    | 自定义字段 | 绑定一个已启用的自定义字段，收集结构化业务信息。同一字段在同一表单中只能添加一次。 |
    | 说明    | 提供多行文本输入，用于补充本次认领或关闭的说明。创建故障表单不显示此元素。     |
    | 图片上传  | 允许填写人在提交操作时上传图片。                          |
  </Step>

  <Step title="设置填写规则">
    点击已添加的元素，设置帮助说明、占位提示和必填规则。你可以让元素始终显示、在条件满足时显示，或仅在条件满足时必填。
  </Step>

  <Step title="调整顺序">
    拖拽元素调整显示顺序。顺序变更会自动保存，新的填写规则立即生效。
  </Step>
</Steps>

## 三类表单何时出现

| 表单   | 出现时机         | 提交后的结果                             |
| ---- | ------------ | ---------------------------------- |
| 创建故障 | 用户手动创建故障时    | 自定义字段值会随故障一并保存。                    |
| 认领故障 | 故障从待处理进入处理中时 | 认领状态与填写的自定义字段会一并提交；说明和图片会记录在认领操作中。 |
| 关闭故障 | 故障从未关闭进入已关闭时 | 关闭状态与填写的自定义字段会一并提交。                |

表单的显示和必填条件会在用户操作时重新计算。例如，你可以只在特定严重程度、特定标签或特定团队成员处理故障时要求填写某个字段。

这些表单在 Flashduty App 中同样生效：创建、认领、关闭故障时 App 会弹出同一份表单，两端共用同一配置，显示条件、必填规则和图片上传等行为一致。

<Note>
  如果某个操作没有配置表单元素，或当前故障和用户不满足表单元素的显示条件，系统会直接执行原有的创建、认领或关闭流程，不会额外要求填写内容。
</Note>

## 批量操作与自定义表单的并集交互

在故障列表中勾选 **多条** 故障后批量 **认领** 或 **关闭** 时，系统会先按表单的适用情况把选中项拆成两类，再分别处理：

* **无需填表的故障**：该操作没有配置表单元素，或当前故障/用户不满足任何元素的显示条件——点击 **认领 / 关闭** 后 **立即执行**，并从选中列表中反选移除，随后才为其余项弹出填写表单
* **需要填表的故障**：弹出 **并集表单**，填写一次，内容通过一次请求同时写入每一条故障（整体成败；失败时弹窗保持打开，可直接重试）

并集表单的字段由所有待填写故障的并集决定：任一故障可见的元素即出现，任一故障必填的元素即必填。

**混合场景的概览**：当选中项中既有无需填表的、又有需要填表的时，弹窗顶部先显示概览——「已认领 N 条故障 / 待认领 M 条故障」（关闭操作对应「已关闭 / 待关闭」），并注明「以下故障需填写表单后认领，表单内容会同时写入每一条」；如果全部选中项都需要填表，则直接进入表单，不显示概览。

**中途放弃的提示**：如果未提交就关闭弹窗（如点击取消或右上角关闭），且此前已有部分故障被先行执行，会提示「已认领 N 条，其余 M 条未填写表单、未处理」（关闭操作对应「已关闭…」），避免误以为整批操作都已完成。

<Note>
  **表单解析异常时的兜底**：单条认领 / 关闭保持原有语义——解析失败直接提示错误，不会静默绕过；批量认领 / 关闭时解析失败不拦截操作，按「无需填表」直接执行整批（与后端对无表单批量请求的降级行为一致）。
</Note>

## 使用建议

* 将需要筛选、统计或复用的内容建成自定义字段；将一次性的处理说明放在 **说明** 元素中。
* 只把真正需要的字段设为必填，避免在紧急认领或关闭时增加无关输入。
* 修改或停用自定义字段前，先检查它是否仍被表单引用；被停用的字段不会在运行时展示。

## 延伸阅读

<CardGroup cols={2}>
  <Card title="自定义字段" icon="sliders" href="/zh/on-call/configuration/custom-fields">
    创建可在故障和自定义表单中复用的业务字段
  </Card>

  <Card title="处理与更新故障" icon="pen-to-square" href="/zh/on-call/incident/handle-update-incident">
    了解认领、关闭和其他故障处理操作
  </Card>
</CardGroup>
