sard-uniapp
Version:
sard-uniapp 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库
70 lines (69 loc) • 2.26 kB
TypeScript
import { InjectionKey, type StyleValue } from 'vue';
export interface CascaderFieldKeys {
label?: string;
value?: string;
disabled?: string;
children?: string;
isLeaf?: string;
}
export interface CascaderOption {
label?: string;
value?: string | number;
disabled?: boolean;
children?: CascaderOption[];
isLeaf?: boolean;
[key: PropertyKey]: any;
}
export interface CascaderStateNode {
label: string;
value: string | number;
key: string | number;
disabled: boolean;
children?: CascaderStateNode[];
parent: CascaderStateNode | null;
isLeaf: boolean;
loadStatus: 'idle' | 'loading' | 'loaded';
depth: number;
indeterminate: boolean;
checked: boolean;
selected: boolean;
option: CascaderOption;
}
export type CascaderValue = string | number | (string | number)[] | (string | number)[][];
export interface CascaderProps {
rootStyle?: StyleValue;
rootClass?: string;
modelValue?: CascaderValue;
options?: CascaderOption[];
fieldKeys?: CascaderFieldKeys;
hintText?: string;
labelRender?: (option: CascaderOption) => string;
changeOnSelect?: boolean;
allLevels?: boolean;
multiple?: boolean;
checkStrictly?: boolean;
lazy?: boolean;
load?: (node?: CascaderStateNode) => Promise<CascaderOption[]> | CascaderOption[];
}
export declare const defaultCascaderProps: {
options: () => never[];
};
export interface CascaderSlots {
top?(props: {
tabIndex: number;
}): any;
}
export interface CascaderEmits {
(e: 'update:model-value', value: CascaderValue, selectedOptions: any[]): void;
(e: 'change', value: CascaderValue, selectedOptions: any[]): void;
(e: 'select', option: any, tabIndex: number): void;
}
export interface CascaderPanel {
nodes: CascaderStateNode[];
selected: CascaderStateNode | null;
}
export declare const defaultFieldKeys: CascaderFieldKeys;
export declare function getSelectedOptionsByValue(options: CascaderOption[], value: CascaderValue, fieldKeys: Required<CascaderFieldKeys>, multiple?: boolean): CascaderOption[] | CascaderOption[][] | undefined;
export declare const cascaderOptionsContextSymbol: InjectionKey<{
set: (options: CascaderOption[]) => void;
}>;