Skip to content
本文内容

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

解析节点的信息主要包含idpidchildren

如果你定义了Prop,那么工具就会通过你指定的Prop读取和写入。

如果你的这些信息获取方式比较复杂,那么你可以定义GetterSetter方法,来进行读取和写入。

direction

如果directiontrue,则工具的执行方向会先处理子节点,再处理当前节点。

该属性仅影响一下方法:

  • opBySearch
  • hasBySearch
  • getShakeBySearch
  • getOneNodePathBySearch

TreeFilterOpt

typescript
type TreeFilterOpt<T = any> = {
    /**
     * 默认false,父节点是否必须 需要匹配
     */
    parentMatch?: boolean
    /**
     * 默认false,子节点是否必须 需要匹配
     */
    childrenMatch?: boolean
} & TreeBaseOpt<T>

Released under the MIT License.