@jiaozhiye/qm-design-vue
Version:
A Component Library for Vue3.0
145 lines (144 loc) • 4.67 kB
TypeScript
import type { PropType, ExtractPropTypes, Ref, ComputedRef, StyleValue } from 'vue';
import { IExpandData } from './types';
import type { IFormItem, IFormData, IExtraData, IFieldData, IFormLayout, ILabelAlign, IFormType, IAuthConfig } from './types';
import type { Arrayable, ComponentSize, JSXElement, ValueOf } from '../../_utils/types';
export declare const _props: {
items: {
type: PropType<IFormItem[]>;
required: boolean;
default: () => never[];
};
size: {
type: PropType<ComponentSize>;
validator: (val: string) => boolean;
};
initialValues: {
type: PropType<IFormData<string | number, string | number | (string | number)[] | undefined>>;
default: () => {};
};
initialExtras: {
type: PropType<IExtraData>;
default: () => {};
};
layout: {
type: PropType<IFormLayout>;
default: string;
};
cols: {
type: NumberConstructor;
};
labelWidth: {
type: PropType<string | number>;
default: number;
validator: (val: string | number) => boolean;
};
labelAlign: {
type: PropType<ILabelAlign>;
default: string;
};
labelWrap: {
type: BooleanConstructor;
};
formType: {
type: PropType<IFormType>;
default: string;
};
disabled: {
type: BooleanConstructor;
};
uniqueKey: {
type: StringConstructor;
};
defaultRows: {
type: NumberConstructor;
default: number;
};
defaultExpand: {
type: BooleanConstructor;
};
searchButtonCols: {
type: NumberConstructor;
};
scrollToFirstError: {
type: BooleanConstructor;
default: boolean;
};
authConfig: {
type: PropType<IAuthConfig>;
};
isAutoFocus: {
type: BooleanConstructor;
default: boolean;
};
isCollapse: {
type: BooleanConstructor;
default: boolean;
};
isFieldsDefine: {
type: BooleanConstructor;
default: undefined;
};
isSearchBtn: {
type: BooleanConstructor;
default: boolean;
};
isSubmitBtn: {
type: BooleanConstructor;
};
fieldsChange: {
type: PropType<(items: IFormItem[]) => void>;
};
class: {
type: PropType<string | Arrayable<Record<string, boolean>>>;
};
style: {
type: PropType<StyleValue>;
};
};
export declare const _emits: {
valuesChange: (changedValues: IFormData, initialValues: IFormData) => boolean;
fieldsChange: (changedFields: IFieldData[], allFields: IFieldData[]) => boolean;
finish: (values: IFormData) => boolean;
finishFailed: (errorFields: any[]) => boolean;
reset: () => boolean;
collapse: (collapse: boolean) => boolean;
};
export type FormProps = ExtractPropTypes<typeof _props>;
export type FormItemProps = IFormItem;
export type FormEmits = typeof _emits;
export type FormInstance = {
SET_FIELDS_VALUE: (values: IFormData) => void;
GET_FIELDS_VALUE: (fields?: string[]) => IFormData;
GET_FORM_DATA: () => Promise<[any, any]>;
VALIDATE_FIELDS: (fields?: string[]) => Promise<any[]>;
CLEAR_VALIDATE: (fields?: string[]) => void;
SET_FIELDS_EXTRA: (values: IExtraData) => void;
GET_FIELDS_EXTRA: (fields?: string[]) => IExtraData;
SUBMIT_FORM: () => void;
RESET_FORM: () => void;
CREATE_FOCUS: (fieldName: string) => void;
SET_FORM_ITEM: (fieldName: string, option: Record<string, any>, forceUpdate?: boolean) => void;
};
export type FormInject = {
formData: Ref<IFormData>;
other: Ref<IFormData>;
expand: Ref<IExpandData>;
isOnlyShow: ComputedRef<boolean>;
isFilterType: ComputedRef<boolean>;
setFormValue: (fieldName: string, value: ValueOf<IFormData>) => void;
setViewValue: (fieldName: string, value?: string) => void;
getViewValue: (fieldName: string) => string;
setExpandHandle: (value: boolean) => void;
getOriginItems: () => IFormItem[];
getFormItemLabel: (label: string | JSXElement | IFormItem) => string;
renderFormLabel: (label: string | JSXElement | IFormItem, tip?: string) => JSXElement | string;
renderFormItemExtra: (option: IFormItem['extra'] & {
fieldName: string;
}) => JSXElement;
renderFormItemButton: (fieldName: string, buttonAfter: IFormItem['buttonAfter']) => JSXElement | undefined | null;
getBlockDerivedItems: () => any[];
SUBMIT_FORM: () => void;
SET_FIELDS_VALUE: (values: IFormData) => void;
SET_FIELDS_EXTRA: (values: IExtraData) => void;
GET_FIELDS_VALUE: (fields?: string[]) => IFormData;
};