UNPKG

vue-jwhuang-ui

Version:

<p align="center"> <img width="200" src="https://www.jwhuang.site/resource/icon/logo.svg"> </p>

240 lines (239 loc) 17.6 kB
import { Options } from '../Input'; export type Type = 'text' | 'textarea' | 'password' | 'number' | 'select' | 'switch' | 'year' | 'yearrange' | 'month' | 'monthrange' | 'date' | 'daterange' | 'datetime' | 'datetimerange' | 'radio' | 'checkbox' | 'checkboxgroup' | 'cascader' | 'treeselect' | 'dict' | 'custom' | 'show'; export interface RenderFormProps { title?: string; cols?: number; hideFooter?: boolean; labelWidth?: number | string; labelPosition?: 'left' | 'right' | 'top'; size?: 'large' | 'small' | 'default'; fields: RenderFormItemProps[]; } export interface RenderFormItemProps { prop: string | string[]; type?: Type; label?: string; tips?: string; span?: string | number; required?: boolean; clearable?: boolean; disabled?: boolean | ((val?: any) => boolean); visiable?: boolean | ((val?: any) => boolean); placeholder?: string; options?: Options[] | Record<string, any>[] | (() => Options[]); multiple?: boolean; fieldNames?: Record<'label' | 'value', any>; code?: string; rules?: Record<string, any>[]; [key: string]: any; validator?: (rule: any, value: any, callback: any) => void; } type __VLS_Props = { modelValue: Record<string, any>; formConfig: RenderFormProps; }; declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<__VLS_Props, { reset: () => Promise<void>; validate: (callback: (val: object) => void) => void; clearValidate: () => Promise<void>; formatFormData: () => {}; }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & { reset: () => any; submit: (value: object) => any; "update:modelValue": (value: object) => any; }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{ onReset?: (() => any) | undefined; onSubmit?: ((value: object) => any) | undefined; "onUpdate:modelValue"?: ((value: object) => any) | undefined; }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, { formInstance: ({ $: import('vue').ComponentInternalInstance; $data: {}; $props: Partial<{ readonly disabled: boolean; readonly inline: boolean; readonly labelWidth: import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>; readonly labelPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "right" | "top" | "left", unknown>; readonly inlineMessage: boolean; readonly showMessage: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>; readonly requireAsteriskPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "right" | "left", unknown>; readonly labelSuffix: string; readonly validateOnRuleChange: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>; readonly statusIcon: boolean; readonly hideRequiredAsterisk: boolean; readonly scrollToError: boolean; }> & Omit<{ readonly disabled: boolean; readonly labelPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "right" | "top" | "left", unknown>; readonly requireAsteriskPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "right" | "left", unknown>; readonly labelWidth: import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>; readonly labelSuffix: string; readonly inline: boolean; readonly inlineMessage: boolean; readonly statusIcon: boolean; readonly showMessage: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>; readonly validateOnRuleChange: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>; readonly hideRequiredAsterisk: boolean; readonly scrollToError: boolean; readonly size?: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", unknown> | undefined; readonly rules?: Partial<Record<string, import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemRule>>> | undefined; readonly model?: Record<string, any> | undefined; readonly scrollIntoViewOptions?: import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [ObjectConstructor, BooleanConstructor], unknown, unknown> | undefined; onValidate?: ((prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => any) | undefined; } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "disabled" | "labelPosition" | "requireAsteriskPosition" | "labelWidth" | "labelSuffix" | "inline" | "inlineMessage" | "statusIcon" | "showMessage" | "validateOnRuleChange" | "hideRequiredAsterisk" | "scrollToError">; $attrs: { [x: string]: unknown; }; $refs: { [x: string]: unknown; }; $slots: Readonly<{ [name: string]: import('vue').Slot<any> | undefined; }>; $root: globalThis.ComponentPublicInstance | null; $parent: globalThis.ComponentPublicInstance | null; $host: Element | null; $emit: (event: "validate", prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => void; $el: any; $options: import('vue').ComponentOptionsBase<Readonly<globalThis.ExtractPropTypes<{ readonly model: ObjectConstructor; readonly rules: { readonly type: globalThis.PropType<Partial<Record<string, import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemRule>>>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly labelPosition: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "right" | "top" | "left", unknown, "right", boolean>; readonly requireAsteriskPosition: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "right" | "left", unknown, "left", boolean>; readonly labelWidth: import('element-plus/es/utils/index.mjs').EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>; readonly labelSuffix: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>; readonly inline: BooleanConstructor; readonly inlineMessage: BooleanConstructor; readonly statusIcon: BooleanConstructor; readonly showMessage: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>; readonly validateOnRuleChange: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>; readonly hideRequiredAsterisk: BooleanConstructor; readonly scrollToError: BooleanConstructor; readonly scrollIntoViewOptions: { readonly type: globalThis.PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [ObjectConstructor, BooleanConstructor], unknown, unknown>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly size: { readonly type: globalThis.PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", unknown>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly disabled: BooleanConstructor; }>> & { onValidate?: ((prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => any) | undefined; }, { validate: (callback?: import('element-plus').FormValidateCallback | undefined) => import('element-plus').FormValidationResult; validateField: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp> | undefined, callback?: import('element-plus').FormValidateCallback | undefined) => import('element-plus').FormValidationResult; resetFields: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp> | undefined) => void; clearValidate: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp> | undefined) => void; scrollToField: (prop: import('element-plus').FormItemProp) => void; fields: import('element-plus').FormItemContext[]; }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, { validate: (prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => void; }, string, { readonly disabled: boolean; readonly inline: boolean; readonly labelWidth: import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>; readonly labelPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "right" | "top" | "left", unknown>; readonly inlineMessage: boolean; readonly showMessage: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>; readonly requireAsteriskPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "right" | "left", unknown>; readonly labelSuffix: string; readonly validateOnRuleChange: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>; readonly statusIcon: boolean; readonly hideRequiredAsterisk: boolean; readonly scrollToError: boolean; }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & { beforeCreate?: ((() => void) | (() => void)[]) | undefined; created?: ((() => void) | (() => void)[]) | undefined; beforeMount?: ((() => void) | (() => void)[]) | undefined; mounted?: ((() => void) | (() => void)[]) | undefined; beforeUpdate?: ((() => void) | (() => void)[]) | undefined; updated?: ((() => void) | (() => void)[]) | undefined; activated?: ((() => void) | (() => void)[]) | undefined; deactivated?: ((() => void) | (() => void)[]) | undefined; beforeDestroy?: ((() => void) | (() => void)[]) | undefined; beforeUnmount?: ((() => void) | (() => void)[]) | undefined; destroyed?: ((() => void) | (() => void)[]) | undefined; unmounted?: ((() => void) | (() => void)[]) | undefined; renderTracked?: (((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[]) | undefined; renderTriggered?: (((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[]) | undefined; errorCaptured?: (((err: unknown, instance: globalThis.ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: globalThis.ComponentPublicInstance | null, info: string) => boolean | void)[]) | undefined; }; $forceUpdate: () => void; $nextTick: typeof import('vue').nextTick; $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R, args_2: import('@vue/reactivity').OnCleanup) => any : (args_0: any, args_1: any, args_2: import('@vue/reactivity').OnCleanup) => any, options?: import('vue').WatchOptions<boolean> | undefined): import('vue').WatchStopHandle; } & Readonly<{ readonly disabled: boolean; readonly inline: boolean; readonly labelWidth: import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>; readonly labelPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "right" | "top" | "left", unknown>; readonly inlineMessage: boolean; readonly showMessage: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>; readonly requireAsteriskPosition: import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "right" | "left", unknown>; readonly labelSuffix: string; readonly validateOnRuleChange: import('element-plus/es/utils/index.mjs').EpPropMergeType<BooleanConstructor, unknown, unknown>; readonly statusIcon: boolean; readonly hideRequiredAsterisk: boolean; readonly scrollToError: boolean; }> & Omit<Readonly<globalThis.ExtractPropTypes<{ readonly model: ObjectConstructor; readonly rules: { readonly type: globalThis.PropType<Partial<Record<string, import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemRule>>>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly labelPosition: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "right" | "top" | "left", unknown, "right", boolean>; readonly requireAsteriskPosition: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "right" | "left", unknown, "left", boolean>; readonly labelWidth: import('element-plus/es/utils/index.mjs').EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>; readonly labelSuffix: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>; readonly inline: BooleanConstructor; readonly inlineMessage: BooleanConstructor; readonly statusIcon: BooleanConstructor; readonly showMessage: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>; readonly validateOnRuleChange: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>; readonly hideRequiredAsterisk: BooleanConstructor; readonly scrollToError: BooleanConstructor; readonly scrollIntoViewOptions: { readonly type: globalThis.PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<readonly [ObjectConstructor, BooleanConstructor], unknown, unknown>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly size: { readonly type: globalThis.PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", unknown>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; readonly disabled: BooleanConstructor; }>> & { onValidate?: ((prop: import('element-plus').FormItemProp, isValid: boolean, message: string) => any) | undefined; }, "disabled" | "labelPosition" | "requireAsteriskPosition" | "labelWidth" | "labelSuffix" | "inline" | "inlineMessage" | "statusIcon" | "showMessage" | "validateOnRuleChange" | "hideRequiredAsterisk" | "scrollToError" | "validate" | "validateField" | "resetFields" | "clearValidate" | "scrollToField" | "fields"> & import('vue').ShallowUnwrapRef<{ validate: (callback?: import('element-plus').FormValidateCallback | undefined) => import('element-plus').FormValidationResult; validateField: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp> | undefined, callback?: import('element-plus').FormValidateCallback | undefined) => import('element-plus').FormValidationResult; resetFields: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp> | undefined) => void; clearValidate: (props?: import('element-plus/es/utils/typescript.mjs').Arrayable<import('element-plus').FormItemProp> | undefined) => void; scrollToField: (prop: import('element-plus').FormItemProp) => void; fields: import('element-plus').FormItemContext[]; }> & {} & import('vue').ComponentCustomProperties & {} & { $slots: { default?(_: {}): any; }; }) | null; }, any>, Partial<Record<any, (_: any) => any>>>; export default _default; type __VLS_WithTemplateSlots<T, S> = T & { new (): { $slots: S; }; };