Layui表格开启分页与修改删除操作

在这里插入图片描述
在这里插入图片描述

html

<!DOCTYPE html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title></title>
    <link href="/layui/css/layui.css" rel="stylesheet" media="all"/>

</head>
<body>
<!-- 隐藏的表格 -->
<div  class="layui-row" id="open_div" style="display:none;">
    <div id="add_form" class="layui-form" lay-filter="add" action="" style="margin-top: 20px;align:center;">
        <div class="layui-form-item" >
            <label class="layui-form-label">ID</label>
            <div class="layui-input-inline" style="width: 45%">
                <input id="bookId" lay-verify="number" type="text" name="bookId" placeholder="请输入图书Id"
                       autocomplete="off" class="layui-input" >
            </div>
        </div>

        <div class="layui-form-item">
            <label class="layui-form-label">书 名</label>
            <div class="layui-input-inline" style="width: 45%">
                <input required lay-verify="required" id="bookName" type="text" name="bookName"
                       placeholder="请输入书名" autofocus
                       class="layui-input" autocomplete="off">
            </div>
        </div>

        <div class="layui-form-item">
            <label class="layui-form-label">作 者</label>
            <div class="layui-input-inline" style="width: 45%">
                <input id="bookAuthor" lay-verify="required" type="text" name="bookAuthor" placeholder="请输入作者"
                       autocomplete="off" class="layui-input">
            </div>
        </div>

        <div class="layui-form-item">
            <label class="layui-form-label">出版社</label>
            <div class="layui-input-inline" style="width: 45%">
                <input id="publish" lay-verify="required" type="text" name="publish"
                       placeholder="请输入出版社" autocomplete="off"
                       class="layui-input">
            </div>
        </div>

        <div class="layui-form-item">
            <label class="layui-form-label">页 数</label>
            <div class="layui-input-inline" style="width: 45%" >
                <input id="pages" lay-verify="required" type="text" name="pages"
                       placeholder="请输入页数" autocomplete="off"
                       class="layui-input">
            </div>
        </div>

        <div class="layui-form-item">
            <label class="layui-form-label">价 格</label>
            <div class="layui-input-inline" style="width: 45%">
                <input id="price" lay-verify="required" type="text" name="price" placeholder=""
                       autocomplete="off" class="layui-input">
            </div>
        </div>

        <div class="layui-form-item">
            <label class="layui-form-label">评分</label>
            <div class="layui-input-inline" style="width: 45%">
                <input id="bookGrade" lay-verify="number" type="text" name="bookGrade"
                       placeholder="请输入评分" autocomplete="off"
                       class="layui-input">
            </div>
        </div>

        <div class="layui-form-item">
            <label class="layui-form-label">ISBN</label>
            <div class="layui-input-inline" style="width: 45%">
                <input id="isbn" lay-verify="required" type="text" name="isbn"
                       placeholder="请输入ISBN" autocomplete="off"
                       class="layui-input">
            </div>
        </div>

        <div class="layui-form-item layui-form-text">
            <label class="layui-form-label">简 介</label>
            <div class="layui-input-inline" style="width: 45%" >
                    <textarea id="bookIntro" lay-verify="required" name="bookIntro" placeholder="请输入简介"
                              class="layui-textarea "
                              autocomplete="off"></textarea>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-input-block">
                <button class="layui-btn" lay-submit lay-filter="update_submit">立即提交</button>
            </div>
        </div>
    </div>
</div>



    <div class="layui-body " >
    
            <div class="demoTable">
                搜索书名:
                <div class="layui-inline">
                    <input class="layui-input" name="id" id="demoReload" autocomplete="off">
                </div>
                <button class="layui-btn" data-type="reload">搜索</button>
            </div>

            <div class="layui-row ">
                <table id="demo" lay-filter="test"></table>
            </div>
            <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>
        </div>
        <div th:include="common/footer :: footer"></div>
    </div>
</div>

<script src="/scripts/jquery.min.js"></script>
<script src="/layui/layui.js"></script>
<script src="/scripts/admin/updateBook.js"></script>



</body>
</html>

Js

layui.use(['upload','element','layer','table','form'], function(){
    var $ = layui.jquery
        ,upload = layui.upload
        ,element = layui.element
        ,layer = layui.layer
        ,table = layui.table
        ,form = layui.form;

    table.render({
        elem: '#demo'
        // ,height: 800
        ,height: 'full-200'
        , width: 'full-200'
        ,url: '/updateBookPages' //数据接口
        ,page: true //开启分页
        ,limit: 20
        ,cols: [[ //表头
            {field: 'bookId', title: 'ID', width:125,}
            ,{field: 'bookName', title: '书名', width:145}
            ,{field: 'bookAuthor', title: '作者', width:140}
            ,{field: 'publish', title: '出版社', width:120}
            ,{field: 'pages', title: '页数', width:80}
            ,{field: 'price', title: '价格', width:80}
            ,{field: 'bookGrade', title: '评分', width:60}
            ,{field: 'isbn', title: 'ISBN', width:130}
            ,{field: 'bookIntro', title: '图书简介', width:130}
            ,{fixed: 'right', width:118,title: '操作', align:'center', toolbar: '#barDemo'}
        ]]
    });

    //执行重载
    var $ = layui.$, active = {
        reload: function(){
            var demoReload = $('#demoReload');
            table.reload('demo', {
                page: {
                    curr: 1 //重新从第 1 页开始
                }
                ,where: {
                        bookName: demoReload.val()
                }
            });
        }
    };

    $('.demoTable .layui-btn').on('click', function(){
        var type = $(this).data('type');
        active[type] ? active[type].call(this) : '';
    });

    //监听工具条
    table.on('tool(test)', function(obj){
        var data = obj.data;
        // 删除
        if(obj.event === 'del'){
            layer.confirm('真的删除行么', function(index){
                $.ajax({
                    url: "/deleteByBookId",
                    type: "POST",
                    data: {bookId:data.bookId},
                    success: function (msg) {
                        if (msg.code === 0) {
                            //删除这一行
                            obj.del();
                            //关闭弹框
                            layer.close(index);
                            layer.msg("删除成功", {icon: 6});
                        } else {
                            layer.msg("删除失败", {icon: 5});
                        }
                    }
                });
            });
        }
        // 编辑
        else if(obj.event === 'edit'){
            // 回填数据到表单

            updateuser(obj,data);
        }
    });
    //编辑更新用户
    function updateuser(obj, data) {
        form.val("add", {
            "bookId": data.bookId
            , "bookName": data.bookName
            , "bookAuthor": data.bookAuthor
            , "publish": data.publish
            , "pages": data.pages
            , "price": data.price
            , "bookGrade": data.bookGrade
            , "isbn": data.isbn
            , "bookIntro": data.bookIntro
        });

        layer.open({
            async: false,
            //layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
            type: 1,
            title: "修改图书信息",
            skin: 'layui-layer-molv',
            area: ['500px', '700px'],
            content: $("#open_div"),//引用的弹出层的页面层的方式加载修改界面表单
        });

        form.on('submit(update_submit)', function (massage) {
            console.log("message为:", massage);
            console.log(massage.field);
            var data1 = massage.field;

            $.ajax({
                type: "post",
                url: "/updateBook",
                data: JSON.stringify(massage.field),
                contentType: 'application/json',
                datatype: "json",
                success: function (msg) {
                    console.log(msg);
                    layer.closeAll();//关闭所有的弹出层
                    if (msg.code === 0) {
                        layer.msg("修改成功", {icon: 6});
                        //刷新数据
                        $(".layui-laypage-btn").click();
                    } else {
                        layer.msg("修改失败", {icon: 5});
                    }
                }
            })
            return false

        })
    }


});


controller

   /**
     * 管理员:更新图书
     * @param
     * @return
     */
    @GetMapping("/updateBookPages")
    @ResponseBody()
    public Map<String, Object> updateBookPage(@RequestParam("page") Integer page,Integer limit,@RequestParam(value = "bookName",required = false) String bookName){
        Page<Book> bookPage = null;
        if (bookName == ""|| bookName==null){
            bookPage=bookService.selectAllBooksByPage(page,limit);
        }else {
            bookPage = bookService.selectBookByBookNamePage(page, limit, bookName);
        }
        List<Book> records = bookPage.getRecords();
        Map<String, Object> map = new HashMap<>();
        map.put("data", records);
        map.put("code", 0);
        map.put("count", bookPage.getTotal());
        map.put("msg", "");
        return map;
    }

    /**
     * 管理员:返回更新图书页面
     * @param request
     * @return
     */
    @GetMapping("/updateBookPage")
    public String updateBookPages(HttpServletRequest request){
        return "admin/updateBook";
    }

    /**
     * 管理员:按图书id删除图书
     */
    @PostMapping("/deleteByBookId")
    @ResponseBody
    public Map<String,Object> deleteByBookId(@RequestParam("bookId") Integer bookId){
        HashMap<String, Object> map = new HashMap<>();
        Integer flag = bookService.deleteByBookId(bookId);
        if (flag!=0){
            map.put("code", 0);
        }else {
            map.put("code", 1);
        }
        return map;
    }

    /**
     * 管理员:更新图书信息
     * @param book
     * @return
     */
    @PostMapping("/updateBook")
    @ResponseBody
    public Map<String, Object> updateBook(@RequestBody Book book) {
        HashMap<String, Object> map = new HashMap<>();
        Integer flag = bookService.updateBook(book);
        if (flag!=0){
            map.put("code", 0);
        }else {
            map.put("code", 1);
        }
        return map;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值