同步操作将从 uniqid/treetable-lay 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
实现layui的树形表格treeTable
在layui数据表格之上进行扩展实现。
下载module/treetable-lay整个文件夹,放在你的项目里面,然后使用模块加载的方式使用:
layui.config({
base: 'module/'
}).extend({
treetable: 'treetable-lay/treetable'
}).use(['treetable'], function () {
var treetable = layui.treetable;
});
<table id="table1" class="layui-table" lay-filter="table1"></table>
<script>
layui.use(['treetable'], function () {
var treetable = layui.treetable;
// 渲染表格
treetable.render({
treeColIndex: 1, // treetable新增参数
treeSpid: -1, // treetable新增参数
treeIdKey: 'id', // treetable新增参数
treePidKey: 'pid', // treetable新增参数
treeIsLeafKey: 'isleaf', // treetable新增参数
treeIsOpenKey: 'isopen', // treetable新增参数
treeDefaultClose: false, // treetable新增参数
treeLinkage: false, // treetable新增参数
treeNodeAsync: false, // 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
}
]
}
layui数据表格的所有参数都可以用,除此之外treetable新增的参数有:
参数 | 类型 | 是否必填 | 描述 |
---|---|---|---|
treeColIndex | int | 是 | 树形图标显示在第几列 |
treeSpid | object | 是 | 最上级的父级id |
treeIdName | string | 否 | id字段的名称 |
treePidName | string | 否 | pid字段的名称 |
treeDefaultClose | boolean | 否 | 是否默认折叠 |
treeLinkage | boolean | 否 | 父级展开时是否自动展开所有子级 |
treeNodeAsync | boolean | 否 | 是否异步加载模式 |
treeColIndex
树形图标(箭头和文件夹、文件的图标)显示在第几列, 索引值是cols数组的下标。
treeSpid
最上级的父级id,比如你可以规定pid为0或-1的是最顶级的目录。
treeIdKey
treetable是以id和pid字段来渲染树形结构的,如果你的数据没有id和pid字段,你可以指定id和pid字段的名称。
treePidKey
pid在你的数据字段中的名称。
treeDefaultClose
默认是全部展开的,如果需要默认全部关闭,加上treeDefaultClose:true即可。
treeLinkage
父级展开时是否自动展开所有子级
treeNodeAsync
是否是异步加载
不能使用分页功能,即使写了page:true,也会忽略该参数。
不能使用排序功能,不要开启排序功能。
table.reload()不能实现刷新,请参考demo的刷新。
除了文档上写的treetable.xxx的方法之外,其他数据表格的方法都使用table.xxx。
建议删除和修改请求完后台之后请刷新(重新渲染)表格,最好不要使用obj.delete方式删除。
全部展开
treetable.expandAll('#table1');
展开一层
treetable.expandOne('#table1');
全部折叠
treetable.foldAll('#table1');
折叠一层
treetable.foldOne('#table1');
通过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";
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。