import React from 'react'; import type { FormProps, FormItemProps, FormInstance } from 'antd'; import type { ProRequestData } from 'ls-pro-utils'; import type { NamePath } from 'antd/lib/form/interface'; import type { SubmitterProps } from '../components/Submitter'; import type { GroupProps, FieldProps } from '../interface'; export declare type CommonFormProps = Record, U extends Record = Record> = { submitter?: SubmitterProps<{ form?: FormInstance; }> | false; /** * 支持异步操作,更加方便 * * @name 表单结束后调用 */ onFinish?: (formData: T) => Promise; /** @name 获取真正的可以获得值的 from */ formRef?: React.MutableRefObject | undefined>; /** @name 同步结果到 url 中 */ syncToUrl?: boolean | ((values: T, type: 'get' | 'set') => T); /** @name 额外的 url 参数 中 */ extraUrlParams?: Record; /** * 同步结果到 initialValues,默认为true如果为false,reset的时将会忽略从url上获取的数据 * * @name 是否将 url 参数写入 initialValues */ syncToInitialValues?: boolean; /** * 如果为 false,会原样保存。 * * @default true * @param 要不要值中的 Null 和 undefined */ omitNil?: boolean; /** * 格式化 Date 的方式,默认转化为 string * * @see date -> YYYY-MM-DD * @see dateTime -> YYYY-MM-DD HH:mm:SS * @see time -> HH:mm:SS */ dateFormatter?: 'number' | 'string' | false; /** 表单初始化成功,比如布局,label等计算完成 */ onInit?: (values: T, form: ProFormInstance) => void; /** 发起网络请求的参数 */ params?: U; /** 发起网络请求的参数,返回值会覆盖给 initialValues */ request?: ProRequestData; /** 是否回车提交 */ isKeyPressSubmit?: boolean; /** 用于控制form 是否相同的key,高阶用法 */ formKey?: string; /** 自动选中第一项 */ autoFocusFirstInput?: boolean; itemCol?: number; labelWidth?: number; }; export declare type BaseFormProps> = { contentRender?: (items: React.ReactNode[], submitter: React.ReactElement | undefined, form: FormInstance) => React.ReactNode; fieldProps?: FieldProps; /** 表单初始化完成,form已经存在,可以进行赋值的操作了 */ onInit?: (values: T, form: ProFormInstance) => void; formItemProps?: FormItemProps; groupProps?: GroupProps; /** 是否回车提交 */ isKeyPressSubmit?: boolean; /** Form 组件的类型,内部使用 */ formComponentType?: 'DrawerForm' | 'ModalForm' | 'QueryFilter'; } & Omit & CommonFormProps; declare type ProFormInstance = FormInstance & { /** 获取格式化之后所有数据 */ getFieldsFormatValue?: (nameList?: NamePath[] | true) => Record; /** 获取格式化之后的单个数据 */ getFieldFormatValue?: (nameList?: NamePath) => Record; /** 校验字段后返回格式化之后的所有数据 */ validateFieldsReturnFormatValue?: (nameList?: NamePath[]) => Promise; }; declare function RequestForm>(props: BaseFormProps): JSX.Element; export type { FormProps, ProFormInstance, FormItemProps, FormInstance }; export default RequestForm;