//选中当前节点的所有父级节点
node.checked = checked;
var pNode = node.parentNode;
for (; pNode != null; pNode = pNode.parentNode) {
if (!pNode.isRoot() && checked) {
pNode.set("checked", checked);
}
if (!checked && !this.halfChecked(node, checked)) {
pNode.set("checked", checked);
}
}
//当该节点有子节点时,将所有子节点选中
var checkChild = function checkChild(node, checked) {
if (!node.isLeaf()) {
node.expand();
// 遍历孩子
node.eachChild(function (n) {
n.set("checked", checked);
checkChild(n, checked);
});
}
};
checkChild(node, checked);
},
//半选中状态判断
halfChecked: function (node, checked) {
var pNode = node.parentNode;
var count = 0;
if (!pNode.isRoot()) {
pNode.eachChild(function (c) {
if (c.get("checked")) {
count++;
}
});
}
return(count > 0);
}
wechatDeptCheckBox:function(node, checked){
//选中当前节点的所有父级节点
node.checked = checked;
var pNode = node.parentNode;
for (; pNode != null && !pNode.isRoot(); pNode = pNode.parentNode) {
if (checked && this.fullChecked(pNode)) {
pNode.set("checked", checked);
}
if (!checked) {
pNode.set("checked", checked);
}
}
//当该节点有子节点时,将所有子节点选中
var checkChild = function checkChild(node, checked) {
if (!node.isLeaf()) {
node.expand();
// 遍历孩子
node.eachChild(function (n) {
n.set("checked", checked);
checkChild(n, checked);
});
}
};
checkChild(node, checked);
},
fullChecked: function (pNode) {
var count = 0;
var allCount = 0;
pNode.eachChild(function (c) {
if (undefined != c.get("checked") && c.get("checked")) {
count++;
}
allCount++;
});
return(count == allCount);
}