import { KeyboardTypeOptions, ImageSourcePropType } from 'react-native' export declare type TextAreaEventHandle = (val?: string) => void /** * 正则规则类型定义 */ export interface RulePatternPropsType { pattern?: RegExp message?: string } /** * 正则规则类型定义 */ export interface RuleRequiredPropsType { required?: boolean message?: string } /** * 正则函数类型定义 */ export interface RuleValidatorPropsType { pattern?: RegExp validator?: boolean message?: string } /** * 正则自定义规则类型定义 */ export interface RuleMessagePropsType { type: | 'zip' | 'email' | 'zh' | 'zhName' | 'url' | 'phone' | 'mobilePhone' | 'telephone' | 'idCard' | 'money' | 'date' | 'number' | 'integer' | 'floating' | 'twoTimes' | 'threeTimes' | 'fourTimes' | 'fiveTimes' message?: string } export declare type RulePropsType = ( | string | RulePatternPropsType | RuleRequiredPropsType | RuleMessagePropsType | RuleValidatorPropsType)[] /** * FormItems属性的类型定义 */ export interface FormItemPropsType { componentName: string props: FormItemOptionPropsType } /** * FormItem 类型定义 */ export interface FormItemOptionPropsType { name?: string // 组件名 id: string // id placeholder?: string // 备注 initialValue?: string // 初始值 required?: boolean // 是否必要 rules?: RulePropsType // 规则 form?: any } /** * SsDescription组件PropsType */ export interface SsDescriptionPropsType { name?: string // 组件名 id: string // id initialValue?: string // 初始值 icon?: string } /** * Input组件PropsType */ export interface SwitchPropsType extends FormItemOptionPropsType { label: string // 标签 onChange?: (checked: boolean) => void last?: boolean } /** * Input组件PropsType */ export interface InputPropsType extends FormItemOptionPropsType { icon?: ImageSourcePropType label: string // 标签 onChange?: (value: string) => void type?: 'text' | 'bankCard' | 'phone' | 'password' | 'number' | 'digit' | KeyboardTypeOptions // 类型 textAlign?: 'left' | 'center' | 'right' extra?: React.ReactNode maxLength?: number last?: boolean multiline?: boolean height?: number } /** * Textarea组件PropsType */ export interface TextareaPropsType extends FormItemOptionPropsType { label: string // 标签 onChange?: TextAreaEventHandle count?: number // 计数功能,兼具最大长度,默认为0,代表不开启计数功能 last?: boolean } /** * SsSelect组件PropsType */ export interface SsSelectPropsType extends FormItemOptionPropsType { icon?: ImageSourcePropType label: string // 标签 onChange?: (value?: React.ReactText[]) => void options: ({ label: string; value: string } | string)[] // 选项 cols?: number // 列数 last?: boolean } /** * SsMultiSelect组件PropsType */ export interface SsMultiSelectPropsType extends FormItemOptionPropsType { label: string // 标签 onChange?: (value?: React.ReactText[]) => void // onChange事件 options: ({ label: string; value: string } | string)[] // 选项 } /** * SsDropDown组件PropsType */ export interface SsDropDownPropsType extends FormItemOptionPropsType { icon?: ImageSourcePropType label: string // 标签 onChange?: (value?: React.ReactText[]) => void // onChange事件 options: ({ label: string; value: string } | string)[] // 选项 multiple: boolean } /** * SsDate组件PropsType */ export interface SsDateProps extends FormItemOptionPropsType { label: string // 标签 onChange?: (value: Date) => void type: 'year' | 'month' | 'date' | 'datetime' | 'time' minDate: Date maxDate: Date } /** * SsDateRange组件PropsType */ export interface SsDateRangeProps { name?: string // 组件名 id: string[] // id placeholder?: string[] // 备注 initialValue?: string[] // 初始值 required?: boolean // 是否必要 rules?: RulePropsType // 规则 form?: any label: string[] // 标签 onChange?: (value: Date | Date[]) => void } /** * SsAmount组件PropsType */ export interface SsAmountProps extends InputPropsType { upper?: boolean // 是否显示大写 } export interface RatingProps { form?: any id: string label: string rules?: RulePropsType // 规则 allowHalf?: boolean onChange?: (value: number) => void initialValue: number required?: boolean } export interface ImagePickerProps extends FormItemOptionPropsType { label: string onChange?: (value: any[]) => void } export interface LocationProps extends FormItemOptionPropsType { label: string onChange?: (value: any) => void } export interface CalculateProps extends FormItemOptionPropsType { label: string formula: any[] onChange?: (value: any) => void }