import { CascaderValueT, CascaderOptionT } from './types'; export interface CascaderNodeT { value: string | number; label?: string; depth: number; parent: CascaderNodeT | null; children: CascaderNodeT[]; isLeaf: boolean; fullLabel: string; fullPath: Array; disabled?: boolean; } export interface ColumnInfoT { value: string | number; label?: string; depth: number; isLeaf: boolean; isActive?: boolean; hasActiveChild?: boolean; parent: CascaderNodeT | null; fullLabel: string; fullPath: Array; disabled?: boolean; } export default class CascaderTree { root: CascaderNodeT; map: Map; leafNodes: Array; constructor(); /** 更新树结构,生成CascaderNodeT类型的数据 */ updateTree(options: Array, lazy?: boolean): void; /** 为指定父节点动态添加子节点(用于懒加载) */ addChildren(parentValue: string | number | null, children: Array, lazy?: boolean): void; getNode(val: string | number): CascaderNodeT | undefined; /** * 根据选中的叶子节点值获取级联选择器每栏应该渲染的数据 * @param val 选中的叶子节点值 * @param lazy 是否懒加载模式,懒加载下选中非叶子节点时额外追加其子列 * @returns 级联选择器每栏的数据 */ getPanelInfo(val: CascaderValueT | undefined, lazy?: boolean): ColumnInfoT[][]; /** * 根据当前选中的节点,获取当前列的信息 * @param node 当前选中的节点的父节点 * @param activeVal 当前选中的节点的value * @returns 当前节点的可选项数据 */ getColumnInfo(node: CascaderNodeT, activeVal?: Array): Array; getLeafNodes(): CascaderNodeT[]; }