coolbird8 2015-11-06 10:20 采纳率: 0%
浏览 604

关于形成树型表格,数据累加的问题

我有一张表字段包括
id,topid,islast,money

通过id与topid来进行分级。
islast有两个值,0表示为不最后一级,1表示为最后一级。其中在向表中写数据的时候
只在islast=1那行里写。所有islast=0在数据库中的money都为0

但是在形成树形结构的时候。希望显示上级,上上级直到最上级的money为其下集
money的和

请问大神们应该如何处理呢。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 17:15
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    可以使用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以阻止默认行为。

    请注意,这只是一个基本的示例,你可能需要根据你的具体需求进行修改。例如,你可能需要添加更多的逻辑来处理非根节点或递归地遍历整个树。

    评论

报告相同问题?