@extclp/vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
51 lines (50 loc) • 1.26 kB
TypeScript
export type Data = Record<string, any>;
export type CascaderValue = (string | number)[] | (string | number)[][];
export interface CascaderKeyConfig {
value?: string;
label?: string;
children?: string;
disabled?: string;
hasChild?: string;
}
export interface CascaderOptionState {
id: number;
parent: number;
value: string | number;
fullValue: string;
label: string;
fullLabel: string;
children: CascaderOptionState[];
disabled: boolean;
hasChild: boolean;
checked: boolean;
partial: boolean;
loading: boolean;
loaded: boolean;
error: boolean;
childrenLoaded: boolean;
data: Data;
}
export interface CascaderPanelSlots {
default?: (params: {
option: CascaderOptionState;
index: number;
selected: boolean;
canCheck: boolean;
hasChild: boolean;
}) => any;
label?: (params: {
option: CascaderOptionState;
index: number;
selected: boolean;
canCheck: boolean;
hasChild: boolean;
handleSelect: () => void;
}) => any;
}
export interface CascaderSlots extends CascaderPanelSlots {
prefix?: () => any;
suffix?: () => any;
control?: () => any;
empty?: () => any;
}