layui 表格前后端总结

@PostMapping("findAll")
    @ResponseBody
    public Layui findAll(Param param){
        QueryWrapper<EduTeacher> wrapper = new QueryWrapper<>();
        Page<EduTeacher> page = new Page<>(param.getPage(),param.getLimit());

        if(param.getA() != null && param.getA() != "") {
            wrapper.eq("name",param.getA());
        }

        eduTeacherService.page(page,wrapper);
        //List<EduTeacher> list = eduTeacherService.list(wrapper);
        List<EduTeacher> records = page.getRecords();
        long total = page.getTotal();
        Layui data = Layui.data(Math.toIntExact(total),records);
        return data;
    }

    @PostMapping("delete")
    @ResponseBody
    public String delete(@RequestBody Param param){
        QueryWrapper<EduTeacher> wrapper = new QueryWrapper<>();
        if(param.getName() != null && param.getName() != "") {
            wrapper.eq("name",param.getName());
        }
        boolean result = eduTeacherService.remove(wrapper);
        return "delete success";
    }

  

layui工具类

package com.baomidou.springboot.util;

import java.util.HashMap;
import java.util.List;

public class Layui  extends HashMap<String, Object> {

    public static Layui data(Integer count, List<?> data){
        Layui r = new Layui();
        r.put("code", 0);
        r.put("msg", "");
        r.put("count", count);
        r.put("data", data);
        return r;
    }
}

  

html

<form class="layui-form layui-row layui-col-space16">
    <div class="layui-col-md4">
        <div class="layui-input-wrap">
            <div class="layui-input-prefix">
                <i class="layui-icon layui-icon-username"></i>
            </div>
            <input type="text" name="A" value="" placeholder="Field A" class="layui-input" lay-affix="clear">
        </div>
    </div>
    <div class="layui-col-md4">
        <div class="layui-input-wrap">
            <input type="text" name="B" placeholder="Field B" lay-affix="clear" class="layui-input">
        </div>
    </div>
    <div class="layui-col-md4">
        <div class="layui-input-wrap">
            <div class="layui-input-prefix">
                <i class="layui-icon layui-icon-date"></i>
            </div>
            <input type="text" name="C" readonly placeholder="Field C" class="layui-input demo-table-search-date">
        </div>
    </div>
    <div class="layui-btn-container layui-col-xs12">
        <button class="layui-btn" lay-submit lay-filter="demo-table-search" id="search">Search</button>
        <button type="reset" class="layui-btn layui-btn-primary">Clear</button>
    </div>
</form>
<table class="layui-hide" id="ID-table-demo-search"></table>

  表格渲染重载

layui.use(function(){
        var table = layui.table;
        var form = layui.form;
        var laydate = layui.laydate;
        // 创建表格实例
        table.render({
            elem: '#ID-table-demo-search',
            url: 'http://localhost:8001/findAll', // 此处为静态模拟数据,实际使用时需换成真实接口
            method: 'post',
            cols: [[
                {type: 'radio', title: '😊', fixed: true}, // 单选框
                {field:'id', title: 'ID', width:280, sort: true, fixed: true},
                {field:'name', title: '用户名', width:180},
                {field:'intro', title: '性别', width:280, sort: true},
                {field:'career', title: '城市', width:280},
                {field:'level', title: '签名',width:280},
                {field:'gmtCreate', title: '积分', sort: true, width:280},
                {fixed: 'right', title:'操作', width: 134, minWidth: 125, toolbar: '#barDemo'}
            ]],
            page: {
                curr: 1
            },

        });

        //监听行工具事件
        table.on('tool(ID-table-demo-search)', function(obj){
            var row = obj.data;
            //data 表示的是本行的数据,可以获取其属性的值
            if(obj.event === 'del'){
                debugger
                layer.confirm('确认删除' + row.name + "吗?", {icon: 3, title:'提示'}, function(index){

                    $.post({
                        url: 'http://localhost:8001/delete',
                        data: JSON.stringify({name: row.name}),
                        contentType: 'application/json;charset=utf-8',
                        success: function(res) {

                            $('#search').trigger("click");
                            console.log(res);
                        },
                        error: function(xhr, status, error) {
                            alert("没掉")
                            console.log(xhr);
                            console.log(status);
                            console.log(error);
                        }
                    });



                    layer.close(index);
                });

            } else if(obj.event === 'edit'){
                //layui的弹出层
                layer.prompt({
                    formType: 0
                    //输入框类型,支持0(文本)默认1(密码)2(多行文本)
                    ,value: data.adminPassword
                    ,title: '修改主题'
                }, function(value, index){
                    location.href="AdminServlet?method=update&newpass="+value+"&uid="+data.adminId;
                });
            }
        });


        // 日期
        laydate.render({
            elem: '.demo-table-search-date'
        });
        // 搜索提交
        form.on('submit(demo-table-search)', function(data){

            debugger
            var defaulPage = 1
       // 获取当前页码如果存在就赋值,不存在默认取第一页
            var htmlContent = $(".layui-laypage-curr em").text();

            if(htmlContent) {
                defaulPage = htmlContent
            }
            console.log("页码",defaulPage)
            var field = data.field; // 获得表单字段
            // 执行搜索重载
            table.reload('ID-table-demo-search', {
                page: {
                    curr: defaulPage 
                },
                where: field // 搜索的字段
            });
            layer.msg('搜索成功<br>此处为静态模拟数据,实际使用时换成真实接口即可');
            return false; // 阻止默认 form 跳转
        });
    });

  表格行里面的操作列:

<script type="text/html" id="barDemo">
    <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>

  

posted @ 2024-01-28 10:17  sgj191024  阅读(47)  评论(0编辑  收藏  举报