UNPKG

concis

Version:

Concis Component library for PC

111 lines (110 loc) 2.59 kB
import { CSSProperties, FormHTMLAttributes, ReactNode } from 'react'; interface FormProps<T> extends Omit<FormHTMLAttributes<any>, 'className' | 'onChange' | 'onSubmit'> { /** * @description 自定义样式(不包含Form.Item中其他Concis内置样式) * @default {} */ style?: CSSProperties; /** * @description 类名 * @default null */ className?: T; /** * @description 布局方式 * @default horizontal */ layout?: 'horizontal' | 'vertical'; children: any; /** * @description 表单唯一ref,受控表单必传,通过useRef声明 * @default null */ formField?: any; /** * @description 全局禁用 * @default false */ disabled?: boolean; /** * @description 受控表单向外暴露的hook */ useForm?: Function; /** * @description useForm.onSubmit,提交事件 */ onSubmit?: Function; /** * @description useForm.resetFields,重置表单事件 */ resetFields?: Function; /** * @description useForm.validateFields,手动校验事件 */ validateFields?: Function; /** * @description useForm.useFormContext,获取表单当前受控状态事件 */ useFormContext?: Function; } declare type ruleType = { /** * @description 必填 */ required?: boolean; /** * @description 最大长度 */ maxLength?: number; /** * @description 最小长度 */ minLength?: number; /** * @description 提示信息 */ message: string; /** * @description 自定义校验规则 */ fn?: Function; }; interface FormItemProps { children: ReactNode; /** * @description 类名 */ className?: string; /** * @description 自定义样式 */ style?: CSSProperties; /** * @description 标题 */ label?: string; /** * @description 单行距离顶部Item距离 * @default 20px */ wrapperCol?: number; /** * @description 单行距离底部Item距离 * @default 20px */ wrapperTol?: number; /** * @description 单行受控唯一名称 */ field?: string; /** * @description 单行校验规则 */ rules?: Array<ruleType>; /** * @description 禁用 * @default false */ disabled?: boolean; } export type { FormProps, FormItemProps, ruleType };