Lay UI 表格数据分组树形展示

废话不说,直接上链接:

gitee地址:grouptable4layui: 基于layui的分组表格控件

csdn下载地址:JS_layui数据表格分组展示控件

虽然layui已经下架了,但是相信还是有很多伙伴在使用,但是layui table表格没有分组显示功能。grouptable对原layui table控件进行了扩展,增加了分组展示功能。

效果图如下:

页面代码如下:


    layui.config({
        base: context_path + 'plugins/layuiadmin/' //静态资源所在路径
    }).extend({
        grouptable: 'grouptable/grouptable'
    }).use(['table', 'form', 'layer', 'grouptable'], function () {

        var table = layui.table;
        var grouptable = layui.grouptable;
        ......
        grid = grouptable.render({
            ......
            defaultClose: false,//默认收拢
            groupLinkage: false,//展开时不自动展开下级
            groupCols: [//分组配置
                {field:"projUseDept",name:"项目甲方",tpl:"[#name#] = #value# <span style='color:red;'>(#count#)</span>"},
                {field:"projType",name:"项目状态",tpl:"[#name#] = #value# <span style='color:red;'>(#count#)</span>",valueFormat:function(v){
                    var map = {"601678460235d2e84aa45656690a4f1c":"正常","41E0DDB12A544C5D936B26CF5154619E":"审批中"};
                    return map.hasOwnProperty(v)?map[v]:v;
                }}
            ],
            cols: [
                ......
            ],
            ......
        });
        ......
    });

看一下文档注释,写的非常详细:

/**
 * name:grouptable【layui分组表格控件】
 * author:白西龙
 * description:
 *   layui分组表格控件,用于实现页面数据分组,并以树形结构显示
 *   1、支持多级分组;
 *   2、支持自定义分组标题;
 *   3、支持分组数据行数显示;
 *   4、所有行数据会增加属性:
 *      $treetype as [d|g] : 数据类型(d:数据;g:分组)
 *      $treeid : 数据分组ID(分组:父ID+id;数据:父ID+行号[不连续])
 *      $treepid : 父级分组ID(一级分组父ID为$ROOT)
 *      $index4all : 数据行号(从1开始,分组行不计数)
 *      $index4group : 组内数据行号(从1开始,分组行不计数)
 *      $treedepth : 属性结构层级(一级分组层级为0)
 *   5、支持展开全部expandAll/收拢全部foldAll
 * notice:
 *   1、不支持多级表头【未解决】;
 *   2、不支持懒加载【未解决】;
 *   3、不支持分页【未解决】;
 *   4、fixed-left显示问题:如果fixed列宽不够,则数据表中的分组描述语言会显示出来【已优化】;
 *   5、fixed表格不支持鼠标滚轮【已优化】;
 *   6、分组信息合并整行时,fixed-right不会合并【已优化】;
 *   7、分组信息合并整行时速度有点慢【已优化】;
 *   8、如果有numbers序号列,则第一列必须时序号列,其他列也可再增加【已优化】;
 *   9、不支持单元格换行显示【未解决】;
 *   10、不支持统计行【未解决】;
 *   11、fixed-left显示问题:拉宽fixed-left列后,分组标题无法自动计算宽度【已优化】;
 *   12、表格第一列用于分组显示,不支持templet【已优化】;
 * usage:
 *   1、引入js文件
 *   2、引入grouptable layui.use([grouptable])
 *   3、组织参数调用表格render方法 layui.grouptable.render(config typeof Object)
 *     config.defaultClose = true | false : 默认收起所有分组
 *     config.groupLinkage = true | false : 展开时是否同时展开下级
 *     config.groupCols = [groupInfo typeof Object ...] typeof Array : 分组信息定义
 *         groupInfo.field typeof String : 分组列名
 *         groupInfo.name typeof String : 分组描述
 *         groupInfo.tpl typeof String : 分组标题模板(支持html,内置三个转换项)
 *             #name# : 分组描述替换关键字
 *             #value# : 分组值替换关键字(如果定义valueFormat,则替换为转换结果)
 *             #count# : 分组数据行数
 *         groupInfo.valueFormat typeof Function : 分组值转换方法(function(v){return f(v) typeof String})
 *             v typeof String | Any : 分组值
 *             f(v) typeof String : 分组值转换后结果
 * example:
 *   projectGrid = grouptable.render({
 *      ...
 *      defaultClose: true,//默认收拢
 *      groupLinkage: false,//展开时不自动展开下级
 *      groupCols: [//分组配置
 *              {field:"projUseDept",name:"项目甲方",tpl:"[#name#] = #value# (<span style='color:red;'>#count#</span>)"},
 *              {field:"projType",name:"项目状态",tpl:"[#name#] = #value# (<span style='color:red;'>#count#</span>)",valueFormat:function(v){
 *                  var map = {"601678460235d2e84aa45656690a4f1c":"正常","41E0DDB12A544C5D936B26CF5154619E":"审批中"};
 *                  return map.hasOwnProperty(v)?map[v]:v;
 *              }}
 *      ],
 *      ...
 *   })
 *
 **/

 光看这份注释,已经了解基本使用方法了,接下来说下功能实现方案:

1、读取数据后,遍历数据信息,组织分组信息保存,并为数据增加树形分组相关属性;

2、重新定义所有序号列(type="numbers"),只为数据行加序号;

3、将添加了分组数据的数据用于加载表格数据;

4、加载表格完成后,为分组行合并整行单元格;

5、通过dom事件为fixed表格增加同步滚动方法;

6、参考treetable实现的分组展示功能;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Lay UI是一款基于前端框架layui进行二次封装的一套UI组件库,它集成了layui的核心功能并在此基础上进行了更进一步的扩展和优化。Lay UI提供了丰富、简洁、易用的UI组件,可以帮助开发者快速构建出美观、功能强大的界面。 Lay UI拥有丰富的组件库,包括表格、表单、按钮、导航、弹出层、进度条等常用组件,可以满足前端开发中的各种需求。而且Lay UI具有灵活的布局和自定义样式的能力,开发者可以根据自己的需求进行个性化定制。 另外,Lay UI还具备响应式布局的特性,可以适应不同设备的屏幕尺寸,保证在不同设备上都能有良好的显示效果。同时,Lay UI还支持性能优化,代码体积小,加载速度快,可以提高网页的性能和用户体验。 Lay UI还提供了丰富的开发文档和示例代码,方便开发者学习和使用。并且Lay UI还提供了大量主题皮肤可供选择,可以根据项目的需求进行切换,使界面更加美观。 总之,Lay UI是一套功能完善、易用性强的前端UI库,它可以大大提高开发效率,减少前端开发的重复工作,是前端开发者的一个很好的选择。 ### 回答2: Layui是一款轻量级的前端UI框架,它基于jQuery库开发,提供了丰富的UI组件和常用的功能模块,可以帮助开发者快速构建美观、交互丰富的Web界面。 Layui的优点主要有以下几个方面: 1. 简单易用:Layui提供了简洁明了的API接口和丰富直观的文档,使得开发者可以快速上手使用,并且能够快速构建出符合预期的界面效果。 2. 轻量高效:Layui的代码精简,并且依赖项较少,这使得它加载速度快、性能优越,可以提升网页加载速度,提高用户体验。 3. 组件丰富:Layui提供了丰富多样的UI组件,包括按钮、表单、表格、弹窗等等,这些组件能够满足大部分常见的界面需求,同时也支持自定义扩展,方便开发者根据实际需求进行二次开发。 4. 跨终端适配:Layui支持响应式布局,可以自动适配不同终端的设备,包括PC端和移动端,这样可以保证用户在不同设备上都能够获得良好的使用体验。 5. 模块化设计:Layui采用模块化设计的思想,将各个功能模块进行分离,每个模块都可以独立开发和使用,方便快速定位和解决问题。 总的来说,Layui是一款简单易用、轻量高效、功能丰富的前端UI框架,适用于各种规模的项目开发,能够帮助开发者快速构建出符合预期的界面效果,提高开发效率。 ### 回答3: Lay UI 是一个基于layui框架的前端UI库,它提供了丰富的组件和样式,帮助开发者快速地构建美观、功能强大的前端界面。 Lay UI 的核心特点之一是轻量级。它的体积较小,加载速度快,不会给页面带来过多的负担。此外,Lay UI 还采用模块化开发的方式,组件之间的解耦性很好,使用方便灵活。 Lay UI 提供了众多的组件,如表格、按钮、表单、下拉框、弹窗等等,这些组件都经过精心设计和调整,可以满足各类需求的前端开发。而且,Lay UI 还支持响应式布局,在不同设备上都能够完美展示Lay UI 还提供了丰富的主题选择,根据项目需要,可以切换不同的主题样式,使页面更具个性和美感。同时,Lay UI 还提供了丰富的扩展插件,如时间选择器、分页、图片预览等,可以帮助开发者更高效地完成各种功能。 总的来说,Lay UI 是一个功能强大、易用且美观的前端UI库,适用于各种Web应用的开发。无论是个人项目还是企业级应用,使用Lay UI 都能够提高开发效率,提供良好的用户体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值