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 | — |
idKey | ID 字段名,用于编辑模式 | 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 | 是否立即执行提交 | boolean | false |
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> |