开发文档Umo Editor Next文档表单方法列表

方法列表

表单能力除了文档生成之外,还有一个很核心的作用,就是把填写结果作为结构化数据回收到业务系统。

本页重点

  • 哪些入口属于实例方法,哪些入口属于回调
  • 人工填写、程序生成、模板保存分别该看哪一段
  • fillFormValues 应该在什么场景下使用
  • setFormMode 适合解决什么问题
  • resultautofillfillFormValues 应该怎么选

使用入口概览

表单相关能力主要通过四类入口对外提供:

入口类型适合场景
setFormMode(mode)编辑器实例方法实例创建后切换设计、填写、结果等表单模式
fillFormValues(values, options)编辑器实例方法实例创建后按新数据重新生成结果
form.onSubmit(result, context)配置回调人工填写后的提交与数据回收
form.onSubmitted(status, payload)配置回调提交结束后的收尾动作
form.onFillError(errors, context)配置回调程序填充异常兜底
onSave(content, page, document, comments, form)编辑器整体保存回调保存模板或文档时同步回收表单数据

如果你只是第一次接入,建议先看:

  • 人工填写:form.onSubmit
  • 程序生成:fillFormValuesform.onFillError
  • 模板维护:onSave

编辑器实例方法

setFormMode

说明:运行时切换当前表单模式,而不需要重新创建编辑器实例。

当编辑器已经挂载在页面上,而你又希望按业务流程在不同模式之间切换时,优先使用它。例如“先设计模板,再进入填写态”“填写完成后切到结果态”“切回设计态继续调整变量”等场景。

调用示例

const editorRef = ref(null)
 
const enterFillMode = () => {
  editorRef.value.setFormMode('fill')
}
 
const previewResult = () => {
  editorRef.value.setFormMode('result')
}
 
const backToDesign = () => {
  editorRef.value.setFormMode('design')
}

参数

  • modedesign | fill | result | autofill

参数说明

  • design:模板设计态,适合插入和调整变量
  • fill:人工填写态,适合录入变量值并提交
  • result:结果展示态,适合查看填充后的结果
  • autofill:程序填充态,适合结合 form.valuesfillFormValues() 生成结果

返回值

返回当前最新的表单运行时状态对象,通常会包含:

  • enabled
  • rawMode
  • mode
  • isDesignMode
  • isFillMode
  • isResultMode
  • isAutofillMode

适合场景

  • 同一编辑器实例内在设计、填写、结果之间来回切换
  • 控制面板、分页向导、审批流节点中按步骤切换表单工作模式
  • 在线演示或业务系统中避免切模式时重载编辑器

使用建议

  • 只有在 form.enabled = true 时,这个方法才有实际意义
  • 如果只是初始化时确定模式,直接配置 form.mode 即可
  • 如果切到 autofill 后还需要按新数据重新生成结果,再配合 fillFormValues() 使用

相关页面

  • 配置项:查看 form.mode 的模式说明
  • 快速开始:查看不同表单模式的最小接入方式
  • 核心概念:理解 resultautofillfillFormValues() 的边界

fillFormValues

说明:运行时按变量值填充当前文档模板,并生成结果内容。

它更适合作为运行时补充入口:当编辑器已经创建完成,而你又需要根据新数据重新生成结果时,再使用它。若变量值在初始化阶段就已经准备好,优先建议直接配置 form.values

调用示例

const editorRef = ref(null)
 
const generateDocument = async () => {
  const result = await editorRef.value.fillFormValues(
    {
      contract_name: '采购框架协议',
      customer_name: '某某科技有限公司',
      sign_date: '2026-07-29',
    },
    {
      format: 'json',
      disableForm: true,
    },
  )
 
  console.log(result)
}

参数

  • valuesObject,要填充的变量值对象,key 应与模板中的变量 keyid 对应
  • optionsObject
    • formatauto | html | json | text
    • disableFormBoolean,默认 true

参数说明

  • disableForm = true:生成后退出表单态,直接把结果写回正文
  • disableForm = false:保留表单能力,适合实例已创建后的运行时再生成

返回值

返回程序填充后的结果对象,可能包含:

  • format
  • html
  • json
  • text
  • invalidItems
  • errors

如果没有成功生成内容,则可能返回 null

适合场景

  • 编辑器实例已存在,需要按新数据重新生成结果
  • 用户切换不同业务单据时,复用同一模板重新生成内容
  • 前端异步取数后,再触发正式出文
  • 审批流节点按当前数据生成归档文档

相关页面

  • 快速开始:查看最小接入示例
  • 配置项:查看 form.valuesform.finalContentFormatform.onFillError
  • 排障指南:查看填充失败时的排查与兜底

人工填写相关回调

form.onSubmit

说明:人工填写模式下的提交回调。

对于人工填写场景,更推荐通过 form.onSubmit(result, context) 获取结果,而不是额外封装读取逻辑。

const editorOptions = {
  form: {
    enabled: true,
    mode: 'fill',
    async onSubmit(result) {
      console.log(result.values)
      console.log(result.definitions)
      console.log(result.finalContent)
      return {
        success: true,
      }
    },
  },
}

参数

  • result:当前提交结果对象
  • context:表单提交上下文

result 中最常用的字段包括:

  • result.values:当前填写值,默认已过滤空值
  • result.definitions:当前变量定义与当前值
  • result.finalContent:最终结果文档

适合场景

  • 表单提交保存
  • 填写结果校验通过后的业务入库
  • 问卷、登记、采集场景中的结构化数据回收
  • 发起审批或工作流

相关页面

  • 快速开始:查看人工填写最小示例
  • 配置项:查看 form.onSubmit 的返回值结构
  • 使用场景:查看审批、登记、采集、病历等提交类场景

form.onSubmitted

说明onSubmit 结束后的通知回调。

它更适合承担“提交结束后的后置动作”,例如跳转、提示、刷新、上报日志。

参数

  • statussuccesserror
  • payload:提交结束时的附加数据

payload 至少会包含:

  • result:本次提交的结构化结果

并根据提交结果附带以下其中之一:

  • submitResultonSubmit 的返回值
  • erroronSubmit 抛出的错误对象

适合场景

  • 成功后跳转页面
  • 成功后刷新业务列表
  • 失败后上报日志或弹出业务提示

相关页面

  • 配置项:查看 form.onSubmitted 的完整说明
  • 快速开始:查看 onSubmit / onSubmitted 配合示例

程序生成异常回调

form.onFillError

说明:程序填充链路的错误回调。

程序填充时,如果富文本变量内容不合法,或者某些变量无法安全落入文档模型,当前链路会触发该回调。

const editorOptions = {
  form: {
    enabled: true,
    mode: 'autofill',
    async onFillError(errors, context) {
      console.log(errors, context)
    },
  },
}

参数

  • errors:错误列表
  • context:本次填充上下文

适合场景

  • 富文本内容由后端生成,需要监控失败率
  • 生成失败时自动切换兜底模板
  • 批量出文时记录失败项和告警

相关页面

保存文档时获取表单数据

onSave

说明:编辑器整体保存回调,可在保存模板或文档时同步拿到表单信息。

当同时开启批注与表单能力时,onSave 的回调参数顺序可理解为:

async function onSave(content, page, document, comments, form) {}

其中:

  • comments:当前批注线程列表
  • form:当前表单结构化数据

form 中通常会包含:

{
  values: {},
  definitions: [],
}

适合场景

  • 保存模板时同步保存变量定义
  • 保存文档时同步保存变量值与字段描述
  • 在一次保存中同时回收正文、评论与表单数据

相关页面

  • 配置项:查看 form.values 和字段定义相关说明
  • 字段设计:查看 key / name / description / required 的设计建议

方法使用建议

这个页面更适合解决“有哪些方法 / 回调可用、参数是什么、返回什么”的问题。

如果你当前想解决的是“整条链路应该怎么选”,建议直接看下面这些页面:

  • 核心概念:理解 resultautofillfillFormValues 的边界
  • 快速开始:按模板设计、人工填写、程序出文三条路径快速接入
  • 使用场景:按业务目标判断该走哪条链路

可以先这样记:

  • 人工填写:优先看 form.onSubmitform.onSubmitted
  • 程序生成:优先看 form.valuesform.onFillError
  • 模板维护:优先看 onSave