@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
TypeScript
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>;