types(BfForm): Adding BfForm types

This commit is contained in:
陈凯龙 2021-12-12 13:27:21 +08:00
parent 58cb24d9f8
commit 184b468cd4
1 changed files with 94 additions and 2 deletions

View File

@ -1,4 +1,4 @@
import type { Component } from 'vue'
import type { Component, RendererNode, VNode, CSSProperties } from 'vue'
declare global {
// BfForm types start
@ -18,6 +18,7 @@ declare global {
| 'ColorPicker'
| 'Transfer'
| 'Divider'
| 'TimeSelect'
declare type ColProps = {
span?: number
@ -67,7 +68,11 @@ declare global {
declare type BlurOrFocusEvent = (e: Event) => viod
declare type ChangeEvent = (data: { value: FormValueTypes; model: Recordable }) => viod
declare type ChangeEvent = (data: {
value: FormValueTypes
field: string
model: Recordable
}) => viod
declare type RadioProps = {
border?: boolean
@ -371,10 +376,74 @@ declare global {
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 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
@ -388,11 +457,34 @@ declare global {
| TimePickerProps
| DatePickerProps
| RateProps
| ColorPickerProps
| TransferProps
| DividerProps
// formItemProps?: ElFormItem
/**
* @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
}