|
@@ -1,15 +1,27 @@
|
|
|
-import { CSSProperties, VNodeProps, VNode } from 'vue'
|
|
|
import {
|
|
|
- InputProps,
|
|
|
AutocompleteProps,
|
|
|
InputNumberProps,
|
|
|
CascaderProps,
|
|
|
CascaderNode,
|
|
|
CascaderValue,
|
|
|
- FormItemRule,
|
|
|
- ComponentSize
|
|
|
+ SwitchProps,
|
|
|
+ ComponentSize,
|
|
|
+ InputProps,
|
|
|
+ RateProps,
|
|
|
+ ColorPickerProps,
|
|
|
+ TransferProps,
|
|
|
+ RadioGroupProps,
|
|
|
+ RadioButtonProps,
|
|
|
+ CheckboxGroupProps,
|
|
|
+ DividerProps,
|
|
|
+ DatePickerProps,
|
|
|
+ FormItemProps as ElFormItemProps,
|
|
|
+ FormProps as ElFormProps,
|
|
|
+ TextareaProps,
|
|
|
+ CheckboxButtonProps
|
|
|
} from 'element-plus'
|
|
|
import { IEditorConfig } from '@wangeditor/editor'
|
|
|
+import { CSSProperties } from 'vue'
|
|
|
|
|
|
export interface PlaceholderModel {
|
|
|
placeholder?: string
|
|
@@ -53,35 +65,13 @@ type CamelCaseComponentName = keyof typeof ComponentNameEnum extends infer K
|
|
|
|
|
|
export type ComponentName = CamelCaseComponentName
|
|
|
|
|
|
-export interface InputComponentProps {
|
|
|
- maxlength?: number | string
|
|
|
- minlength?: number | string
|
|
|
- showWordLimit?: boolean
|
|
|
- placeholder?: string
|
|
|
- clearable?: boolean
|
|
|
- formatter?: (value: string | number) => string
|
|
|
- parser?: (value: string) => string
|
|
|
- showPassword?: boolean
|
|
|
- disabled?: boolean
|
|
|
- size?: ComponentSize
|
|
|
- prefixIcon?: string | JSX.Element
|
|
|
- suffixIcon?: string | JSX.Element
|
|
|
- type?: InputProps['type']
|
|
|
+export interface InputPasswordComponentProps {
|
|
|
+ strength?: boolean
|
|
|
+ style?: CSSProperties
|
|
|
+}
|
|
|
+
|
|
|
+export interface InputComponentProps extends Partial<InputProps> {
|
|
|
rows?: number
|
|
|
- autosize?: boolean | { Pows?: number; maxRows?: number }
|
|
|
- autocomplete?: string
|
|
|
- name?: string
|
|
|
- readonly?: boolean
|
|
|
- max?: number | string
|
|
|
- min?: number | string
|
|
|
- step?: number | string
|
|
|
- resize?: InputProps['resize']
|
|
|
- autofocus?: boolean
|
|
|
- form?: string
|
|
|
- label?: string
|
|
|
- tabindex?: string | number
|
|
|
- validateEvent?: boolean
|
|
|
- inputStyle?: string | CSSProperties | CSSProperties[] | string[]
|
|
|
on?: {
|
|
|
blur?: (event: FocusEvent) => void
|
|
|
focus?: (event: FocusEvent) => void
|
|
@@ -98,24 +88,7 @@ export interface InputComponentProps {
|
|
|
style?: CSSProperties
|
|
|
}
|
|
|
|
|
|
-export interface AutocompleteComponentProps {
|
|
|
- placeholder?: string
|
|
|
- clearable?: boolean
|
|
|
- disabled?: boolean
|
|
|
- valueKey?: string
|
|
|
- debounce?: number
|
|
|
- placement?: AutocompleteProps['placement']
|
|
|
- fetchSuggestions?: (queryString: string, callback: (data: string[]) => void) => void
|
|
|
- triggerOnFocus?: boolean
|
|
|
- selectWhenUnmatched?: boolean
|
|
|
- name?: string
|
|
|
- label?: string
|
|
|
- hideLoading?: boolean
|
|
|
- popperClass?: string
|
|
|
- popperAppendToBody?: boolean
|
|
|
- teleported?: boolean
|
|
|
- highlightFirstItem?: boolean
|
|
|
- fitInputWidth?: boolean
|
|
|
+export interface AutocompleteComponentProps extends Partial<AutocompleteProps> {
|
|
|
on?: {
|
|
|
select?: (item: any) => void
|
|
|
change?: (value: string | number) => void
|
|
@@ -130,23 +103,7 @@ export interface AutocompleteComponentProps {
|
|
|
style?: CSSProperties
|
|
|
}
|
|
|
|
|
|
-export interface InputNumberComponentProps {
|
|
|
- min?: number
|
|
|
- max?: number
|
|
|
- step?: number
|
|
|
- stepStrictly?: boolean
|
|
|
- precision?: number
|
|
|
- size?: ComponentSize
|
|
|
- readonly?: boolean
|
|
|
- disabled?: boolean
|
|
|
- controls?: boolean
|
|
|
- controlsPosition?: InputNumberProps['controlsPosition']
|
|
|
- name?: string
|
|
|
- label?: string
|
|
|
- placeholder?: string
|
|
|
- id?: string
|
|
|
- valueOnClear?: number | null | 'min' | 'max'
|
|
|
- validateEvent?: boolean
|
|
|
+export interface InputNumberComponentProps extends Partial<InputNumberProps> {
|
|
|
on?: {
|
|
|
change?: (currentValue: number | undefined, oldValue: number | undefined) => void
|
|
|
blur?: (event: FocusEvent) => void
|
|
@@ -319,64 +276,21 @@ export interface CascaderComponentProps {
|
|
|
style?: CSSProperties
|
|
|
}
|
|
|
|
|
|
-export interface SwitchComponentProps {
|
|
|
- disabled?: boolean
|
|
|
- loading?: boolean
|
|
|
- size?: ComponentSize
|
|
|
- width?: number | string
|
|
|
- inlinePrompt?: boolean
|
|
|
- activeIcon?: string | JSX.Element | null
|
|
|
- inactiveIcon?: string | JSX.Element | null
|
|
|
- activeText?: string
|
|
|
- inactiveText?: string
|
|
|
- activeValue?: boolean | string | number
|
|
|
- inactiveValue?: boolean | string | number
|
|
|
- name?: string
|
|
|
- validateEvent?: boolean
|
|
|
- beforeChange?: (value: boolean) => boolean | Promise<boolean>
|
|
|
+export interface SwitchComponentProps extends Partial<SwitchProps> {
|
|
|
on?: {
|
|
|
change?: (value: boolean | string | number) => void
|
|
|
}
|
|
|
style?: CSSProperties
|
|
|
}
|
|
|
|
|
|
-export interface RateComponentProps {
|
|
|
- max?: number
|
|
|
- size?: ComponentSize
|
|
|
- disabled?: boolean
|
|
|
- allowHalf?: boolean
|
|
|
- lowThreshold?: number
|
|
|
- highThreshold?: number
|
|
|
- colors?: string[] | Record<number, string>
|
|
|
- voidColor?: string
|
|
|
- disabledVoidColor?: string
|
|
|
- icons?: string[] | JSX.Element[] | Record<number, string | JSX.Element>
|
|
|
- voidIcon?: string | JSX.Element
|
|
|
- disabledVoidIcon?: string | JSX.Element
|
|
|
- showText?: boolean
|
|
|
- showScore?: boolean
|
|
|
- textColor?: string
|
|
|
- texts?: string[]
|
|
|
- scoreTemplate?: string
|
|
|
- clearable?: boolean
|
|
|
- id?: string
|
|
|
- label?: string
|
|
|
+export interface RateComponentProps extends Partial<RateProps> {
|
|
|
on?: {
|
|
|
change?: (value: number) => void
|
|
|
}
|
|
|
style?: CSSProperties
|
|
|
}
|
|
|
|
|
|
-export interface ColorPickerComponentProps {
|
|
|
- disabled?: boolean
|
|
|
- size?: ComponentSize
|
|
|
- showAlpha?: boolean
|
|
|
- colorFormat?: 'hsl' | 'hsv' | 'hex' | 'rgb' | 'hex' | 'rgb'
|
|
|
- predefine?: string[]
|
|
|
- validateEvent?: boolean
|
|
|
- tabindex?: number | string
|
|
|
- label?: string
|
|
|
- id?: string
|
|
|
+export interface ColorPickerComponentProps extends Partial<ColorPickerProps> {
|
|
|
on?: {
|
|
|
change?: (value: string) => void
|
|
|
activeChange?: (value: string) => void
|
|
@@ -384,30 +298,7 @@ export interface ColorPickerComponentProps {
|
|
|
style?: CSSProperties
|
|
|
}
|
|
|
|
|
|
-export interface TransferComponentProps {
|
|
|
- data?: any[]
|
|
|
- filterable?: boolean
|
|
|
- filterPlaceholder?: string
|
|
|
- filterMethod?: (query: string, item: any) => boolean
|
|
|
- targetOrder?: string
|
|
|
- titles?: string[]
|
|
|
- buttonTexts?: string[]
|
|
|
- renderContent?: (
|
|
|
- h: (type: string, props: VNodeProps | null, children?: string) => VNode,
|
|
|
- option: any
|
|
|
- ) => JSX.Element
|
|
|
- format?: {
|
|
|
- noChecked?: string
|
|
|
- hasChecked?: string
|
|
|
- }
|
|
|
- props?: {
|
|
|
- label?: string
|
|
|
- key?: string
|
|
|
- disabled?: string
|
|
|
- }
|
|
|
- leftDefaultChecked?: any[]
|
|
|
- rightDefaultChecked?: any[]
|
|
|
- validateEvent?: boolean
|
|
|
+export interface TransferComponentProps extends Partial<TransferProps> {
|
|
|
on?: {
|
|
|
change?: (
|
|
|
value: number | string,
|
|
@@ -434,20 +325,12 @@ export interface RadioOption {
|
|
|
name?: string
|
|
|
[key: string]: any
|
|
|
}
|
|
|
-export interface RadioGroupComponentProps {
|
|
|
- size?: ComponentSize
|
|
|
- disabled?: boolean
|
|
|
- textColor?: string
|
|
|
- fill?: string
|
|
|
- validateEvent?: boolean
|
|
|
- label?: string
|
|
|
- name?: string
|
|
|
- id?: string
|
|
|
+export interface RadioGroupComponentProps extends Partial<RadioGroupProps> {
|
|
|
options?: RadioOption[]
|
|
|
/**
|
|
|
* 数据源的字段别名
|
|
|
*/
|
|
|
- props: {
|
|
|
+ props?: {
|
|
|
label?: string
|
|
|
value?: string
|
|
|
disabled?: string
|
|
@@ -456,25 +339,17 @@ export interface RadioGroupComponentProps {
|
|
|
change?: (value: string | number | boolean) => void
|
|
|
}
|
|
|
slots?: {
|
|
|
- default?: (...args: any[]) => JSX.Element | null
|
|
|
+ default?: (...args: any[]) => JSX.Element[] | null
|
|
|
}
|
|
|
style?: CSSProperties
|
|
|
}
|
|
|
|
|
|
-export interface RadioButtonComponentProps {
|
|
|
- size?: ComponentSize
|
|
|
- disabled?: boolean
|
|
|
- textColor?: string
|
|
|
- fill?: string
|
|
|
- validateEvent?: boolean
|
|
|
- label?: string
|
|
|
- name?: string
|
|
|
- id?: string
|
|
|
+export interface RadioButtonComponentProps extends Partial<RadioButtonProps> {
|
|
|
options?: RadioOption[]
|
|
|
/**
|
|
|
* 数据源的字段别名
|
|
|
*/
|
|
|
- props: {
|
|
|
+ props?: {
|
|
|
label?: string
|
|
|
value?: string
|
|
|
disabled?: string
|
|
@@ -483,7 +358,7 @@ export interface RadioButtonComponentProps {
|
|
|
change?: (value: string | number | boolean) => void
|
|
|
}
|
|
|
slots?: {
|
|
|
- default?: (...args: any[]) => JSX.Element | null
|
|
|
+ default?: (...args: any[]) => JSX.Element[] | null
|
|
|
}
|
|
|
style?: CSSProperties
|
|
|
}
|
|
@@ -506,21 +381,12 @@ export interface CheckboxOption {
|
|
|
[key: string]: any
|
|
|
}
|
|
|
|
|
|
-export interface CheckboxGroupComponentProps {
|
|
|
- size?: ComponentSize
|
|
|
- disabled?: boolean
|
|
|
- min?: number
|
|
|
- max?: number
|
|
|
- label?: string
|
|
|
- textColor?: string
|
|
|
- fill?: string
|
|
|
- tag?: string
|
|
|
- validateEvent?: boolean
|
|
|
+export interface CheckboxGroupComponentProps extends Partial<CheckboxGroupProps> {
|
|
|
options?: CheckboxOption[]
|
|
|
/**
|
|
|
* 数据源的字段别名
|
|
|
*/
|
|
|
- props: {
|
|
|
+ props?: {
|
|
|
label?: string
|
|
|
value?: string
|
|
|
disabled?: string
|
|
@@ -529,35 +395,31 @@ export interface CheckboxGroupComponentProps {
|
|
|
change?: (value: string | number | boolean) => void
|
|
|
}
|
|
|
slots?: {
|
|
|
- default?: (...args: any[]) => JSX.Element | null
|
|
|
+ default?: (...args: any[]) => JSX.Element[] | null
|
|
|
}
|
|
|
style?: CSSProperties
|
|
|
}
|
|
|
|
|
|
-export interface DividerComponentProps {
|
|
|
- min?: number
|
|
|
- max?: number
|
|
|
- disabled?: boolean
|
|
|
- step?: number
|
|
|
- showInput?: boolean
|
|
|
- showInputControls?: boolean
|
|
|
- size?: ComponentSize
|
|
|
- inputSize?: ComponentSize
|
|
|
- showStops?: boolean
|
|
|
- showTooltip?: boolean
|
|
|
- formatTooltip?: (value: number) => string
|
|
|
- range?: boolean
|
|
|
- vertical?: boolean
|
|
|
- height?: string
|
|
|
- label?: string
|
|
|
- rangeStartLabel?: string
|
|
|
- rangeEndLabel?: string
|
|
|
- formatValueText?: (value: number) => string
|
|
|
- debounce?: number
|
|
|
- tooltipClass?: string
|
|
|
- placement?: string
|
|
|
- marks?: Record<number, string>
|
|
|
- validateEvent?: boolean
|
|
|
+export interface CheckboxButtonComponentProps extends Partial<CheckboxButtonProps> {
|
|
|
+ options?: CheckboxOption[]
|
|
|
+ /**
|
|
|
+ * 数据源的字段别名
|
|
|
+ */
|
|
|
+ props?: {
|
|
|
+ label?: string
|
|
|
+ value?: string
|
|
|
+ disabled?: string
|
|
|
+ }
|
|
|
+ on?: {
|
|
|
+ change?: (value: string | number | boolean) => void
|
|
|
+ }
|
|
|
+ slots?: {
|
|
|
+ default?: (...args: any[]) => JSX.Element[] | null
|
|
|
+ }
|
|
|
+ style?: CSSProperties
|
|
|
+}
|
|
|
+
|
|
|
+export interface DividerComponentProps extends Partial<DividerProps> {
|
|
|
on?: {
|
|
|
change?: (value: number) => void
|
|
|
input?: (value: number) => void
|
|
@@ -565,42 +427,7 @@ export interface DividerComponentProps {
|
|
|
style?: CSSProperties
|
|
|
}
|
|
|
|
|
|
-export interface DatePickerComponentProps {
|
|
|
- readonly?: boolean
|
|
|
- disabled?: boolean
|
|
|
- size?: ComponentSize
|
|
|
- editable?: boolean
|
|
|
- clearable?: boolean
|
|
|
- placeholder?: string
|
|
|
- startPlaceholder?: string
|
|
|
- endPlaceholder?: string
|
|
|
- type?:
|
|
|
- | 'year'
|
|
|
- | 'month'
|
|
|
- | 'date'
|
|
|
- | 'dates'
|
|
|
- | 'week'
|
|
|
- | 'datetime'
|
|
|
- | 'datetimerange'
|
|
|
- | 'daterange'
|
|
|
- | 'monthrange'
|
|
|
- format?: string
|
|
|
- popperClass?: string
|
|
|
- popperOptions?: Record<string, any>
|
|
|
- rangeSeparator?: string
|
|
|
- defaultValue?: Date | [Date, Date]
|
|
|
- defaultTime?: Date | [Date, Date]
|
|
|
- valueFormat?: string
|
|
|
- id?: string
|
|
|
- name?: string
|
|
|
- unlinkPanels?: boolean
|
|
|
- prefixIcon?: string | JSX.Element
|
|
|
- clearIcon?: string | JSX.Element
|
|
|
- validateEvent?: boolean
|
|
|
- disabledDate?: (date: Date) => boolean
|
|
|
- shortcuts?: Array<{ text: string; value: Date | Function }>
|
|
|
- cellClassName?: string | ((date: Date) => string | undefined)
|
|
|
- teleported?: boolean
|
|
|
+export interface DatePickerComponentProps extends Partial<DatePickerProps> {
|
|
|
on?: {
|
|
|
change?: (value: string | Date | number | string[]) => void
|
|
|
blur?: (event: FocusEvent) => void
|
|
@@ -737,16 +564,7 @@ export interface FormSetProps {
|
|
|
value: any
|
|
|
}
|
|
|
|
|
|
-export interface FormItemProps {
|
|
|
- labelWidth?: string | number
|
|
|
- required?: boolean
|
|
|
- rules?: FormItemRule | FormItemRule[]
|
|
|
- error?: string
|
|
|
- showMessage?: boolean
|
|
|
- inlineMessage?: boolean
|
|
|
- size?: ComponentSize
|
|
|
- for?: string
|
|
|
- validateStatus?: '' | 'error' | 'validating' | 'success'
|
|
|
+export interface FormItemProps extends Partial<ElFormItemProps> {
|
|
|
style?: CSSProperties
|
|
|
slots?: {
|
|
|
default?: (...args: any[]) => JSX.Element | null
|
|
@@ -791,8 +609,8 @@ export interface FormSchema {
|
|
|
| DatePickerComponentProps
|
|
|
| DateTimePickerComponentProps
|
|
|
| TimePickerComponentProps
|
|
|
- | EditorComponentProps
|
|
|
- | any
|
|
|
+ | InputPasswordComponentProps
|
|
|
+ | CheckboxButtonComponentProps
|
|
|
|
|
|
/**
|
|
|
* formItem组件属性,具体可以查看element-plus文档
|
|
@@ -825,12 +643,11 @@ export interface FormSchema {
|
|
|
optionApi?: any
|
|
|
}
|
|
|
|
|
|
-export interface FormProps {
|
|
|
+export interface FormProps extends Partial<ElFormProps> {
|
|
|
schema?: FormSchema[]
|
|
|
isCol?: boolean
|
|
|
model?: Recordable
|
|
|
autoSetPlaceholder?: boolean
|
|
|
isCustom?: boolean
|
|
|
- labelWidth?: string | number
|
|
|
[key: string]: any
|
|
|
}
|