UNPKG

@opensig/opendesign

Version:

<p align="center"><img src="../docs/public/opendesign-logo-light.png"/></p> <h1 align="center">opendesign</h1> <p align="center">一个 Vue 3 组件库</p> <p align="center"><b>皮肤可定制,使用 TypeScript</b></p>

137 lines (136 loc) 3.18 kB
import { ExtractPropTypes, PropType } from 'vue'; export type ValidatorReusltT = 'danger' | 'warning' | 'success'; export type TriggerT = 'change' | 'input' | 'blur' | 'focus' | `e-${string}`; export type ValidatorResultT = { type: ValidatorReusltT; message?: string; }; export type ValidatorT = (value: any) => ValidatorResultT | void; export type ValidatorRuleT = { triggers?: TriggerT | TriggerT[]; validator?: ValidatorT; }; export type RequiredRuleT = { required: boolean; message?: string; triggers?: TriggerT | TriggerT[]; }; export type TypeRuleT = { type: 'string' | 'number' | 'boolean' | 'array' | 'object'; message?: string; triggers?: TriggerT | TriggerT[]; }; export type RulesT = ValidatorRuleT | RequiredRuleT | TypeRuleT; export type TriggerRulesT = { [x in TriggerT]?: ValidatorT[]; }; export type FieldResultT = { type: 'warning' | 'danger' | ''; message: string[]; } | null; export interface FiledInfoT { filed?: string; validate?: (trigger?: TriggerT) => Promise<FieldResultT>; clearValidate: () => void; resetFiled: () => void; } export declare const formProps: { /** * 表单数据对象 */ model: { type: ObjectConstructor; }; /** * 子项是否包含必选,主要用于控制文本左对齐样式 */ hasRequired: { type: BooleanConstructor; default: boolean; }; /** * 布局 */ layout: { type: PropType<"h" | "v" | "inline">; default: string; }; /** * 表单项文本垂直对齐方式 */ labelAlign: { type: PropType<"top" | "center" | "bottom">; }; /** * 表单项文本水平对齐方式 */ labelJustify: { type: PropType<"left" | "center" | "right">; }; /** * 表单项文本宽度,全局 */ labelWidth: { type: StringConstructor; }; }; export type FormPropsT = ExtractPropTypes<typeof formProps>; export declare const formItemProps: { /** * 表单项在数据对象中的path */ field: { type: StringConstructor; }; /** * 是否必选 */ required: { type: BooleanConstructor; default: boolean; }; /** * 表单项文本 */ label: { type: StringConstructor; default: undefined; }; /** * 表单项文本垂直对齐方式 */ labelAlign: { type: PropType<"top" | "center" | "bottom">; }; /** * 表单项文本水平对齐方式 */ labelJustify: { type: PropType<"left" | "center" | "right">; }; /** * 表单项文本宽度 */ labelWidth: { type: StringConstructor; }; /** * 表单项内容类名 */ mainClass: { type: PropType<string | any[]>; }; /** * 表单验证规则 */ rules: { type: PropType<Array<RulesT>>; }; /** * 表单验证的默认触发事件,在手动检验 */ defaultTrigger: { type: PropType<TriggerT>; }; }; export type FormItemPropsT = ExtractPropTypes<typeof formItemProps>;