concis
Version:
Concis Component library for PC
111 lines (110 loc) • 2.59 kB
TypeScript
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 };