// 使用 checked_data 修改树节点的 勾选状态
function renderTreeChecked(tree_data, checked_data) {
for (let node of tree_data) {
if (node.children) {
node.checked = checkTreeCheckedAll(node.children, checked_data);
renderTreeChecked(node.children, checked_data);
} else {
if (checked_data.includes(node.value)) {
node.checked = true;
} else {
node.checked = false;
}
}
}
}
// 检查树节点是否全选
function checkTreeCheckedAll(
tree_data = [],
checked_data = [],
checked_all = true
) {
for (let node of tree_data) {
if (node.children) {
checked_all = checkTreeCheckedAll(node.children, checked_data);
if (!checked_all) break;
} else {
if (!checked_data.includes(node.value)) {
checked_all = false;
break;
}
}
}
return checked_all;
}
// 获取树形结构数组全部value值
function getTreeAllValue(tree_data = [], values = []) {
for (let node of tree_data) {
if (node.children) {
getTreeAllValue(node.children, values);
} else {
values.push(node.value);
}
}
return values;
}