Skip to content

useFormRequest 表单请求

用于处理表单数据提交的组合函数,支持表单验证、数据获取、提交等功能。

类型定义

typescript
interface FormRequestConfig<T> {
  initialForm: T
  idKey?: keyof T
  getMethod?: (id: string | number) => Promise<any>
  afterGet?: (response: any) => T | ((response: any) => Promise<T>)
  validate?: () => boolean | Promise<boolean>
  beforeSend?: (form: T) => T | ((form: T) => Promise<T>)
  immediate?: boolean
  onSuccess?: (response: any) => void
  onError?: (error: any) => void
  onComplete?: () => void
}

interface FormRequestReturn<T> {
  loading: Ref<boolean>
  sendLoading: Ref<boolean>
  form: Ref<UnwrapRef<T>> | Ref<T>
  send: () => Promise<void>
  isSaved: Ref<boolean>
}

function useFormRequest<T>(
  methodHandler: (form: T) => Promise<any>,
  config: FormRequestConfig<T>
): FormRequestReturn<T>

参数

参数说明类型默认值
methodHandler表单提交函数(form: T) => Promise<any>
config配置对象FormRequestConfig<T>

Config 选项

属性说明类型默认值
initialForm初始表单数据T
idKeyID 字段名,用于编辑模式keyof T'id'
getMethod获取数据的方法,用于编辑模式(id: string | number) => Promise<any>
afterGet获取数据后的处理函数(response: any) => T | ((response: any) => Promise<T>)
validate表单验证函数() => boolean | Promise<boolean>
beforeSend提交前的数据处理函数(form: T) => T | ((form: T) => Promise<T>)
immediate是否立即执行提交booleanfalse
onSuccess提交成功回调(response: any) => void
onError提交失败回调(error: any) => void
onComplete提交完成回调() => void

返回值

属性说明类型
loading数据加载状态Ref<boolean>
sendLoading提交加载状态Ref<boolean>
form表单数据Ref<UnwrapRef<T>> | Ref<T>
send提交表单函数() => Promise<void>
isSaved表单是否已保存Ref<boolean>

Released under the MIT License.