layerUI

layui树形表格treeTable

https://fly.layui.com/jie/30625/

https://gitee.com/whvse/treetable-lay

代码demo

// 加载列表树
    layui.config({
        base: '../../plugins/treeTable/'
      }).extend({
        treetable: 'treetable-lay/treetable'
    })
// 渲染表格
    layui.use(['treetable'], function () {
        var treetable = layui.treetable;
        // $.adapter_post(params, 'sys/user/getPointInfo', function (d) {
        //     if (d.status == "base-0001") {
        //       tabledata = flatten(d.data);
        //     }
        // })
        var tabledata=[
                {
                  "id": 1,
                  "name": "xx",
                  "sex": "male",
                  "pid": -1
                },
                {
                  "id": 2,
                  "name": "xx",
                  "sex": "male",
                  "pid": 1
                },
                {
                  "id": 3,
                  "name": "xx",
                  "sex": "male",
                  "pid": 1
                },
                {
                  "id": 4,
                  "name": "xx",
                  "sex": "male",
                  "pid": 1
                },
                {
                  "id": 5,
                  "name": "xx",
                  "sex": "male",
                  "pid": -1
                }
                
              ]
        // 渲染表格
        layer.load(2);
        treetable.render({
            treeColIndex: 0,
            treeSpid: -1,
            treeIdName: 'id',
            treePidName: 'pid',
            elem: '#tableList',
            data: tabledata,
            page: false,
            treeLinkage: false, //父级展开时是否自动展开所有子级
            treeDefaultClose: true, //全部关闭,默认是全部展开的
            cols: [[
                {field: 'name', title: 'name'},
            ]],
            done: function () {
                layer.closeAll('loading');
            }
        });
        
    });

html

<table id="tableList" class="table table-striped table-bordered dataTable no-footer"    >
		</table>

需要注意的地方:

           treeColIndex: 0,  //树形图标显示在第几列
            treeSpid: -1, //最上级的父级id,注意必须data中父ID的值,比如此demo中父ID名为pid,最上级的父ID值是-1
            treeIdName: 'id', //id字段的名称  可自定义
            treePidName: 'pid', //pid字段的名称 可自定义
            elem: '#tableList', //table的ID
            data: tabledata,//数据,注意数据格式[ ]

 

我踩的坑

执行时,总提示“ Maximum call stack size exceeded”

插件的下面代码陷入死循环

  // 对数据进行排序
            var sort = function (s_pid, data) {
                 console.log(data.length)
                for (var i = 0; i < data.length; i++) {
                    if (data[i].pid == s_pid) {
                        var len = mData.length;
                        if (len > 0 && mData[len - 1].id == s_pid) {
                            mData[len - 1].isParent = true;
                        }
                        mData.push(data[i]);
                       
                        sort(data[i].id, data);
                    }
                }
            };
            sort(param.treeSpid, tNodes);

原来是当id与pid值相等时就会不断执行 sort(data[i].id, data);

解决:让id与pid值不相等

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值