UNPKG

plus-pro-components

Version:

Page level components developed based on Element Plus.

946 lines (944 loc) 337 kB
import { DebouncedFunc } from 'lodash-es'; import { default as __DTS_DEFAULT_0__ } from 'element-plus/es/components/table/src/table-layout'; import { Options } from 'sortablejs'; import { TimeSelectProps } from 'element-plus/es/components/time-select/src/time-select'; import { LooseRequired } from '@vue/shared'; import { Arrayable, EpPropFinalized, EpPropMergeType } from 'element-plus/es/utils'; import { PlusFormGroupRow, PlusFormProps, PlusRadioProps, PlusDatePickerProps, PlusInputTagProps } from 'plus-pro-components'; import { DefineComponent, Ref, ComponentInternalInstance, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, PropType, Slot, ComponentPublicInstance, ComponentOptionsBase, CreateComponentPublicInstance, ComputedRef, ComponentOptionsMixin, DebuggerEvent, nextTick, WatchOptions, WatchStopHandle, ShallowUnwrapRef, ComponentCustomProperties, CSSProperties, Component, ShallowRef, PublicProps } from 'vue'; import { CardProps, RowProps, ColProps, FormItemRule, FormItemProp, FormItemContext, FormValidateCallback, FormValidationResult, ElTooltipProps, TableColumnCtx, FormItemProps, ProgressFn, CascaderNode, InputAutoSize, AutocompleteProps, CheckboxGroupProps, ColorPickerProps, DatePickerProps, InputProps, InputNumberProps, RadioGroupProps, RateProps, ISelectProps, SliderProps, SwitchProps, TimePickerDefaultProps, TextProps, ImageProps, LinkProps, TagProps, ProgressProps, SummaryMethod, ColumnCls, ColumnStyle, CellCls, CellStyle, Sort, TreeNode, Translator, Table } from 'element-plus'; import { PlusPaginationProps } from 'plus-pro-components/es/components/pagination'; import { PlusTableProps, ActionBarProps, ColumnSetting, ButtonsCallBackParams, FormChangeCallBackParams, FilterTableHeaderEventType, TableFormRefRow } from 'plus-pro-components/es/components/table'; import { PlusSearchProps } from 'plus-pro-components/es/components/search'; import { PlusColumn, PageInfo, RecordType, Mutable, FieldValues, TableValueType, FormItemValueType, OptionsType, OptionsRow, RenderTypes, FieldValueType, PropsItemType, OmitTypes, CascaderProps } from 'plus-pro-components/es/types'; export interface PlusPageProps { /** * 配置 */ columns: PlusColumn[]; /** * * params参数中一定会有 pageSize 和 page ,这两个参数是 plus-pro-components 的规范 * @param params */ request: (params: Partial<PageInfo> & RecordType) => Promise<{ /** 数据 */ data: RecordType[]; /** 不传会使用 data 的长度,如果是分页一定要传*/ total: number; }>; /** * PlusSearchProps */ search?: false | Partial<PlusSearchProps>; /** * PlusTableProps */ table?: Partial<PlusTableProps>; /** * request的 params 其他参数,默认会带pageSize,page和 PlusSearch组件中的值 */ params?: RecordType; /** * 对通过 request 获取的数据进行处理 * @param data */ postData?: <T = RecordType[]>(data: T[]) => T[]; /** * 搜索之前进行一些修改 * @param params */ beforeSearchSubmit?: <T = RecordType>(params: T) => T; /** * 表格和搜索是否需要el-card 包裹 默认true */ isCard?: boolean; /** * 搜索外层的el-card的props ,当isCard为true时生效 */ searchCardProps?: Partial<Mutable<CardProps>>; /** * 表格外层的el-card的props ,当isCard为true时生效 */ tableCardProps?: Partial<Mutable<CardProps>>; defaultPageInfo?: PageInfo; defaultPageSizeList?: number[]; pagination?: false | Omit<PlusPaginationProps, 'total' | 'modelValue' | 'pageSizeList'>; /** * 组件渲染完成后是否立即调用getList */ immediate?: boolean; /** * 搜索与表格分割线 */ dividerProps?: false | Partial<RecordType>; /** * 可以修改默认的分页参数 */ pageInfoMap?: { page?: string; pageSize?: string; }; } export interface PlusPageEmits { (e: 'search', data: FieldValues): void; (e: 'reset', data: FieldValues): void; (e: 'paginationChange', pageInfo: PageInfo): void; /** * 数据加载失败时触发 */ (e: 'requestError', error: unknown): void; /** * 数据加载完成时触发 */ (e: 'requestComplete', tableData: RecordType[]): void; } declare const _default: __VLS_WithTemplateSlots< DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<PlusPageProps>, { params: () => {}; columns: () => never[]; postData: undefined; beforeSearchSubmit: undefined; isCard: boolean; search: () => {}; table: () => {}; defaultPageInfo: () => { page: number; pageSize: number; }; defaultPageSizeList: () => number[]; searchCardProps: () => {}; tableCardProps: () => {}; /** * 分页组件的其他参数,不包含total,modelValue,pageSizeList */ pagination: () => {}; immediate: boolean; dividerProps: boolean; pageInfoMap: () => { page: string; pageSize: string; }; }>, { plusSearchInstance: Ref<({ $: ComponentInternalInstance; $data: {}; $props: Partial<{ columns: PlusColumn[]; modelValue: FieldValues; labelPosition: "top" | "right" | "left"; inline: boolean; showNumber: number; defaultValues: FieldValues; rowProps: Partial<Mutable< RowProps>>; colProps: Partial<Mutable< ColProps>>; hasFooter: boolean; hasReset: boolean; resetText: string; hasUnfold: boolean; defaultUnfold: boolean; searchText: string; retractText: string; expandText: string; searchLoading: boolean; needValidate: boolean; }> & Omit<{ readonly columns: PlusColumn[]; readonly modelValue: FieldValues; readonly inline: boolean; readonly showNumber: number; readonly defaultValues: FieldValues; readonly rowProps: Partial<Mutable< RowProps>>; readonly colProps: Partial<Mutable< ColProps>>; readonly hasFooter: boolean; readonly hasReset: boolean; readonly resetText: string; readonly hasUnfold: boolean; readonly defaultUnfold: boolean; readonly searchText: string; readonly retractText: string; readonly expandText: string; readonly searchLoading: boolean; readonly needValidate: boolean; readonly labelPosition?: "top" | "right" | "left" | undefined; onChange?: ((values: FieldValues, column: PlusColumn) => any) | undefined; "onUpdate:modelValue"?: ((values: FieldValues) => any) | undefined; onReset?: ((values: FieldValues) => any) | undefined; onSearch?: ((values: FieldValues) => any) | undefined; onCollapse?: ((isShowUnfold: boolean) => any) | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly< ExtractPropTypes<{ columns: { type: PropType<PlusColumn[]>; default: () => never[]; }; modelValue: { type: PropType<FieldValues>; default: () => {}; }; labelPosition: { type: PropType<"top" | "right" | "left">; default: undefined; }; inline: { type: PropType<boolean>; default: boolean; }; showNumber: { type: PropType<number>; default: number; }; defaultValues: { type: PropType<FieldValues>; default: () => {}; }; rowProps: { type: PropType<Partial<Mutable< RowProps>>>; default: () => { gutter: number; }; }; colProps: { type: PropType<Partial<Mutable< ColProps>>>; default: () => { xs: number; sm: number; md: number; lg: number; xl: number; }; }; hasFooter: { type: PropType<boolean>; default: boolean; }; hasReset: { type: PropType<boolean>; default: boolean; }; resetText: { type: PropType<string>; default: string; }; hasUnfold: { type: PropType<boolean>; default: boolean; }; defaultUnfold: { type: PropType<boolean>; default: boolean; }; searchText: { type: PropType<string>; default: string; }; retractText: { type: PropType<string>; default: string; }; expandText: { type: PropType<string>; default: string; }; searchLoading: { type: PropType<boolean>; default: boolean; }; needValidate: { type: PropType<boolean>; default: boolean; }; }>> & { onChange?: ((values: FieldValues, column: PlusColumn) => any) | undefined; "onUpdate:modelValue"?: ((values: FieldValues) => any) | undefined; onReset?: ((values: FieldValues) => any) | undefined; onSearch?: ((values: FieldValues) => any) | undefined; onCollapse?: ((isShowUnfold: boolean) => any) | undefined; }, "columns" | "modelValue" | "labelPosition" | "inline" | "showNumber" | "defaultValues" | "rowProps" | "colProps" | "hasFooter" | "hasReset" | "resetText" | "hasUnfold" | "defaultUnfold" | "searchText" | "retractText" | "expandText" | "searchLoading" | "needValidate">; $attrs: { [x: string]: unknown; }; $refs: { [x: string]: unknown; }; $slots: Readonly<{ [name: string]: Slot<any> | undefined; }>; $root: ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null; $parent: ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null; $emit: ((event: "search", values: FieldValues) => void) & ((event: "reset", values: FieldValues) => void) & ((event: "change", values: FieldValues, column: PlusColumn) => void) & ((event: "update:modelValue", values: FieldValues) => void) & ((event: "collapse", isShowUnfold: boolean) => void); $el: any; $options: ComponentOptionsBase<Readonly< ExtractPropTypes<{ columns: { type: PropType<PlusColumn[]>; default: () => never[]; }; modelValue: { type: PropType<FieldValues>; default: () => {}; }; labelPosition: { type: PropType<"top" | "right" | "left">; default: undefined; }; inline: { type: PropType<boolean>; default: boolean; }; showNumber: { type: PropType<number>; default: number; }; defaultValues: { type: PropType<FieldValues>; default: () => {}; }; rowProps: { type: PropType<Partial<Mutable< RowProps>>>; default: () => { gutter: number; }; }; colProps: { type: PropType<Partial<Mutable< ColProps>>>; default: () => { xs: number; sm: number; md: number; lg: number; xl: number; }; }; hasFooter: { type: PropType<boolean>; default: boolean; }; hasReset: { type: PropType<boolean>; default: boolean; }; resetText: { type: PropType<string>; default: string; }; hasUnfold: { type: PropType<boolean>; default: boolean; }; defaultUnfold: { type: PropType<boolean>; default: boolean; }; searchText: { type: PropType<string>; default: string; }; retractText: { type: PropType<string>; default: string; }; expandText: { type: PropType<string>; default: string; }; searchLoading: { type: PropType<boolean>; default: boolean; }; needValidate: { type: PropType<boolean>; default: boolean; }; }>> & { onChange?: ((values: FieldValues, column: PlusColumn) => any) | undefined; "onUpdate:modelValue"?: ((values: FieldValues) => any) | undefined; onReset?: ((values: FieldValues) => any) | undefined; onSearch?: ((values: FieldValues) => any) | undefined; onCollapse?: ((isShowUnfold: boolean) => any) | undefined; }, { plusFormInstance: Ref<({ $: ComponentInternalInstance; $data: {}; $props: Partial<{ columns: PlusColumn[]; group: false | PlusFormGroupRow[]; modelValue: FieldValues; rules: Partial<Record<string, Arrayable<FormItemRule>>>; labelPosition: "top" | "right" | "left"; labelWidth: string | number; labelSuffix: string; hasLabel: boolean; defaultValues: FieldValues; rowProps: Partial<Mutable< RowProps>>; colProps: Partial<Mutable< ColProps>>; hasErrorTip: boolean; hasFooter: boolean; hasReset: boolean; submitText: string; resetText: string; submitLoading: boolean; footerAlign: "right" | "left" | "center"; cardProps: Partial<Mutable<CardProps>>; prevent: boolean; collapseDuration: number; collapseTransition: boolean; clearable: boolean; }> & Omit<{ readonly columns: PlusColumn[]; readonly group: false | PlusFormGroupRow[]; readonly modelValue: FieldValues; readonly rules: Partial<Record<string, Arrayable<FormItemRule>>>; readonly labelPosition: "top" | "right" | "left"; readonly labelWidth: string | number; readonly labelSuffix: string; readonly hasLabel: boolean; readonly defaultValues: FieldValues; readonly rowProps: Partial<Mutable< RowProps>>; readonly colProps: Partial<Mutable< ColProps>>; readonly hasErrorTip: boolean; readonly hasFooter: boolean; readonly hasReset: boolean; readonly submitText: string; readonly resetText: string; readonly submitLoading: boolean; readonly footerAlign: "right" | "left" | "center"; readonly cardProps: Partial<Mutable<CardProps>>; readonly prevent: boolean; readonly clearable: boolean; readonly collapseDuration?: number | undefined; readonly collapseTransition?: boolean | undefined; onChange?: ((values: FieldValues, column: PlusColumn) => any) | undefined; "onUpdate:modelValue"?: ((values: FieldValues) => any) | undefined; onReset?: ((values: FieldValues) => any) | undefined; onSubmit?: ((values: FieldValues) => any) | undefined; onValidate?: ((...args: any[]) => any) | undefined; onSubmitError?: ((errors: unknown) => any) | undefined; } & VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly< ExtractPropTypes<{ columns: { type: PropType<PlusColumn[]>; default: () => never[]; }; group: { type: PropType<false | PlusFormGroupRow[]>; default: boolean; }; modelValue: { type: PropType<FieldValues>; default: () => {}; }; rules: { type: PropType<Partial<Record<string, Arrayable<FormItemRule>>>>; default: () => {}; }; labelPosition: { type: PropType<"top" | "right" | "left">; default: string; }; labelWidth: { type: PropType<string | number>; default: string; }; labelSuffix: { type: PropType<string>; default: string; }; hasLabel: { type: PropType<boolean>; default: boolean; }; defaultValues: { type: PropType<FieldValues>; default: () => {}; }; rowProps: { type: PropType<Partial<Mutable< RowProps>>>; default: () => {}; }; colProps: { type: PropType<Partial<Mutable< ColProps>>>; default: () => {}; }; hasErrorTip: { type: PropType<boolean>; default: boolean; }; hasFooter: { type: PropType<boolean>; default: boolean; }; hasReset: { type: PropType<boolean>; default: boolean; }; submitText: { type: PropType<string>; default: string; }; resetText: { type: PropType<string>; default: string; }; submitLoading: { type: PropType<boolean>; default: boolean; }; footerAlign: { type: PropType<"right" | "left" | "center">; default: string; }; cardProps: { type: PropType<Partial<Mutable<CardProps>>>; default: () => {}; }; prevent: { type: PropType<boolean>; default: boolean; }; collapseDuration: { type: PropType<number>; default: undefined; }; collapseTransition: { type: PropType<boolean>; default: undefined; }; clearable: { type: PropType<boolean>; default: boolean; }; }>> & { onChange?: ((values: FieldValues, column: PlusColumn) => any) | undefined; "onUpdate:modelValue"?: ((values: FieldValues) => any) | undefined; onReset?: ((values: FieldValues) => any) | undefined; onSubmit?: ((values: FieldValues) => any) | undefined; onValidate?: ((...args: any[]) => any) | undefined; onSubmitError?: ((errors: unknown) => any) | undefined; }, "columns" | "group" | "modelValue" | "rules" | "labelPosition" | "labelWidth" | "labelSuffix" | "hasLabel" | "defaultValues" | "rowProps" | "colProps" | "hasErrorTip" | "hasFooter" | "hasReset" | "submitText" | "resetText" | "submitLoading" | "footerAlign" | "cardProps" | "prevent" | "collapseDuration" | "collapseTransition" | "clearable">; $attrs: { [x: string]: unknown; }; $refs: { [x: string]: unknown; }; $slots: Readonly<{ [name: string]: Slot<any> | undefined; }>; $root: ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null; $parent: ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null; $emit: ((event: "reset", values: FieldValues) => void) & ((event: "submit", values: FieldValues) => void) & ((event: "change", values: FieldValues, column: PlusColumn) => void) & ((event: "update:modelValue", values: FieldValues) => void) & ((event: "validate", ...args: any[]) => void) & ((event: "submitError", errors: unknown) => void); $el: any; $options: ComponentOptionsBase<Readonly< ExtractPropTypes<{ columns: { type: PropType<PlusColumn[]>; default: () => never[]; }; group: { type: PropType<false | PlusFormGroupRow[]>; default: boolean; }; modelValue: { type: PropType<FieldValues>; default: () => {}; }; rules: { type: PropType<Partial<Record<string, Arrayable<FormItemRule>>>>; default: () => {}; }; labelPosition: { type: PropType<"top" | "right" | "left">; default: string; }; labelWidth: { type: PropType<string | number>; default: string; }; labelSuffix: { type: PropType<string>; default: string; }; hasLabel: { type: PropType<boolean>; default: boolean; }; defaultValues: { type: PropType<FieldValues>; default: () => {}; }; rowProps: { type: PropType<Partial<Mutable< RowProps>>>; default: () => {}; }; colProps: { type: PropType<Partial<Mutable< ColProps>>>; default: () => {}; }; hasErrorTip: { type: PropType<boolean>; default: boolean; }; hasFooter: { type: PropType<boolean>; default: boolean; }; hasReset: { type: PropType<boolean>; default: boolean; }; submitText: { type: PropType<string>; default: string; }; resetText: { type: PropType<string>; default: string; }; submitLoading: { type: PropType<boolean>; default: boolean; }; footerAlign: { type: PropType<"right" | "left" | "center">; default: string; }; cardProps: { type: PropType<Partial<Mutable<CardProps>>>; default: () => {}; }; prevent: { type: PropType<boolean>; default: boolean; }; collapseDuration: { type: PropType<number>; default: undefined; }; collapseTransition: { type: PropType<boolean>; default: undefined; }; clearable: { type: PropType<boolean>; default: boolean; }; }>> & { onChange?: ((values: FieldValues, column: PlusColumn) => any) | undefined; "onUpdate:modelValue"?: ((values: FieldValues) => any) | undefined; onReset?: ((values: FieldValues) => any) | undefined; onSubmit?: ((values: FieldValues) => any) | undefined; onValidate?: ((...args: any[]) => any) | undefined; onSubmitError?: ((errors: unknown) => any) | undefined; }, { formInstance: Ref< CreateComponentPublicInstance<Readonly< ExtractPropTypes<{ readonly model: ObjectConstructor; readonly rules: { readonly type: PropType<Partial<Record<string, Arrayable<FormItemRule>>>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly labelPosition: EpPropFinalized<StringConstructor, "top" | "right" | "left", unknown, "right", boolean>; readonly requireAsteriskPosition: EpPropFinalized<StringConstructor, "right" | "left", unknown, "left", boolean>; readonly labelWidth: EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>; readonly labelSuffix: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>; readonly inline: BooleanConstructor; readonly inlineMessage: BooleanConstructor; readonly statusIcon: BooleanConstructor; readonly showMessage: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>; readonly validateOnRuleChange: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>; readonly hideRequiredAsterisk: BooleanConstructor; readonly scrollToError: BooleanConstructor; readonly scrollIntoViewOptions: { readonly type: PropType<EpPropMergeType<readonly [ObjectConstructor, BooleanConstructor], unknown, unknown>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly size: { readonly type: PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", unknown>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly disabled: BooleanConstructor; }>> & { onValidate?: ((prop: FormItemProp, isValid: boolean, message: string) => any) | undefined; }, { /** * 搜索与表格分割线 */ COMPONENT_NAME: string; props: Readonly< LooseRequired<Readonly< ExtractPropTypes<{ readonly model: ObjectConstructor; readonly rules: { readonly type: PropType<Partial<Record<string, Arrayable<FormItemRule>>>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly labelPosition: EpPropFinalized<StringConstructor, "top" | "right" | "left", unknown, "right", boolean>; readonly requireAsteriskPosition: EpPropFinalized<StringConstructor, "right" | "left", unknown, "left", boolean>; readonly labelWidth: EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>; readonly labelSuffix: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>; readonly inline: BooleanConstructor; readonly inlineMessage: BooleanConstructor; readonly statusIcon: BooleanConstructor; readonly showMessage: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>; readonly validateOnRuleChange: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>; readonly hideRequiredAsterisk: BooleanConstructor; readonly scrollToError: BooleanConstructor; readonly scrollIntoViewOptions: { readonly type: PropType<EpPropMergeType<readonly [ObjectConstructor, BooleanConstructor], unknown, unknown>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly size: { readonly type: PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", unknown>>; /** 渲染包裹层 */ readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly disabled: BooleanConstructor; }>> & { onValidate?: ((prop: FormItemProp, isValid: boolean, message: string) => any) | undefined; }>>; emit: (event: "validate", prop: FormItemProp, isValid: boolean, message: string) => void; fields: FormItemContext[]; formSize: ComputedRef<"" | "default" | "small" | "large">; ns: { namespace: ComputedRef<string>; b: (blockSuffix?: string | undefined) => string; e: (element?: string | undefined) => string; m: (modifier?: string | undefined) => string; be: (blockSuffix?: string | undefined, element?: string | undefined) => string; em: (element?: string | undefined, modifier?: string | undefined) => string; bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string; bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string; is: { (name: string, state: boolean | undefined): string; (name: string): string; }; cssVar: (object: Record<string, string>) => Record<string, string>; cssVarName: (name: string) => string; cssVarBlock: (object: Record<string, string>) => Record<string, string>; cssVarBlockName: (name: string) => string; }; formClasses: ComputedRef<(string | { [x: string]: boolean | EpPropMergeType<StringConstructor, "top" | "right" | "left", unknown>; })[]>; getField: (prop: string) => FormItemContext | undefined; addField: (field: FormItemContext) => void; removeField: (field: FormItemContext) => void; resetFields: (props?: Arrayable<FormItemProp> | undefined) => void; clearValidate: (props?: Arrayable<FormItemProp> | undefined) => void; isValidatable: ComputedRef<boolean>; obtainValidateFields: (props: Arrayable<FormItemProp>) => FormItemContext[]; validate: (callback?: FormValidateCallback | undefined) => FormValidationResult; doValidateField: (props?: Arrayable<FormItemProp> | undefined) => Promise<boolean>; validateField: (props?: Arrayable<FormItemProp> | undefined, callback?: FormValidateCallback | undefined) => FormValidationResult; scrollToField: (prop: FormItemProp) => void; }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, { validate: (prop: FormItemProp, isValid: boolean, message: string) => boolean; }, VNodeProps & AllowedComponentProps & ComponentCustomProps & Readonly< ExtractPropTypes<{ readonly model: ObjectConstructor; readonly rules: { readonly type: PropType<Partial<Record<string, Arrayable<FormItemRule>>>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly labelPosition: EpPropFinalized<StringConstructor, "top" | "right" | "left", unknown, "right", boolean>; readonly requireAsteriskPosition: EpPropFinalized<StringConstructor, "right" | "left", unknown, "left", boolean>; readonly labelWidth: EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>; readonly labelSuffix: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>; readonly inline: BooleanConstructor; readonly inlineMessage: BooleanConstructor; readonly statusIcon: BooleanConstructor; readonly showMessage: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>; readonly validateOnRuleChange: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>; readonly hideRequiredAsterisk: BooleanConstructor; readonly scrollToError: BooleanConstructor; readonly scrollIntoViewOptions: { readonly type: PropType<EpPropMergeType<readonly [ObjectConstructor, BooleanConstructor], unknown, unknown>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly size: { readonly type: PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", unknown>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly disabled: BooleanConstructor; }>> & { onValidate?: ((prop: FormItemProp, isValid: boolean, message: string) => any) | undefined; }, { readonly disabled: boolean; readonly labelPosition: EpPropMergeType<StringConstructor, "top" | "right" | "left", unknown>; readonly requireAsteriskPosition: EpPropMergeType<StringConstructor, "right" | "left", unknown>; readonly labelWidth: EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>; readonly labelSuffix: string; readonly showMessage: EpPropMergeType<BooleanConstructor, unknown, unknown>; readonly validateOnRuleChange: EpPropMergeType<BooleanConstructor, unknown, unknown>; readonly inline: boolean; readonly inlineMessage: boolean; readonly statusIcon: boolean; readonly hideRequiredAsterisk: boolean; readonly scrollToError: boolean; }, true, {}, {}, { P: {}; B: {}; D: {}; C: {}; M: {}; Defaults: {}; }, Readonly< ExtractPropTypes<{ readonly model: ObjectConstructor; readonly rules: { readonly type: PropType<Partial<Record<string, Arrayable<FormItemRule>>>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly labelPosition: EpPropFinalized<StringConstructor, "top" | "right" | "left", unknown, "right", boolean>; readonly requireAsteriskPosition: EpPropFinalized<StringConstructor, "right" | "left", unknown, "left", boolean>; readonly labelWidth: EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>; readonly labelSuffix: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>; readonly inline: BooleanConstructor; readonly inlineMessage: BooleanConstructor; readonly statusIcon: BooleanConstructor; readonly showMessage: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>; readonly validateOnRuleChange: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>; readonly hideRequiredAsterisk: BooleanConstructor; readonly scrollToError: BooleanConstructor; readonly scrollIntoViewOptions: { readonly type: PropType<EpPropMergeType<readonly [ObjectConstructor, BooleanConstructor], unknown, unknown>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly size: { readonly type: PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", unknown>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly disabled: BooleanConstructor; }>> & { onValidate?: ((prop: FormItemProp, isValid: boolean, message: string) => any) | undefined; }, { /** * 搜索与表格分割线 */ COMPONENT_NAME: string; props: Readonly< LooseRequired<Readonly< ExtractPropTypes<{ readonly model: ObjectConstructor; readonly rules: { readonly type: PropType<Partial<Record<string, Arrayable<FormItemRule>>>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly labelPosition: EpPropFinalized<StringConstructor, "top" | "right" | "left", unknown, "right", boolean>; readonly requireAsteriskPosition: EpPropFinalized<StringConstructor, "right" | "left", unknown, "left", boolean>; readonly labelWidth: EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>; readonly labelSuffix: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>; readonly inline: BooleanConstructor; readonly inlineMessage: BooleanConstructor; readonly statusIcon: BooleanConstructor; readonly showMessage: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>; readonly validateOnRuleChange: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>; readonly hideRequiredAsterisk: BooleanConstructor; readonly scrollToError: BooleanConstructor; readonly scrollIntoViewOptions: { readonly type: PropType<EpPropMergeType<readonly [ObjectConstructor, BooleanConstructor], unknown, unknown>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly size: { readonly type: PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", unknown>>; /** 渲染包裹层 */ readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly disabled: BooleanConstructor; }>> & { onValidate?: ((prop: FormItemProp, isValid: boolean, message: string) => any) | undefined; }>>; emit: (event: "validate", prop: FormItemProp, isValid: boolean, message: string) => void; fields: FormItemContext[]; formSize: ComputedRef<"" | "default" | "small" | "large">; ns: { namespace: ComputedRef<string>; b: (blockSuffix?: string | undefined) => string; e: (element?: string | undefined) => string; m: (modifier?: string | undefined) => string; be: (blockSuffix?: string | undefined, element?: string | undefined) => string; em: (element?: string | undefined, modifier?: string | undefined) => string; bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string; bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string; is: { (name: string, state: boolean | undefined): string; (name: string): string; }; cssVar: (object: Record<string, string>) => Record<string, string>; cssVarName: (name: string) => string; cssVarBlock: (object: Record<string, string>) => Record<string, string>; cssVarBlockName: (name: string) => string; }; formClasses: ComputedRef<(string | { [x: string]: boolean | EpPropMergeType<StringConstructor, "top" | "right" | "left", unknown>; })[]>; getField: (prop: string) => FormItemContext | undefined; addField: (field: FormItemContext) => void; removeField: (field: FormItemContext) => void; resetFields: (props?: Arrayable<FormItemProp> | undefined) => void; clearValidate: (props?: Arrayable<FormItemProp> | undefined) => void; isValidatable: ComputedRef<boolean>; obtainValidateFields: (props: Arrayable<FormItemProp>) => FormItemContext[]; validate: (callback?: FormValidateCallback | undefined) => FormValidationResult; doValidateField: (props?: Arrayable<FormItemProp> | undefined) => Promise<boolean>; validateField: (props?: Arrayable<FormItemProp> | undefined, callback?: FormValidateCallback | undefined) => FormValidationResult; scrollToField: (prop: FormItemProp) => void; }, {}, {}, {}, { readonly disabled: boolean; readonly labelPosition: EpPropMergeType<StringConstructor, "top" | "right" | "left", unknown>; readonly requireAsteriskPosition: EpPropMergeType<StringConstructor, "right" | "left", unknown>; readonly labelWidth: EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>; readonly labelSuffix: string; readonly showMessage: EpPropMergeType<BooleanConstructor, unknown, unknown>; readonly validateOnRuleChange: EpPropMergeType<BooleanConstructor, unknown, unknown>; readonly inline: boolean; readonly inlineMessage: boolean; readonly statusIcon: boolean; readonly hideRequiredAsterisk: boolean; readonly scrollToError: boolean; }> | null>; handleSubmit: () => Promise<boolean>; handleReset: () => void; }, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, { "update:modelValue": (values: FieldValues) => void; submit: (values: FieldValues) => void; change: (values: FieldValues, column: PlusColumn) => void; reset: (values: FieldValues) => void; submitError: (errors: unknown) => void; validate: (...args: any[]) => void; }, string, { columns: PlusColumn[]; group: false | PlusFormGroupRow[]; modelValue: FieldValues; rules: Partial<Record<string, Arrayable<FormItemRule>>>; labelPosition: "top" | "right" | "left"; labelWidth: string | number; labelSuffix: string; hasLabel: boolean; defaultValues: FieldValues; rowProps: Partial<Mutable< RowProps>>; colProps: Partial<Mutable< ColProps>>; hasErrorTip: boolean; hasFooter: boolean; hasReset: boolean; submitText: string; resetText: string; submitLoading: boolean; footerAlign: "right" | "left" | "center";