bootstrap-table(一)树状表(tree-grid)

xiaoxiao2021-02-28  38

因为项目有一个接口是多级组织架构的,所以需求是使用树状图表展示,然后表格控件用的bootstrap-table,通过官网的扩展地址找到了tree-grid 这个功能。

扩展地址:bootstrap-table扩展 建议经常使用这个控件的人fork

使用方法官网有,但是我这里还是贴一下,有一点提示大家:关系id 和 pid 是number数据类型,如果后台给的是string类型,记得转换一下,不然是不能成功的,我就吃了这个亏,虽然也是我自个没看清

(道个歉,我自己的不严谨,耽误了小伙伴们的时间!!!)

不过这个可以通过修改源码达到目的bootstrap-table-treegrid,修改为:

onCheckRoot: function (row, data) { var that = this; if (row[that.options.parentIdField] == '0') { return true; } else { return false; } }

引用的各类文件我就不贴了,大家记得参考一下官网扩展代码:tree-grid

var $table = $('#table'); $(function() { $table.bootstrapTable({ url: '../json/treegrid.json', height: $(window).height(), striped: true, sidePagination: 'server', //这里是标志id 和 parentIdField有关系 idField: 'id', columns: [ { field: 'ck', checkbox: true }, { field: 'name', title: '名称' }, { field: 'status', title: '状态', sortable: true, align: 'center', formatter: 'statusFormatter' }, { field: 'permissionValue', title: '权限值' } ], //最主要的就是下面 定义哪一列作为展开项 定义父级标志 这里是pid //定义的列一定是要在表格中展现的 换言之就是上方有这个列 不然报错 treeShowField: 'name', parentIdField: 'pid', onLoadSuccess: function(data) { $table.treegrid({ initialState: 'collapsed', treeColumn: 1, expanderExpandedClass: 'glyphicon glyphicon-minus', expanderCollapsedClass: 'glyphicon glyphicon-plus', onChange: function() { $table.bootstrapTable('resetWidth'); } }); } }); }); // 格式化类型 function typeFormatter(value, row, index) { if (value === 'menu') { return '菜单'; } if (value === 'button') { return '按钮'; } if (value === 'api') { return '接口'; } return '-'; } // 格式化状态 function statusFormatter(value, row, index) { if (value === 1) { return '<span class="label label-success">正常</span>'; } else { return '<span class="label label-default">锁定</span>'; } }

下面是效果图,我个人觉得还是很OK的:

转载请注明原文地址: https://www.6miu.com/read-2632583.html

最新回复(0)