转载layui树形表格

地址:https://whvse.gitee.io/treetable-lay/index.html

README.md

treetable-lay

 实现layui的树形表格treeTable

1.简介

 在layui数据表格之上进行扩展实现。

 还有一个BOM表结构的树形表格,树形表格2,欢迎查看。

2.使用方法

2.1.引入模块

 下载module/treetable-lay整个文件夹,放在你的项目里面,然后使用模块加载的方式使用:

layui.config({
    base: 'module/'
}).extend({
    treetable: 'treetable-lay/treetable'
}).use(['treetable'], function () {
    var treetable = layui.treetable;
    
});

2.2.渲染表格

<table id="table1" class="layui-table" lay-filter="table1"></table>

<script>
layui.use(['treetable'], function () {
    var treetable = layui.treetable;
    
    // 渲染表格
    treetable.render({
        treeColIndex: 2,          // treetable新增参数
        treeSpid: -1,             // treetable新增参数
        treeIdName: 'd_id',       // treetable新增参数
        treePidName: 'd_pid',     // treetable新增参数
        treeDefaultClose: true,   // treetable新增参数
        treeLinkage: true,        // treetable新增参数
        elem: '#table1',
        url: 'json/data1.json',
        cols: [[
            {type: 'numbers'},
            {field: 'id', title: 'id'},
            {field: 'name', title: 'name'},
            {field: 'sex', title: 'sex'},
            {field: 'pid', title: 'pid'},
        ]]
    });
});
</script>

注意:
  可以使用url传递数据,也可以使用data传递数据,如果使用url传递数据,参数是where字段, 跟layui数据表格的使用方式一致。


数据格式

  总而言之就是以id、pid的形式,不是以subMenus的形式,当然id、pid这两个字段的名称可以自定义:

{
  "code": 0,
  "msg": "ok",
  "data": [{
      "id": 1,
      "name": "xx",
      "sex": "male",
      "pid": -1
    },{
      "id": 2,
      "name": "xx",
      "sex": "male",
      "pid": 1
    }
  ]
}

2.3.参数说明

 layui数据表格的所有参数都可以用,除此之外treetable新增的参数有:

参数类型是否必填描述
treeColIndexint树形图标显示在第几列
treeSpidobject最上级的父级id
treeIdNamestringid字段的名称
treePidNamestringpid字段的名称
treeDefaultCloseboolean是否默认折叠
treeLinkageboolean父级展开时是否自动展开所有子级

treeColIndex

 树形图标(箭头和文件夹、文件的图标)显示在第几列, 索引值是cols数组的下标。

treeSpid

 最上级的父级id,比如你可以规定pid为0或-1的是最顶级的目录。

treeIdName

 treetable是以id和pid字段来渲染树形结构的,如果你的数据没有id和pid字段,你可以指定id和pid字段的名称。

treePidName

 pid在你的数据字段中的名称。

treeDefaultClose

 默认是全部展开的,如果需要默认全部关闭,加上treeDefaultClose:true即可。

treeLinkage

 父级展开时是否自动展开所有子级

2.4.注意事项

  • 不能使用分页功能,即使写了page:true,也会忽略该参数。

  • 不能使用排序功能,不要开启排序功能。

  • table.reload()不能实现刷新,请参考demo的刷新。

  • 除了文档上写的treetable.xxx的方法之外,其他数据表格的方法都使用table.xxx。

  • 建议删除和修改请求完后台之后请刷新(重新渲染)表格,最好不要使用obj.delete方式删除。

2.5.其他方法

全部展开

treetable.expandAll('#table1');

全部折叠

treetable.foldAll('#table1');

2.6.如何修改图标

  通过css来修改图标,content是图标的unicode字符。

修改文件夹图标:

/** 未展开 */
.treeTable-icon .layui-icon-layer:before {
    content: "\e638";
}

/** 展开 */
.treeTable-icon.open .layui-icon-layer:before {
    content: "\e638";
}

修改文件图标:

.treeTable-icon .layui-icon-file:before {
    content: "\e621";
}

修改箭头的图标:

/** 未展开 */
.treeTable-icon .layui-icon-triangle-d:before {
    content: "\e623";
}

/** 展开 */
.treeTable-icon.open .layui-icon-triangle-d:before {
    content: "\e625";
}

如何获取content:

2.7.截图

 树形表格1:

树形表格1

 树形表格2:

树形表格2

layui 树形表格是一种基于layui框架的组件,可以将表格数据以树形结构的方式展示出来。 通过引入layui的相关资源文件,我们可以使用layuitreeTable模块来创建树形表格。 使用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树形表格来展示数据,并实现树形结构的展开和折叠效果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值