Tree节点配置类型
TreeBaseOpt
typescript
type TreeBaseOpt<T = any> = {
/**
* 使用`key`解析时
*/
idProp?: string;
pidProp?: string;
childrenProp?: string;
/**
* 使用`func`解析时
*/
idGetter?: (treeNode: T) => any;
idSetter?: (treeNode: T, value: any) => void;
pidGetter?: (treeNode: T) => string;
pidSetter?: (treeNode: T, value: any) => void;
childrenGetter?: (treeNode: T) => T[] | undefined;
childrenSetter?: (treeNode: T, value: any) => void;
/**
* 是否深拷贝
*/
deepClone?: boolean;
/**
* 深拷贝函数
* 默认`JSON.parse(JSON.stringify(data))`
*/
deepCloneFunc?: (d: T[]) => T[] | undefined;
/**
* 当传参错误时是否警告
*/
worn?: boolean;
direction?: boolean;
};Prop & Getter & Setter
解析节点的信息主要包含id、pid、children。
如果你定义了Prop,那么工具就会通过你指定的Prop读取和写入。
如果你的这些信息获取方式比较复杂,那么你可以定义Getter、Setter方法,来进行读取和写入。
direction
如果direction为true,则工具的执行方向会先处理子节点,再处理当前节点。
该属性仅影响一下方法:
opBySearchhasBySearchgetShakeBySearchgetOneNodePathBySearch
TreeFilterOpt
typescript
type TreeFilterOpt<T = any> = {
/**
* 默认false,父节点是否必须 需要匹配
*/
parentMatch?: boolean;
/**
* 默认false,子节点是否必须 需要匹配
*/
childrenMatch?: boolean;
} & TreeBaseOpt<T>;