//handleTreeCheck是選中的節點
//treeNode是節點上的數據,是個對象
//treeNode.childMenuList是節點上的子節點,是個數組
function handleTreeCheck(el, a, treeNode) {
if (treeNode.checked) { //如果節點選中
//如果是最后一級節點數據,直接將數據推進authTableData中
if (treeNode.check_Child_State === -1) {
authTableData.push({
username: treeNode.name,
userid: treeNode.id,
});
} else {
//調用該函數並傳遞子節點數據
calleArr(treeNode.childMenuList);
function calleArr(array) {
//遍歷子節點上的數據
for (i in array) {
var data = array[i]; //得到每個節點
//如果該節點上有childMenuList,說明有子節點
if (data.childMenuList) {
//將子節點傳入該函數作為新參數再調一次
//如果需將每個子節點都組成新數組,寫在此處,這里只需要最后一級數據,所以不寫
calleArr(data.childMenuList);
} else {
//此處找到最里層的childMenuList數據,可以操作了
authTableData.push({
username: data.name,
userid: data.id,
});
}
}
}
}
//如果沒有被選中,需將authTableData中的數據過濾掉,道理同上
} else {
if (treeNode.check_Child_State === -1) {
authTableData = authTableData.filter(function (items) {
return items.userid !== treeNode.id;
});
} else {
calleArr1(treeNode.childMenuList);
function calleArr1(array) {
for (i in array) {
var data = array[i];
if (data.childMenuList) {
calleArr1(data.childMenuList); //自己調用自己
} else {
authTableData = authTableData.filter(function (items) {
return items.userid !== data.id;
});
}
}
}
}
}
//將數據填充到表格中
table.reload("auth_table", {
data: authTableData,
});
}