layui前端

1.全查功能

<div class="layui-container">
    <div class="layui-row">
        <div class="layui-col-md9 layui-col-md-offset2">
        <table id="demo" lay-filter="test"></table>
            <button class="layui-btn" lay-event="add" id="addUserBtn">添加</button>
        </div>
    </div>
</div>

交互

<script>
    var table;
    var $ ;
    var layer;
    var form;
    layui.use(["table","layer","jquery","form"],function (){
        table = layui.table;
        layer = layui.layer;
        $ = layui.jquery;
        form = layui.form;
        //zhanshi
        table.render({
            elem: '#demo'
            ,height: 312
            ,url: "/user/findall" //数据接口
            ,page:true
            ,limit:5
            ,limits:[5,10,15,20]
            ,cols: [[ //表头
                  {field: 'id', title: 'ID', sort: true},
                {field: 'username', title: '用户名'},
                {field: 'password', title: '密码'},
                {field: 'phone', title: '电话'},
                {field: 'createTime', title: '日期'},
                {field:"sex",title:"性别",templet:function (d){
                        return d.sex==1?"男":"女"
                    }},
                {title:"操作", templet:function (d){
                        let str="<a lay-event=\"entir\" class=\"layui-btn layui-btn-xs layui-btn-warm\">编辑</a>";
                        str+="<a lay-event=\"delete\" class=\"layui-btn layui-btn-xs layui-btn-danger\">删除</a>";
                        return str;
                    }
                },
            ]]

        });
 </script>

2.添加

        $("#addUserBtn").click(function (){
            layer.open({
                type:2,
                title:"tianjia",
                area:['400px','500px'],
                content:"user-add.html",
                end:function (){
                    // 弹出层销毁时,重新加载表格数据
                    // js方法
                    // location.reload()
                    // layui方法
                    // 官方文档:https://layuion.com/docs/modules/table.html#reload
                    table.reload("demo")
                }
            })
        })

user-add.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="/layui/jquery-2.1.0.js"></script>
    <script src="/layui/layui.js"></script>
    <link rel="stylesheet" href="/layui/css/layui.css">
</head>
<body>
<div class="layui-container">
    <div class="layui-row">
        <div class="layui-col-md8 layui-col-md-offset2">
            <form class="layui-form" action="">
                <div class="layui-form-item">
                    <label class="layui-form-label">输入框</label>
                    <div class="layui-input-inline">
                        <input type="text" name="username" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">密码框</label>
                    <div class="layui-input-inline">
                        <input type="password" name="password" placeholder="请输入密码" autocomplete="off" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">shuojihao</label>
                    <div class="layui-input-inline">
                        <input type="text" name="phone" placeholder="请输入shuojihao"class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">注册时间</label>
                    <div class="layui-input-inline">
                        <input type="text" name="createTime"  class="layui-input" id="createTime">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">money</label>
                    <div class="layui-input-inline">
                        <input type="text" name="money" placeholder="请输入"class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">单选框</label>
                    <div class="layui-input-inline">
                        <input type="radio" name="sex" value="1" title="男">
                        <input type="radio" name="sex" value="2" title="女" checked>
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-input-inline">
                        <button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
                        <button type="reset" class="layui-btn layui-btn-primary">重置</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>
<script>
    layui.use(["laydate","table","layer","jquery","form"] ,function(){
        var table = layui.table;
        var layer = layui.layer;
        var $ = layui.jquery;
        var form = layui.form;
        let laydate=layui.laydate;
        laydate.render({
            elem:'#createTime'
        })

            form.on("submit(formDemo)",function (obj){
                console.log(obj.field)
                console.log(obj.field.sex)
                $.ajax({
                    url:"/user/add",
                    type:"POST",
                    data:obj.field,
                    date:obj.field,
                    success:function (ret) {
                    // console.log("ret ==>",ret)
                    if (ret.code == 0) {
                        // 把弹出层关闭
                        // 官方文档: https://layuion.com/docs/modules/layer.html#layer.getFrameIndex
                        var index = parent.layer.getFrameIndex(window.name);
                        parent.layer.close(index);
                    } else {
                        layer.msg("添加失败")
                    }
                },
                error:function (){
                    layer.msg("服务器正忙!")
                }
                })
            })


    });

</script>
</body>
</html>

3.删除

       table.on("tool(test)",function (obj) {
            console.log("obj", obj);
            console.log("delete11",obj.event)
            if(obj.event=="delete"){
                console.log("delete222",obj.event)
                layer.confirm("确定删除吗?",{icon:3,title:'提示'},function (index){
                //layui.confirm("确认删除吗"),function (index){
                    layer.msg("确认")
                    layer.close(index);
                    console.log("id",obj.data.id)
                    $.get("/user/delete",{id:obj.data.id},function (ret){
                        layer.close(index)
                        layer.close("demo")
                    })
                },function (index){
                    layer.msg("取消")
                    layer.close(index)
                })
            }......

4.编辑

else if (obj.event=="entir"){
                layer.open({
                    type:2,
                    content:"user-entir.html",
                    area: ['400px','500px'],
                    // success: function(layero, index){
                    //     console.log(layero, index);
                    // },
                    success:function(layero, index){
                        // 弹出层提供一个方法,可以获得弹出的那个层的dom对象
                        // 官方文档: https://layuion.com/docs/modules/layer.html#layer.getChildFrame
                        let body = layer.getChildFrame("body", index);
                        // body是user-edit.html页面的内容
                        let userData = obj.data;
                        body.find("input[name=id]").val(userData.id)
                        body.find("input[name=username]").val(userData.username)
                        body.find("input[name=password]").val(userData.password)
                        body.find("input[name=phone]").val(userData.phone)
                        body.find("input[name=money]").val(userData.money)
                        let date = new Date(userData.createTime);
                        let year = date.getFullYear();
                        let month = date.getMonth() + 1;
                        if (month < 10) {
                            month = "0"+month;
                        }
                        let day = date.getDate();
                        if (day < 10) {
                            day = "0"+day;
                        }
                        let createTime = year+"-"+month+"-"+day;
                        body.find("input[name=createTime]").val(createTime)
                        // 根据性别判断,给标签添加checked属性
                        // checked=true,默认选中
                        // console.log("sex = ",userData.sex)
                        /**
                         * 以下代码,并没有给form中radio设置上选择效果,为什么?
                         * 表单中,select、checkbox、radio需要layui来渲染完成,即页面加载完,渲染效果已经完成
                         * 所以后续再去改动效果,没有直接生效,怎么解决?
                         * 设置定时,等这边回显完,user-edit再渲染
                         */
                        body.find('input[name=sex][value=1]').attr('checked',userData.sex == 1 ? true : false);
                        body.find('input[name=sex][value=2]').attr('checked',userData.sex == 2 ? true : false);

                    },
                    end:function (){
                        // 弹出层销毁时,重新加载表格数据
                        // js方法
                        // location.reload()
                        // layui方法
                        // 官方文档:https://layuion.com/docs/modules/table.html#reload
                        table.reload("demo")
                    }
                })

合删除和编辑

        //(表格点击事件)响应
        table.on("tool(tableUser)",function (obj){
            console.log("obj",obj);
            if (obj.event=="delete"){
                layer.confirm("确定删除吗?",{icon:3,title:'提示'},function (index){
                    layer.msg("删除成功")
                    layer.close(index);
                    //获得数据,进行交互
                    console.log("id",obj.data.id)
                    $.get("/user/delete",{id:obj.data.id},function (ret){
                        layer.close(index);
                        layer.close("findall")
                    })

                },function (index){
                    layer.msg("取消删除")
                    layer.close(index);
                })
            }else if (obj.event=="entir"){
                layer.open({
                    type:2,
                    content:"user-entir.html",
                    area: ['400px','500px'],
                    // success: function(layero, index){
                    //     console.log(layero, index);
                    // },
                    success:function(layero, index){
                        // 弹出层提供一个方法,可以获得弹出的那个层的dom对象
                        // 官方文档: https://layuion.com/docs/modules/layer.html#layer.getChildFrame
                        let body = layer.getChildFrame("body", index);
                        // body是user-edit.html页面的内容
                        let userData = obj.data;
                        body.find("input[name=id]").val(userData.id)
                        body.find("input[name=username]").val(userData.username)
                        body.find("input[name=password]").val(userData.password)
                        body.find("input[name=phone]").val(userData.phone)
                        body.find("input[name=money]").val(userData.money)
                        let date = new Date(userData.createTime);
                        let year = date.getFullYear();
                        let month = date.getMonth() + 1;
                        if (month < 10) {
                            month = "0"+month;
                        }
                        let day = date.getDate();
                        if (day < 10) {
                            day = "0"+day;
                        }
                        let createTime = year+"-"+month+"-"+day;
                        body.find("input[name=createTime]").val(createTime)
                        // 根据性别判断,给标签添加checked属性
                        // checked=true,默认选中
                        // console.log("sex = ",userData.sex)
                        /**
                         * 以下代码,并没有给form中radio设置上选择效果,为什么?
                         * 表单中,select、checkbox、radio需要layui来渲染完成,即页面加载完,渲染效果已经完成
                         * 所以后续再去改动效果,没有直接生效,怎么解决?
                         * 设置定时,等这边回显完,user-edit再渲染
                         */
                        body.find('input[name=sex][value=1]').attr('checked',userData.sex == 1 ? true : false);
                        body.find('input[name=sex][value=2]').attr('checked',userData.sex == 2 ? true : false);

                    },
                    end:function (){
                        // 弹出层销毁时,重新加载表格数据
                        // js方法
                        // location.reload()
                        // layui方法
                        // 官方文档:https://layuion.com/docs/modules/table.html#reload
                        table.reload("demo")
                    }
                })
            }
        })

在这里时间插入图片描述
时间格式设置
index.html
在这里插入图片描述
entir.html
在这里插入图片描述
check单选框不显示数据,回到entir.html中重新加载数据50ms

4.分页功能

前端

在这里插入图片描述

后端
在这里插入图片描述
在这里插入图片描述
在userdaoimpl中,返回查询总条数

@Override
    public int count() {
        Connection conn = DBUtil.getConnection( );
        PreparedStatement ps = null;
        ResultSet rs = null;
        int count = 0;
        try {
            ps = conn.prepareStatement("select count(*) count from tb_user");
            rs = ps.executeQuery( );
            if (rs.next()){
                count = rs.getInt("count");
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace( );
        } finally {
            DBUtil.closeAll(conn,ps,rs);
        }
        return count;
    }

在这里插入图片描述

5.模糊查询

    <div class="layui-row">
        <div class="layui-col-md9 layui-col-md-offset2">
            <form class="layui-form layui-form-pane" action="">
                <div class="layui-form-item">
                    <div class="layui-input-inline">
                        <select name="field">
                            <option value="">---请选择---</option>
                            <option value="username">用户名</option>
                            <option value="phone">手机号</option>
                        </select>
                    </div>
                    <div class="layui-input-inline">
                        <input type="text" name="keyword" placeholder="请输入搜索关键词" class="layui-input">
                    </div>
                    <div class="layui-input-inline">
                        <button class="layui-btn layui-btn-normal" lay-submit lay-filter="search">搜索</button>
                        <button class="layui-btn layui-btn-warm" lay-submit lay-filter="findAll">查询全部</button>
                    </div>
                </div>
            </form>
        </div>
    </div>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
模糊查询后端findall方法存入的数据变成4个,page,limit,field(查询条件),keyvalue(查询值)

@WebServlet("/user/list")
public class MyServlet extends HttpServlet {
   private ServiceUserFindAll userFindAll = new ServiceUserFindAllImpl();
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String pageNo1 = req.getParameter("page");
        String pageSize1 = req.getParameter("limit");
        String field = req.getParameter("field");
        String keyword = req.getParameter("keyword");
        System.out.println("field:>>"+field);
        int pageNo = Integer.parseInt(pageNo1);
        int pageSize = Integer.parseInt(pageSize1);
        HashMap<String, Object> map = new HashMap<>();
            map.put("pageNo",pageNo);
            map.put("pageSize",pageSize);
            map.put("field",field);
            map.put("keyword",keyword);
        ResultData resultData = userFindAll.SelectAll(map);
        System.out.println(resultData);
        resp.setContentType("application/json;charset=utf-8");
        //resp.setContentType("application/json;charset=utf-8");
        PrintWriter writer= resp.getWriter();
        String jsonStr = JSON.toJSONString(resultData);
        writer.write(jsonStr);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    }
}

在这里插入图片描述
userdaoipml

  @Override
    public List<User> SelectAll(HashMap<String, Object> map) {
        int pageNo = (int)map.get("pageNo");
        int pageSize = (int) map.get("pageSize");
        String field=(String) map.get("field");
        String keyword = (String)map.get("keyword");
        int x=(pageNo-1)*pageSize;
        int y=pageSize;

        String sql = "select * from tb_user ";
        if (field != null && !"".equals(field) && keyword != null && !"".equals(keyword)) {
            sql += " where "+field+" like '%"+keyword+"%' ";
        }

        sql += "limit "+x+" , " + y;

        System.out.println("sql ===>" +sql );
        List<User> list = DBUtil.selectAll(sql, User.class);
        return list;
    }

在这里插入图片描述
在这里插入图片描述
模糊查询数据总数不对

   @Override
    public int count(HashMap<String, Object> map) {
        String field = (String) map.get("field");
        String keyword = (String) map.get("keyword");
        String sql = "select count(*) count from tb_user";
        if (field != null && !"".equals(field) && keyword != null && !"".equals(keyword)) {
            sql += " where "+field+" like '%"+keyword+"%' ";
        }
        Connection conn = DBUtil.getConnection( );
        PreparedStatement ps = null;
        ResultSet rs = null;
        int count = 0;
        try {
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery( );
            if (rs.next()){
                count = rs.getInt("count");
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace( );
        } finally {
            DBUtil.closeAll(conn,ps,rs);
        }
        return count;
    }

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Layui是一款非常实用的前端框架,它提供了诸如表单、弹窗、导航、日期等常用组件,同时还有一些实用的模块,如laydate、laypage、laytpl和layupload等。其中,Layui前端的统计页面是一个非常重要的功能,它能够帮助我们方便地统计和展示各种数据。 Layui前端的统计页面支持多种图表类型,如折线图、柱状图、饼图和雷达图等等,用户可以根据实际需求选择相应的图表类型。除此之外,用户还可以自定义图表颜色、样式、大小以及坐标轴等属性,从而实现更加个性化的展示效果。 在使用Layui前端的统计页面时,用户可以通过ajax方式向后台请求数据,获取用户需要进行统计和展示的数据。同时,Layui还提供了一些实用的工具,如laydate日期选择器和laypage分页组件,让用户可以更加方便地进行数据查询和分页展示。 总之,Layui前端的统计页面功能十分强大,不仅可以帮助用户快速实现数据可视化,还可以实现更加高级的数据分析功能,是一个非常值得推荐的前端框架。 ### 回答2: layui前端提供了一个嵌入式的统计页面,确保通过与layui框架无缝集成来让统计页面更加高效,易于使用,使页面管理过程变得更不繁琐。这些可视化的数据可帮助您了解您的系统和应用程序在过去的某段时间内的关键趋势,从而为您的业务做出更有针对性的预测和更好的决策。这个统计页面包括各种统计图表,包括线图,柱状图,饼图,仪表盘,漏斗图等,以帮助用户更深入了解其数据。 此外,统计页面还提供了高度可配置的统计表格,以便用户快速而方便地查找和过滤所需信息。这些表格不仅可以显示基本计数器和百分比,还可以提供警报,使您能够实时接收有关您关注的有趣数据的警报。同时,该页面还具备了预定统计任务功能,使用户能够以规定的时间自动化地执行统计任务,省去了手动执行数据收集和转换的烦恼。 总的来说,layui前端的统计页面非常简单易用,同时也带来了诸多有益的数据可视化工具,使其成为现代企业的必备工具。无论您是企业所有者,IT专业人士,营销团队成员,还是需要不断监测业务趋势和需求的所有人员,都可以从该统计页面中受益。 ### 回答3: Layui是一款简洁易用的前端UI框架,它为前端开发者提供了丰富的UI组件和易于使用的API,方便开发者快速构建各类网站和应用。其中,Layui也提供了统计页面的组件,帮助开发者快速创建统计类的页面。 Layui的统计页面组件主要包含两个方面的功能,一是可视化图表,二是数据处理和展示。用户可以轻松地通过该组件创建各种常见的图表类型,如折线图、柱状图、饼状图等,同时也可以选择合适的颜色和样式进行自定义展示。对于数据处理和展示,Layui的组件能够支持用户的数据导入,处理和呈现,让使用者能够一目了然地了解自己的数据。 除此之外,Layui的统计页面组件还提供了一些其他特性,如数据的后台支持、图表的互动操作(如缩放、拖拽等)、数据的实时更新等,使开发者能够更加灵活和方便地处理数据,进行数据分析和呈现。 总之,Layui的统计页面组件为开发者提供了一种高效、易用的解决方案,使数据的处理和展示变得轻松便捷,为各行各业的人士带来了更加简单和高效的数据分析和展示方案。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想要入门的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值