layui树形结构

       最近接触Layui框架,感觉还不错,就总结一下在使用layui的树形结构的使用。
       在官网上查看时发现关于layui的使用都是静态添加的代码,如果我想动态添加树形节点时遇到了很大的问题,官网的静态示例代码如下:
layui.use(['tree', 'layer'], function(){
  var layer = layui.layer
  ,$ = layui.jquery; 
  
  layui.tree({
    elem: '#demo1' //指定元素
    ,target: '_blank' //是否新选项卡打开(比如节点返回href才有效)
    ,click: function(item){ //点击节点回调
      layer.msg('当前节名称:'+ item.name + '<br>全部参数:'+ JSON.stringify(item));
      console.log(item);
    }
    ,nodes: [ //节点
      {
        name: '常用文件夹'
        ,id: 1
        ,alias: 'changyong'
        ,children: [
          {
            name: '所有未读(设置跳转)'
            ,id: 11
            ,href: 'http://www.layui.com/'
            ,alias: 'weidu'
          }, {
            name: '置顶邮件'
            ,id: 12
          }, {
            name: '标签邮件'
            ,id: 13
          }
        ]
      }, {
        name: '我的邮箱'
        ,id: 2
        ,spread: true
        ,children: [
          {
            name: 'QQ邮箱'
            ,id: 21
            ,spread: true
            ,children: [
              {
                name: '收件箱'
                ,id: 211
                ,children: [
                  {
                    name: '所有未读'
                    ,id: 2111
                  }, {
                    name: '置顶邮件'
                    ,id: 2112
                  }, {
                    name: '标签邮件'
                    ,id: 2113
                  }
                ]
              }, {
                name: '已发出的邮件'
                ,id: 212
              }, {
                name: '垃圾邮件'
                ,id: 213
              }
            ]
          }, {
            name: '阿里云邮'
            ,id: 22
            ,children: [
              {
                name: '收件箱'
                ,id: 221
              }, {
                name: '已发出的邮件'
                ,id: 222
              }, {
                name: '垃圾邮件'
                ,id: 223
              }
            ]
          }
        ]
      }
      ,{
        name: '收藏夹'
        ,id: 3
        ,alias: 'changyong'
        ,children: [
          {
            name: '爱情动作片'
            ,id: 31
            ,alias: 'love'
          }, {
            name: '技术栈'
            ,id: 12
            ,children: [
              {
                name: '前端'
                ,id: 121
              }
              ,{
                name: '全端'
                ,id: 122
              }
            ]
          }
        ]
      }
    ]
  });

     在nodes节点中就是我们需要添加的数据,可以看出来他是一个json数组形势,当我将数据拼接成上述的字符串进行传入时,发现它并不能动态的将它编译成所需的,反而是将字符串的每一个字符进行了解析。
    只好另找方法,在其官网的论坛上,发现有一人写的需要将字符串转为json数组,于是我将字符串转为json数组传入时发现还得不到预期结果,于是乎我想是否可以传入一个数组,于是乎按我的理解进行了拼接。
    代码如下:
function createTree(data) {
	var node = [];
	for (var i = 0; i< data.length; i++) {
		node.push({
			name:'' + data[i].name,
			id: data[i].id
		});
		if (data[i].vehicles.length > 0) {
			var child = [];
			for(var j = 0; j< data[i].vehicles.length; j++) {
				if(isOnLine(data[i].vehicles[j].vin)) {
					child.push({
					name:data[i].vehicles[j].number + '(在线)',
					id: data[i].vehicles[j].vin
					});
				} else {
					child.push({
					name:data[i].vehicles[j].number + '(离线)',
					id: data[i].vehicles[j].vin
					});
				}
				arr.push(data[i].vehicles[j]);
			}
			node[i].children = child;
		}
	}
将node节点传入便可显示树形结构图。
               写的有点仓促还请谅解




  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
layui 树形表格是一种基于layui框架的组件,可以将表格数据以树形结构的方式展示出来。 通过引入layui的相关资源文件,我们可以使用layui的treeTable模块来创建树形表格。 使用layui树形表格的步骤如下: 1. 引入layui的样式文件和脚本文件: ```html <link rel="stylesheet" href="layui/css/layui.css"> <script src="layui/layui.js"></script> ``` 2. 创建一个具有特定id的表格容器: ```html <table id="treeTable" lay-filter="demo"></table> ``` 3. 编写JavaScript代码来渲染树形表格: ```javascript layui.use('treeTable', function(){ var treeTable = layui.treeTable; // 渲染树形表格 treeTable.render({ elem: '#treeTable', data: data, // 表格数据 tree: { iconIndex: 2, // 树形图标的索引,默认为2 isPidData: true, // 是否是pid形式的数据,默认为false idName: 'id', // id字段的名称,默认为'id' pidName: 'parentId' // 父id字段的名称,默认为'parentId' }, cols: [ {field: 'name', title: '名称'}, // 表格列配置 {field: 'value', title: '值'} // 更多列... ] }); }); ``` 其中,`data`表示表格的数据,可以是一个数组,每个元素代表一条数据,还可以使用异步接口获取数据。 通过配置`tree`参数,可以设置树形相关属性,例如树形图标的索引、是否是pid形式的数据、id字段和父id字段的名称等。 `cols`参数用于配置表格的列,每个列的`field`表示数据对象的属性名,`title`表示表格列的标题。 通过以上步骤,我们就可以使用layui树形表格来展示数据,并实现树形结构的展开和折叠效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值