easyui的treegrid实现树型向上汇总功能
记录下如何在使用EasyUI的treegrid的情况下实现树型向上汇总功能。
首先是取出treegrid中的所有顶级节点。
var treeList = jQuery('#treegrid').treegrid('getChildren'); var treeListOnlyTopNodes = []; for (var i = 0; i < treeList.length; i++) { if (!treeList[i].pid) {
treeListOnlyTopNodes.push(treeList[i]); } } treeSum(treeListOnlyTopNodes);
然后是定义并实现treeSum函数。
function treeSum(treeList) { // console.log(treeList); for (var i = 0; i < treeList.length; i++) { sumMoneyToItsParent(treeList[i]); } }
最后是定义并实现sumMoneyToItsParent函数。
function sumMoneyToItsParent(item) { let sumMoney = 0; if (item.children && item.children.length) { for (let childItem of item.children) { sumMoneyToItsParent(childItem); sumMoney = (Number(sumMoney) + Number(childItem.comeMoney || 0)).toFixed(2); } item.comeMoney = sumMoney; jQuery('#treegrid').treegrid('refresh', item.id); } }
特别说明的是,因为EasyUI并没有实现数据驱动模型,因此需要使用treegrid提供的刷新行方法将汇总的数据更新到树表中。
"敏感的人特别懂事,只需要稍稍给点暗示,就能读懂背后的意思,所以从不让与人为难,只会为难自己。"
你要去做一个大人,不要回头,不要难过。