对树的查询操作

39 阅读1分钟
// 修改树的节点的状态
export function changeTreeMz(tree:any, mz:boolean) {
    tree.isMz = mz;
    (tree.children || []).forEach(function (i:any) {
        changeTreeMz(i, mz);
    });
}

// 遍历每一个节点
export function queryTreePostData(tree:any, filterFun:any) {
    let mz = filterFun(tree);
    if (mz) {
        changeTreeMz(tree, mz);
    }else {
        mz = (tree.children || []).filter(function (i:any) {
            return queryTreePostData(i, filterFun);
        }).length > 0;
        tree.isMz = mz;
    }
    return mz;
}
// 对树进行搜索
export function handleDataByQuery(data: any[], keyObj: any, ) {
    data = JSON.parse(JSON.stringify(data));
    data.forEach(function (item) {
        queryTreePostData(item, function (i: any) {
            return i.title.includes(keyObj.name);
        });
    });
    return data;
}