tmagic-editor/docs/api/form/form-methods.md
roymondchen 638c3e9f3c feat(form): 新增 submitForm 命令式提交函数
提供脱离组件树以函数方式完成一次表单校验/提交的能力,类似 ElMessage 用法:
传入 config/initValues 等 props 后内部临时挂载 Form 实例,
初始化完成即调用 submitForm,校验通过 resolve 表单值、失败 reject,
最后自动卸载,并支持 appContext 继承、timeout 与 native 透传。

同步补充单元测试、API 文档及侧边栏入口。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-21 15:55:28 +08:00

2.0 KiB

Form组件 methods

resetForm

  • 详情: 重置该表单项,将其值重置为初始值,并移除校验结果

submitForm

  • 签名: async (native?: boolean) => Promise<any>

  • 参数:

    • native?: boolean - 是否返回原始表单值。当 nativetrue 时返回内部 values.value(响应式原值);否则返回 cloneDeep(toRaw(values.value))(深拷贝后的纯对象)
  • 返回:

    • {Promise<any>} - 校验通过后返回当前表单值;校验失败时会触发 error 事件并 throw 一个包含错误信息的 Error
  • 详情: 提交表单,先执行校验,校验通过后清空 changeRecords 并返回当前表单值

  • 相关: 如果你想脱离组件树以函数方式完成一次表单提交,参见 submitForm 函数

changeHandler

  • 签名: (prop: string, value: any, eventData?: ContainerChangeEventData) => void

  • 详情: 表单项值变更处理函数,会根据传入的 propPath 更新内部表单值,并向上 emit change 事件

getTextByName

  • 签名: (name: string) => string | undefined

  • 参数:

    • name: string - 字段名,支持点分隔的路径格式,如 'a.b.c'
  • 返回:

    • {string | undefined} - 找到的 text 值,如果未找到则返回 undefined
  • 详情: 通过 name 从表单 config 中查找对应表单项的 text

values

  • 类型: Ref<FormValue>

  • 详情: 当前表单值的响应式引用

lastValuesProcessed

  • 类型: Ref<FormValue>

  • 详情: 对比模式下,处理后的待对比表单值

formState

  • 类型: FormState

  • 详情: 内部使用的 formState 对象(reactive),通过 provide('mForm') 注入给子组件

initialized

  • 类型: Ref<boolean>

  • 详情: 表单是否已经完成初始化

changeRecords

  • 类型: ShallowRef<ChangeRecord[]>

  • 详情: 表单变更记录列表,提交成功或重置后会被清空