function isMZ(item: any, filterFun: (item: any) => boolean) {
let mz = filterFun(item)
if (!mz) {
// 如果未命中
// 此时为 group
item.children.forEach(function (item: any) {
mz = isMZ(item, filterFun)
})
item.isMZ = item.children.some((i: any) => i.isMZ)
return item.isMZ
}
item?.children?.forEach(function (item: any) {
item.isMZ = mz
})
item.isMZ = mz
return mz
}
function queryTreeData(treeData: any[], filterFun: (item: any) => boolean) {
const copyTreeData = deepCopy(treeData)
copyTreeData.forEach(function (item) {
isMZ(item, filterFun)
})
return filterSelectData(copyTreeData)
}
function filterSelectData(data: any[]): any[] {
if (!data || data.length === 0) return data
return data.filter(function (item) {
return item.isMZ
}).map(function (item: any) {
return {
...item,
children: filterSelectData(item.children)
}
})
}
function isMZ(item: any, filterFun: (item: any) => boolean) {
let mz = filterFun(item)
if (!mz) {
// 如果未命中
// 此时为 group
item.children.forEach(function (item: any) {
mz = isMZ(item, filterFun)
})
item.isMZ = item.children.some((i: any) => i.isMZ)
return item.isMZ
}
item?.children?.forEach(function (item: any) {
item.isMZ = mz
})
item.isMZ = mz
return mz
}