123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545 |
- import type { Component, RendererNode, VNode, CSSProperties } from 'vue'
- declare global {
- // BfForm types start
- declare type ComponentName =
- | 'Radio'
- | 'Checkbox'
- | 'Input'
- | 'Autocomplete'
- | 'InputNumber'
- | 'Select'
- | 'Cascader'
- | 'Switch'
- | 'Slider'
- | 'TimePicker'
- | 'DatePicker'
- | 'Rate'
- | 'ColorPicker'
- | 'Transfer'
- | 'Divider'
- | 'TimeSelect'
- | 'SelectV2'
- declare type ColProps = {
- span?: number
- xs?: number
- sm?: number
- md?: number
- lg?: number
- xl?: number
- tag?: string
- }
- declare type FormValueTypes = string | number | string[] | number[] | boolean | undefined
- declare type FormRules = {
- required?: boolean
- message?: string
- type?: string
- trigger?: 'blur' | 'change' | ['change', 'blur']
- validator?: (rule: any, value: FormValueTypes, callback: Fn) => void | boolean
- }
- declare type FormItemProps = {
- labelWidth?: string | number
- required?: boolean
- rules?: FormRules | FormRules[]
- error?: string
- showMessage?: boolean
- inlineMessage?: boolean
- style?: CSSProperties
- }
- declare type FormOptions = {
- label?: string
- value?: FormValueTypes
- disabled?: boolean
- key?: string | number
- children?: FormOptions[]
- [key: string]: any
- }
- declare type FormOptionsAlias = {
- labelField?: string
- valueField?: string
- }
- declare type BlurOrFocusEvent = (e: Event) => viod
- declare type ChangeEvent = (data: {
- value: FormValueTypes
- field: string
- model: Recordable
- }) => viod
- declare type RadioProps = {
- border?: boolean
- name?: string
- disabled?: boolean
- onChange?: ChangeEvent
- }
- declare type CheckboxProps = {
- border?: boolean
- name?: string
- indeterminate?: boolean
- disabled?: boolean
- checked?: boolean
- onChange?: ChangeEvent
- }
- declare type InputProps = {
- type?: 'text' | 'textarea'
- maxlength?: string | number
- minlength?: string | number
- showWordLimit?: boolean
- placeholder?: string
- clearable?: boolean
- disabled?: boolean
- showPassword?: boolean
- prefixIcon?: string | Component
- suffixIcon?: string | Component
- rows?: number = 5
- autosize?:
- | boolean
- | {
- minRows?: number
- maxRows?: number
- }
- autocomplete?: string
- name?: string
- readonly?: boolean
- onBlur?: BlurOrFocusEvent
- onFocus?: BlurOrFocusEvent
- onChange?: ChangeEvent
- onInput?: ChangeEvent
- onClear?: Fn
- slots?: {
- prefix?: boolean
- suffix?: boolean
- prepend?: boolean
- append?: boolean
- }
- }
- declare type AutocompleteProps = {
- placeholder?: string
- clearable?: boolean
- valueKey?: string
- disabled?: boolean
- icon?: string | Component
- debounce?: number
- placement?: 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end'
- fetchSuggestions?: (query: string, callback: Fn) => void
- popperClass?: string
- triggerOnFocus?: boolean
- name?: string
- selectWhenUnmatched?: boolean
- label?: boolean
- prefixIcon?: string
- suffixIcon?: string
- hideLoading?: boolean
- popperAppendToBody?: boolean
- highlightFirstItem?: boolean
- onSelect?: ChangeEvent
- change?: ChangeEvent
- slots?: {
- prefix?: boolean
- suffix?: boolean
- prepend?: boolean
- append?: boolean
- }
- }
- declare type InputNumberProps = {
- min?: number
- max?: number
- step?: number
- stepStrictly?: boolean
- precision?: number
- controls?: boolean
- controlsPosition?: 'top' | 'right'
- name?: string
- label?: string
- disabled?: boolean
- placeholder?: string
- }
- declare type SelectProps = {
- multiple?: boolean
- valueKey?: string
- clearable?: boolean
- collapseTags?: boolean
- disabled?: boolean
- multipleLimit?: number
- name?: string
- autocomplete?: string
- placeholder?: string
- filterable?: boolean
- allowCreate?: boolean
- filterMethod?: Fn
- remote?: boolean
- remoteMethod?: Fn
- loading?: boolean
- loadingText?: string
- noMatchText?: string
- noDataText?: string
- popperClass?: string
- reserveKeyword?: boolean
- defaultFirstOption?: boolean
- popperAppendToBody?: boolean
- automaticDropdown?: boolean
- clearIcon?: string | Component
- fitInputWidth?: boolean
- suffixIcon?: string | Component
- tagType?: ElementPlusInfoType
- onChange?: ChangeEvent
- onVisibleChange?: (val: boolean) => void
- onRemoveTag?: (val: string | number) => void
- onClear?: Fn
- onBlur?: BlurOrFocusEvent
- onFocus?: BlurOrFocusEvent
- slots?: {
- prefix?: boolean
- empty?: boolean
- }
- optionGroup?:
- | boolean
- | {
- label?: string
- disabled?: boolean
- }
- }
- declare type CascaderProps = {
- props?: {
- expandTrigger?: 'click' | 'hover'
- multiple?: boolean
- checkStrictly?: boolean
- emitPath?: boolean
- lazy?: boolean
- lazyLoad?: (node: Recordable, resolve: Fn) => void
- value?: string
- label?: string
- children?: string
- disabled?: string
- leaf?: string
- }
- placeholder?: string
- disabled?: boolean
- clearable?: boolean
- showAllLevels?: boolean
- collapseTags?: boolean
- separator?: string
- filterable?: boolean
- filterMethod?: (node: Recordable, keyword: string | number) => boolean
- debounce?: number
- beforeFilter?: (value: string) => boolean | PromiseRejectedResult
- popperClass?: string
- popperAppendToBody?: boolean
- onChange?: ChangeEvent
- onExpandChange?: (parents: Recordable) => viod
- onBlur?: BlurOrFocusEvent
- onFocus?: BlurOrFocusEvent
- onVisiblechange?: (val: boolean) => void
- onRemoveTag?: (data: Recordable) => viod
- slots?: {
- default?: boolean
- empty?: boolean
- }
- }
- declare type SwitchProps = {
- disabled?: boolean
- loading?: boolean
- width?: number
- inlinePrompt?: boolean
- activeIcon?: string | Component
- inactiveIcon?: string | Component
- activeText?: string
- inactiveText?: string
- activeValue?: boolean | string | number
- inactiveValue?: boolean | string | number
- activeColor?: string
- inactiveColor?: string
- borderColor?: string
- string?: string
- beforeChange?: () => boolean | PromiseRejectedResult
- onChange?: ChangeEvent
- }
- declare type SliderProps = {
- min?: number
- max?: number
- disabled?: boolean
- step?: number
- showInput?: boolean
- showInputControls?: boolean
- showStops?: boolean
- showTooltip?: boolean
- formatTooltip?: (value: number) => string
- range?: boolean
- vertical?: boolean
- height?: string
- label?: string
- debounce?: number
- tooltipClass?: string
- marks?: Recordable
- onChange?: ChangeEvent
- }
- declare type TimePickerProps = {
- readonly?: boolean
- disabled?: boolean
- editable?: boolean
- clearable?: boolean
- placeholder?: string
- startPlaceholder?: string
- endPlaceholder?: string
- isRange?: boolean
- arrowControl?: boolean
- align?: 'left' | 'center' | 'right'
- popperClass?: string
- rangeSeparator?: string
- format?: string
- defaultValue?: Date | string
- name?: string
- prefixIcon?: string | Component
- clearIcon?: string | Component
- disabledHours?: Fn
- disabledMinutes?: Fn
- disabledSeconds?: Fn
- onChange?: ChangeEvent
- onBlur?: BlurOrFocusEvent
- onFocus?: BlurOrFocusEvent
- }
- declare type DatePickerProps = {
- readonly?: boolean
- disabled?: boolean
- editable?: boolean
- clearable?: boolean
- placeholder?: string
- startPlaceholder?: string
- endPlaceholder?: string
- type?:
- | 'year'
- | 'month'
- | 'date'
- | 'dates'
- | 'datetime'
- | 'week'
- | 'datetimerange'
- | 'daterange'
- | 'monthrange'
- format?: string
- popperClass?: string
- rangeSeparator?: string
- defaultValue?: Date
- defaultTime?: Date[]
- valueFormat?: string
- name?: string
- unlinkPanels?: boolean
- prefixIcon?: string | Component
- clearIcon?: string | Component
- disabledDate?: (date: Date) => boolean
- shortcuts?: Recordable
- onChange?: ChangeEvent
- onBlur?: BlurOrFocusEvent
- onFocus?: BlurOrFocusEvent
- onCalendarChange?: (dates: [Date, Date]) => void
- slots?: {
- default?: boolean
- rangeSeparator?: boolean
- }
- }
- declare type RateProps = {
- max?: number
- disabled?: boolean
- allowHalf?: boolean
- lowThreshold?: number
- highThreshold?: number
- colors?: [string, string, string] | Recordable
- voidColor?: string
- disabledVoidColor?: string
- icons?: [string, string, string] | Recordable
- voidIcon?: string | Component
- disabledVoidIcon?: string | Component
- showText?: boolean
- showScore?: boolean
- textColor?: string
- texts?: string[]
- scoreTemplate?: string
- onChange?: ChangeEvent
- }
- declare type ColorPickerProps = {
- disabled?: boolean
- showAlpha?: boolean
- colorFormat?: 'hsl' | 'hsv' | 'hex' | 'rgb'
- popperClass?: string | Component
- predefine?: Recordable
- onChange?: ChangeEvent
- onActiveChange?: (color: string) => void
- }
- declare type TransferProps = {
- data?: {
- key?: string | number
- label?: string
- disabled?: boolean
- }[]
- filterable?: boolean
- filterPlaceholder?: string
- filterMethod?: Fn
- targetOrder?: 'original' | 'push' | 'unshift'
- titles?: [string, string]
- buttonTexts?: [string, string]
- renderContent?: (h: RendererNode, option: Recordable) => VNode | VNode[] | string
- format?: {
- noChecked?: string
- hasChecked?: string
- }
- props?: {
- key?: string
- label?: string
- disabled?: string
- }
- leftDefaultChecked?: Recordable
- rightDefaultChecked?: Recordable
- slots?: {
- leftFooter?: boolean
- rightFooter?: boolean
- }
- onChange?: ChangeEvent
- onLeftCheckChange?: (arr: string[] | number[]) => void
- onRightCheckChange?: (arr: string[] | number[]) => void
- }
- declare type DividerProps = {
- direction?: 'horizontal' | 'vertical'
- borderStyle?: CSSProperties
- contentPosition?: 'left' | 'right' | 'center'
- }
- declare type TimeSelectProps = {
- disabled?: boolean
- editable?: boolean
- clearable?: boolean
- placeholder?: string
- name?: string
- prefixIcon?: string | Component
- clearIcon?: string | Component
- start?: string
- end?: string
- step?: string
- minTime?: string
- maxTime?: string
- }
- declare type SelectV2Props = {
- multiple?: boolean
- disabled?: boolean
- valueKey?: string
- clearable?: boolean
- collapsetags?: boolean
- multiplelimit?: number
- name?: string
- autocomplete?: string
- placeholder?: string
- filterable?: boolean
- allowCreate?: boolean
- noDataText?: string
- popperClass?: string
- popperAppendToBody?: boolean
- popperOptions?: Recordable
- automaticDropdown?: boolean
- clearIcon?: string | Component
- height?: number
- scrollbarAlwaysOn?: boolean
- onChange?: ChangeEvent
- onVisibleChange?: (val: boolean) => void
- onRemoveTag?: (val: string | number) => void
- onClear?: () => void
- onBlur?: BlurOrFocusEvent
- onFocus?: BlurOrFocusEvent
- slots?: {
- default?: boolean
- empty?: boolean
- }
- }
- declare type FormSchema = {
- /**
- * @field form model key
- */
- field: string
- /**
- * @label form-item label
- */
- label?: string
- /**
- * @colProps ElCol props
- */
- colProps?: ColProps
- /**
- * @componentProps El Components props
- */
- componentProps?:
- | RadioProps
- | CheckboxProps
- | InputProps
- | AutocompleteProps
- | InputNumberProps
- | SelectProps
- | CascaderProps
- | SwitchProps
- | SliderProps
- | TimePickerProps
- | DatePickerProps
- | RateProps
- | ColorPickerProps
- | TransferProps
- | DividerProps
- | TimeSelectProps
- | SelectV2Props
- /**
- * @formItemProps form-item props
- */
- formItemProps?: FormItemProps
- /**
- * @component Component
- */
- component?: ComponentName
- /**
- * @value form model value
- */
- value?: FormValueTypes
- /**
- * @options Component options
- */
- options?: FormOptions[]
- /**
- * @optionsField option alias
- */
- optionsField?: FormOptionsAlias
- /**
- * @hidden form-item hidden
- */
- hidden?: boolean
- }
- // BfForm types end
- declare type BfFormSchema = FormSchema[]
- }
|