Layui 数据表格 统计字段,非当前页

  1. layui统计当前页的某字段数量,需要两步
        var insTb = common.table.init({
            elem: '#inventoryTable',
            url: prefix + "/list",
            id: 'inventoryTable',
            toolbar: '#inventoryToolBar',
            modalName: "库存数量",
            totalRow: true,//第一步
            cols: [
                [
                    {type: 'checkbox'},
                    {
                        field: 'inventoryId',
                        title: '主键ID',
                        hide: true
                    },
                    {
                        field: 'productName',
                        title: '产品名称',
                        width: 250,
                        totalRowText:"合计:",
                    },
                    {
                        field: 'inventoryQty',
                        align: 'center',
                        title: '库存数量',
                        totalRow: true,//第二步
                    }
                ]
            ],
        });

2.但往往这不是我们想要的结果,如果要统计所有页某字段的数据,按照官方文档
https://www.layui.com/doc/modules/table.html

{
  "code": 0,
  "totalRow": {
    "score": "666"
    ,"experience": "999"
  },
  "data": [{}, {}],
  "msg": "",
  "count": 1000
}

啥意思? 就是说后台返回给前端的数据要按照这个格式。
具体需要步两步:
1.需要统计的那个字段,需要由后台传到前端,就是说要改变之前的接口,

public TableDataInfo list(Inventory inventory) {
        startPage();
        List<Inventory> list = aciWmsInventoryService.selectInventoryList(inventory);
        //根据条件把统计的数量查出来
        Inventory inventory1=aciWmsInventoryService.selectInventoryTotalRow(inventory);
        String totalRow=inventory1.getTotalRow();
        //这是后端定义的封装,返回端传数据
        return getDataTable_(list,totalRow);
    }
//之前是没有totalRow参数的,我加了个,对应TableDataInfo的实体类也要加totalRow的get set方法
    protected TableDataInfo getDataTable_(List<?> list,String totalRow) {
        TableDataInfo rspData = new TableDataInfo();
        rspData.setCode(0);
        rspData.setRows(list);
        rspData.setTotal(new PageInfo(list).getTotal());
        rspData.setTimestamp(DateUtil.current(false));
        rspData.setTotalRow(totalRow);
        return rspData;
    }

现在html页面控制台拿到的数据就是这样的了,
在这里插入图片描述
2.调整layui的数据格式

  var insTb = common.table.init({
            elem: '#inventoryTable',
            url: prefix + "/list",
            id: 'inventoryTable',
            toolbar: '#inventoryToolBar',
            modalName: "库存数量",
            totalRow: true,//第一步
            //第二步,将原始数据解析成 table 组件所规定的数据
            parseData: function(res){
                console.log(res)
                // 不同版本的layui关键字有所不同,
                //下面total可能是count,rows可能是data,
                //也可能 table.init()和table.render()的
                //关键字不一样,结合控制台打印的数据试一试
                return {
                    "code": res.code, //解析接口状态
                    "msg": res.msg, //解析提示文本
                    "total": res.total, //解析数据长度
                    "rows": res.rows, //解析数据列表
                    //定义合计的字段
                    "totalRow": {
                        "inventoryQty": res.totalRow
                    }
                };
            },
            cols: [
                [
                    {type: 'checkbox'},
                    {
                        field: 'inventoryId',
                        title: '主键ID',
                        hide: true
                    },
                    {
                        field: 'productName',
                        title: '产品名称',
                        width: 250,
                        totalRowText:"合计:",
                    },
                    {
                        field: 'inventoryQty',
                        align: 'center',
                        title: '库存数量',
                    }
                ]
            ],
        });

这样就ok了,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你关于LAYUI数据表格查询的问题。 LAYUI数据表格查询是基于JavaScript的一个开源前端UI框架,可以帮助开发者快速实现数据表格的展示和查询功能。你可以通过LAYUI提供的API接口,实现数据的排序、筛选、分页等功能。 具体来说,你可以通过以下步骤实现数据表格查询: 1. 在HTML页面中引入LAYUI相关的JS和CSS文件。 2. 在HTML页面中定义一个数据表格的容器,如<div id="table-container"></div>。 3. 在JavaScript中定义数据表格的配置信息,包括表头、数据源、分页等。 4. 调用LAYUI提供的API接口,实现数据表格的渲染和查询功能。 例如,你可以通过以下代码实现一个简单的数据表格查询: ``` layui.use('table', function(){ var table = layui.table; //定义数据表格的配置信息 var options = { elem: '#table-container', url: '/api/data', cols: [[ {field: 'id', title: 'ID'}, {field: 'name', title: '姓名'}, {field: 'age', title: '年龄'}, {field: 'email', title: '邮箱'} ]], page: true }; //渲染数据表格 table.render(options); //实现数据查询功能 $('#search-btn').on('click', function(){ var keyword = $('#keyword').val(); table.reload('table-container', { where: {name: keyword}, page: {curr: 1} }); }); }); ``` 在上述代码中,我们首先使用了LAYUI的table模块,定义了数据表格的配置信息。然后调用table.render()方法,渲染了数据表格。 接着,我们实现了一个查询按钮和一个关键词输入框,当用户点击查询按钮时,我们通过table.reload()方法重新加载数据,并传入了一个where参数,用于指定查询条件。这样就可以实现数据表格的查询功能了。 希望这个回答能够对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值