layui数据表格

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: layui数据表格

一个能思想的人,才真是一个力量无边的人。——巴尔扎克

使用layui进行数据表格对接的时候,要注意数据请求和返回的格式

一定要多看文档

https://www.layui.com/doc/modules/table.html

例如我这里

<!-- 表格 -->
<table class="layui-hide" id="test-table-toolbar" lay-filter="test-table-toolbar"></table>
<script id="test-table-toolbar-toolbarDemo" type="text/html">
                        <!-- 头部工具栏 -->
                        <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="add">新增</a>
</script>
                    <script id="test-table-toolbar-barDemo" type="text/html">
                        <!-- 操作栏 -->
                        <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
                        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
                    <script class="table-cover-img" id="cover" type="text/html">
                        <!-- 封面列 -->
                        <img class="layedit-tool-image" alt="" src="{{d.cover}}"/>
</script>
                    <script class="table-category" id="row-category" type="text/html">
                        <!-- 分类列 -->
                        <a class="layui-btn layui-btn-primary" lay-event="chooseCategory">
                            <text id="coll-category">{{d.category?d.category:'请选择'}}</text>
                            <i class="layui-icon layui-icon-down"></i></a>
</script>

我们渲染成数据表格

layui.use(() => {
    var $ = layui.jquery
    , table = layui.table
    , dropdown = layui.dropdown
    , form = layui.form;
    table.render({
            elem: '#test-table-toolbar'
            , url: '/articleInfo/page'
            , parseData: function (res) { //res 即为原始返回的数据
                console.log(res)
                return {
                    "code": res.code, //解析接口状态
                    "msg": res.data.records.length ? res.msg : '暂无数据', //解析提示文本
                    "total": res.data.total, //解析数据长度
                    "data": res.data.records //解析数据列表
                };
            }
            , request: {    // 请求分页用的参数名
                pageName: 'page' //页码的参数名称,默认:page
                , limitName: 'size' //每页数据量的参数名,默认:limit
            }
            , response: {   // 数据响应格式
                statusName: 'code' //规定数据状态的字段名称,默认:code
                , statusCode: 200 //规定成功的状态码,默认:0
                , msgName: 'msg' //规定状态信息的字段名称,默认:msg
                , countName: 'total' //规定数据总数的字段名称,默认:count
                , dataName: 'data' //规定数据列表的字段名称,默认:data
            }
            // 额外附加参数
            , where: {orders: JSON.stringify([{column: 'gmt_create', asc: false}]), category: true} 
            , autoSort: false   // 禁用前端排序,使用后端排序
            , initSort: {     // 初始化前端显示排序状态
                field: 'gmtCreate' //排序字段,对应 cols 设定的各字段名
                , type: 'desc' //排序方式  asc: 升序、desc: 降序、null: 默认排序
            }
            , toolbar: '#test-table-toolbar-toolbarDemo'  // 顶部工具栏
            , title: '资讯列表'
            , cols: [
                [{
                    field: 'id',
                    title: 'ID',
                    width: 80,
                    hide: true        // 初始默认隐藏
                }, {
                    field: 'cover'      // 字段名
                    , title: '封面'     // 表头
                    , templet: '#cover'   // 指定自定义模板
                    , width: 70       // 宽度
                }, {
                    field: 'title',
                    title: '标题',
                    edit: 'text'      // 能直接在表格内编辑
                }, {
                    field: 'type'
                    , title: '类型'
                    , width: 60
                }, {
                    field: 'category',
                    title: '分组',
                    toolbar: '#row-category',   // 自定义工具栏
                    width: 140
                }, {
                    field: 'gmtCreate'
                    , title: '创建时间'
                    , width: 160
                    , sort: true
                }, {
                    field: 'gmtModified'
                    , title: '修改时间'
                    , width: 160
                    , sort: true        // 启用排序
                    , hide: true        // 初始隐藏
                }, {
                    title: '操作',
                    toolbar: '#test-table-toolbar-barDemo',   // 自定义工具栏
                    width: 150
                }]
            ],
            page: true        // 开启分页
        });
})

最后实现的效果为:

注意请求和响应数据格式,如果和layui规定的格式不一致,一定要进行手动配置parseDatarequestresponse

相关文章
|
JavaScript Java 数据格式
Layui数据表格(table)前后台交互
Layui数据表格(table)前后台交互
584 0
layUI数据表格可编辑扩展下拉框
layUI数据表格可编辑扩展下拉框
205 0
|
JavaScript
Layui数据表格嵌套文件上传按钮
Layui数据表格嵌套文件上传按钮
215 0
|
SQL 前端开发 API
关于ElementUI之动态树+数据表格+分页实例
关于ElementUI之动态树+数据表格+分页实例
206 0
|
数据库
ElementUI动态树,数据表格以及分页的实现
ElementUI动态树,数据表格以及分页的实现
|
7月前
|
JSON 前端开发 JavaScript
layui-数据表格的实现
`layui`是一个前端UI框架,本文档介绍了如何使用layui创建数据表格。首先展示了三张截图来预览效果,接着讲解了下载layui资源包并导入到项目中的步骤。然后,在新建的web项目中引入layui的CSS和JS文件。文档提供了模拟的JSON数据来展示表格内容。接下来,详细说明了数据表格的实现,包括注意事项和代码实现,强调了`table`标签的`id`与`script`中`elem`的匹配。此外,文档还涵盖了监听头部工具栏和工具条事件的方法,并展示了弹出层的实现,用于添加和编辑表格数据。最后,给出了完整的HTML源码示例。
127 0
LayUI数据表格复选框显示不居中问题
LayUI数据表格复选框显示不居中问题
|
数据格式
Layui数据表格templet的数据无法合计
在使用layui数据表格的时候,有一个列是使用templet,依据其他两个列数据计算得到。 在该列开启合计行,一直显示是0 。其他两列数据合计正常。 在社区和百度上寻找过答案,并没有相关介绍。 在解决了该问题后,写下这篇小记录。
379 0
|
前端开发 JavaScript
ElementUI之动态树+数据表格+分页2
ElementUI之动态树+数据表格+分页2
103 0