1.引入

<link rel="stylesheet" href="../layui/css/layui.css">
<script src="../layui/layui.js"></script>

2.页面代码

<div class="layui-card-body">
<table class="layui-hide" id="permission-table" lay-filter="permission-table"></table> <script type="text/html" id="permission-table-operate">
<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>
</div>
<script>
layui.use('table', function(){
var table = layui.table; table.render({
elem: '[lay-filter="permission-table"]',
url:'/permission/list.do',
where: {},
cellMinWidth: 80, //table的全局配置
size: 'lg',
skin: 'line',
//每页显示的条数
limit: 10,
//是否显示加载条
loading: true,
//解析服务器端返回的数据
parseData: function (res) {
/*if (res.code == 500) {
return false
}*/
return {
"code": res.code,
"msg": res.msg,
"count": res.data.total,
"data": res.data.rows
};
},
//重新规定返回的数据格式
response: {
//数据状态的字段名称
statusName: 'code',
statusCode: 200,
msgName: 'msg', //状态信息的字段名称
dataName: 'data', //数据详情的字段名称
countName: 'count' //数据条数的字段名称,用于 table
}, cols: [[{
field:'id', width:80, title: 'ID', sort: true, fixed: 'left'},
{field:'permissionname', title: '权限名称'},
{field:'url', title: '资源路径'},
{align:'center', fixed: 'right', toolbar: '#permission-table-operate'}
]],
page: true
});
});
</script>

3.控制层

使用R类作为返回数据格式的载体,permissionService层使用mybatis-plus的分页功能查询列表。

@Builder
@ToString
@AllArgsConstructor
public class R<T> implements Serializable { @Getter
@Setter
private int code = 200; @Getter
@Setter
private Object msg = "success"; @Getter
@Setter
private T data; public R(T data) {
super();
this.data = data;
}
}
@RestController
@RequestMapping("/permission")
public class PermissionController extends BaseController { @RequestMapping("/list.do")
public R findByPage(SysPermission permission, QueryPage queryPage) {
return new R<>(getData(permissionService.list(permission, queryPage)));
   }
public Map<String, Object> getData(IPage<?> page) {
Map<String, Object> data = new HashMap<>();
data.put("rows", page.getRecords());
data.put("total", page.getTotal());
return data;
}
}

4. 返回的数据

controller层返回的数据

R(code=200, msg=success,data={total=4, rows=

[SysPermission(id=1, permissionname=test111, url=/test111),

SysPermission(id=2, permissionname=test22, url=/test22),

SysPermission(id=3, permissionname=test33, url=/test33),

SysPermission(id=6, permissionname=test66, url=/test66)]})

页面接收到的数据

{"code":200,"msg":"success","data":{"total":4,"rows":

[{"id":1,"permissionname":"test111","url":"/test111"},

{"id":2,"permissionname":"test22","url":"/test22"},

{"id":3,"permissionname":"test33","url":"/test33"},

{"id":6,"permissionname":"test66","url":"/test66"}]}}

5.渲染结果

layui中使用自定义数据格式对数据表格进行渲染的更多相关文章

  1. layui中的submit提交本地数据在控制在输出为空数组(解决)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. layui中从子窗口传递数据到父窗口,第三个子弹层的值传给第二个弹层

    最近做一个项目的需要多个弹层,每个弹层中还需要数据传递, 经过测试,以下方法三个弹层才有效,如果只是有两个弹层,请用其它方法 大概如图,看图自己应该明白 如何在在b页面选择好的值传给a页面的问题,这个 ...

  3. 记一次LayUI中Table动态添加列数据

    这次在开发中遇到,有列数不固定的情况.废话不多说,先上图,在上代码. 下面上JS代码 function SearchData() { var dYear = $("#DYear") ...

  4. Layui使用心得(1)---- 数据表格

    前端的框架我了解的不是太多,现在在用Layui的框架开发.之后准备转向Vue和React 这一系列博客主要讲一些我使用的Layui的常用组件的心得,官方的网站讲解已经很详细了,这里我只是结合我的实际使 ...

  5. layui中获取全部提交的数据

    <form class="layui-form" action="">...........input textarea ......</fo ...

  6. 自己实现的数据表格控件(dataTable),支持自定义样式和标题数据、ajax等各种自定义设置以及分页自定义

    一.前言 也没什么好说的嘛,用了蛮多github上开源的能够实现dataTable功能的表格插件,不过都默认绑定样式啊,数据格式也设定的比较死,所以忍不住自己实现了一个简单的可自定义样式和自定义数据返 ...

  7. LayUI之table数据表格获取行、行高亮等相关操作

    前言 目前LayUI数据表格既美观有不乏一些实用功能.基本上表格应有的操作已经具备,LayUI作者[贤心]肯定是煞费苦心去优化,此处致敬.但是实话实话,如果单纯那数据表格功能来说,EasUI的数据表格 ...

  8. 【JAVA】JSP+layui框架 静态表格转化成数据表格

    <table lay-filter="demo" class="layui-table" id="excTable"> < ...

  9. jquery easy ui 1.3.4 数据表格(DataGrid)(8)

    8.1.创建DataGrid html代码 <table id="dg"></table> $("#dg").datagrid({ // ...

随机推荐

  1. Calendar类实现当前日期的日历

    package com.sxt.home1; import java.text.DateFormat; import java.text.ParseException; import java.tex ...

  2. Flask学习之十二 使用boostrap

    英文博客地址:http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xii-facelift 中文翻译地址:http://w ...

  3. MySQL常用函数大全讲解

    MySQL数据库中提供了很丰富的函数.MySQL函数包括数学函数.字符串函数.日期和时间函数.条件判断函数.系统信息函数.加密函数.格式化函数等.通过这些函数,可以简化用户的操作.例如,字符串连接函数 ...

  4. 异常处理之多重catch

    package com.sxt.exception.test1; import java.util.InputMismatchException; import java.util.Scanner; ...

  5. Python深入:Distutils发布Python模块

    Distutils可以用来在Python环境中构建和安装额外的模块.新的模块可以是纯Python的,也可以是用C/C++写的扩展模块,或者可以是Python包,包中包含了由C和Python编写的模块. ...

  6. 网上很多laravel中cookie的使用方法。

    https://blog.csdn.net/chen529834149/article/details/75244718 概述 Cookie的添加其实很简单,直接使用Cookie::make(),在使 ...

  7. selenium webdriver学习(三)------------执行js脚本

    selenium webdriver学习(三)------------执行js脚本 博客分类: Selenium-webdriver   在用selenium 1.X的时候常常会用到getEval() ...

  8. poj 1716 Integer Intervals(差分约束)

    1716 -- Integer Intervals 跟之前个人赛的一道二分加差分约束差不多,也是求满足条件的最小值. 题意是,给出若干区间,需要找出最少的元素个数,使得每个区间至少包含两个这里的元素. ...

  9. 添加SuperSocket的启动代码到 Windows Azure 的 WorkRole 项目

    与其它SuperSocket程序相同,启动代码同样也要写到程序的入口处,如 Windows Azure 的 WorkRole 项目的OnStart() 方法: public override bool ...

  10. javascript 宽度和高度

    宽度和高度 对于编写css代码时,宽度和高度就是width和height 但是在JavaScript中,还有其他的宽度和高度,比如offsetWidth,offsetHeight,clientX,cl ...