我有一张表字段包括
id,topid,islast,money
通过id与topid来进行分级。
islast有两个值,0表示为不最后一级,1表示为最后一级。其中在向表中写数据的时候
只在islast=1那行里写。所有islast=0在数据库中的money都为0
但是在形成树形结构的时候。希望显示上级,上上级直到最上级的money为其下集
money的和
请问大神们应该如何处理呢。
我有一张表字段包括
id,topid,islast,money
通过id与topid来进行分级。
islast有两个值,0表示为不最后一级,1表示为最后一级。其中在向表中写数据的时候
只在islast=1那行里写。所有islast=0在数据库中的money都为0
但是在形成树形结构的时候。希望显示上级,上上级直到最上级的money为其下集
money的和
请问大神们应该如何处理呢。
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
可以使用jQuery来实现这个功能,以下是一个简单的示例:
$(function() {
// 创建一个树形结构
var tree = $('#tree').tree({
data: { id: 'id', topid: 'topid', islast: 'islast', money: 'money' },
onInit: function(node, data) {
if (data.islast === 1) {
node.data.money = sumMoney(data);
}
},
onClick: function(node, e) {
if (node.data.islast === 1) {
window.location.href = '/tree/' + node.data.id;
} else {
return false;
}
},
onNodeClick: function(node, e) {
if (node.data.islast === 1) {
window.location.href = '/tree/' + node.data.topid;
} else {
return false;
}
}
});
// 获取当前节点的金额和
function sumMoney(node) {
var total = 0;
for (var i = 0; i < node.children.length; i++) {
total += sumMoney(node.children[i]);
}
return total;
}
});
在这个示例中,我们首先创建了一个树形结构,并且在初始化时检查是否是最后一个节点(即islast为1),如果是,我们就计算出其子节点的总金额并设置给父节点的数据。然后我们在点击节点时调用sumMoney函数获取每个节点的金额,如果它是最后一个节点,则跳转到其顶级节点;如果不是,返回false以阻止默认行为。
请注意,这只是一个基本的示例,你可能需要根据你的具体需求进行修改。例如,你可能需要添加更多的逻辑来处理非根节点或递归地遍历整个树。