LayUI实现增删改查

1.HTML页面

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="Access-Control-Allow-Origin" content="*">
        <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0,user-scalable=no">
        <title></title>

        //引入layui的css文件
        <link href="../../../layui/css/layui.css" rel="stylesheet" />
        <link href="css/commond.css" rel="stylesheet" />
    </head>
    <body style="background: #ecf0f5;">
        <div class="admin-top">
            <a class="look" href="javascript:;">管理首页</a>
            <a class="add" href="javascript:;">添加</a>
        </div>
        <table id="tableTree" lay-filter="test"></table>
        <script type="text/html" id="toolbarDemo">
            {{#  if(d.isOpen === 0){ }}
                <a lay-event="isOpen" class="isOpen show" style="color: red;"  href="javascript:;">已开启</a>
              {{#  } else { }}
                <a lay-event="isOpen" class="isOpen unShow" href="javascript:;">已关闭</a>
              {{#  } }}
            <a class="edit" lay-event="edit" href="javascript:;">修改</a>
            <a class="delete" lay-event="del" href="javascript:;">删除</a>
        </script>

        <!-- 增加和修改表单 -->
        <div class="layui-row" id="popSearchRoleTest" style="display: none">
            <div class="layui-col-md11" style="width: 70%;">
                <form class="layui-form" id="form" lay-filter="form">
                    <div class="layui-form-item" style="margin-top: 10px;">
                        <label class="layui-form-label">分类:</label>
                        <div class="layui-input-block">
                            <div class="layui-input-inline">
                                <input class="layui-input" type="text" name="feedbackClassification" />
                            </div>
                        </div>
                    </div>
                    <div class="layui-form-item" style="margin-top: 10px;">
                        <label class="layui-form-label">排序号:</label>
                        <div class="layui-input-block">
                            <input class="layui-input" style="width: 40%;" type="text" name="orderNo" />
                        </div>
                    </div>
                </form>
                <div class="layui-input-block">
                    <button type="button" class="layui-btn" lay-submit lay-filter="formDemo" id='submit'>保存</button>
                </div>
            </div>
        </div>

        //引入layui的js文件
        <script src="../../../layui/layui.js"></script>
        <script src="js/commond.js"></script>
        <script src="js/index.js"></script>
    </body>
</html>

2.js文件(index.js)

layui.use(['jquery', 'table', 'laypage', 'form', 'element', 'upload', 'util', 'layer', 'table'], function() {
    let laypage = layui.laypage;
    let form = layui.form;
    let layer = layui.layer;
    let table = layui.table;
    let $ = layui.$;
    var upload = layui.upload;
    //获取token
    let token = sessionStorage.getItem("accessToken");
    
    //table实例
    table.render({
        elem: '#tableTree',
        url: '查询数据接口', //数据接口
        page: true, //开启分页
        method: 'post',
        contentType: 'application/json',
        headers: {
            'Authorization': token
        },
        request: {
            pageName: 'page',
            limitName: 'pageSize'
        },
        cols: [
            [{
                    type: 'checkbox',
                    width: 50,
                    align: 'center',

                },
                {
                    field: 'LAY_TABLE_INDEX',
                    title: '序号',
                    width:    100,
                    sort: true,
                    align: 'center'
                },
                {
                    field: 'id',
                    title: 'ID',
                    width:    100,
                    sort: true,
                    align: 'center'
                },
                {
                    field: 'feedbackClassification',
                    title: '分类',
                    align: 'center'
                },
                {
                    field: 'orderNo',
                    title: '排序',
                    width:    100,
                    align: 'center'
                }, {

                    field: 'toolbarDemo',
                    title: '操作',
                    align: 'center',
                    toolbar: '#toolbarDemo'
                }
            ]
        ],
        parseData: function(res) {
            if (res.code == 200) {
                console.log(res)
                let result = {
                    code: 0,
                    data: res.data.resultData,
                    msg: res.message,
                    count: res.data.total
                }
                return result;
            }
            if (res.code == 503) {
                let result = {
                    code: 0,
                    data: null,
                    msg: '暂无数据',
                    count: 0
                }
                return result;
            }
        }
    });


    //监听工具栏
    table.on('tool(test)', function(obj) {
        let data = obj.data; //获得当前行数据
        let con = obj.event;
        switch (obj.event) {
            case 'isOpen'://修改状态
                if (data.isOpen === 0) {
                    data.isOpen = 1;
                } else {
                    data.isOpen = 0;
                }
                changeStatus(data);
                break;
            case 'del'://删除
                deleteData(data);
                break;
            case 'edit'://修改
            console.log("修改")
                editData(data);
                break;
        }
    });

    //改变状态
    function changeStatus(data) {
        console.log(data.id);
        console.log(data.isOpen);
        let mData = {
            id: data.id,
            state: data.isOpen // 后端会将值翻转
        }
        sendPost($, token, "修改状态url", mData, function(res) {
            if (res.code === 200) {
                table.reload('tableTree', {
                    where: {} //设定异步数据接口的额外参数
                });
                layer.msg("状态改变成功", {
                    icon: 1,
                    time: 1000
                });
            }
        });
    }


    //修改
    function editData(data) {
        $("#form")[0].reset();
        form.val('form', data);
        let index = layer.open({
            type: 1, //layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
            closeBtn: 2, //×的样式
            skin: 'layui-layer-molv',
            area: ['50%', '50%'],
            title: ['修改', 'font-size:18px'],
            shadeClose: true,
            maxmin: true, //允许全屏最小化
            shade: 0, //不显示遮罩
            //area: ['30%','75%'],//增加框的宽高
            content: $('#popSearchRoleTest') // $('#id')
                // skin:'demo-class'//自定义样式风格
                ,
            end: function() {
                $('#submit').unbind('click');
                
            }
        });
        $('#submit').click(function() {
            let formData = form.val('form');
            // data.id = data.id;
            console.log(data)
            $.ajax({
                type: "POST",
                url: "编辑url",
                async: true,
                data: JSON.stringify({
                    "id":data.id,
                    "feedbackClassification": formData.feedbackClassification,
                    "orderNo": formData.orderNo,
                }),
                dataType: "JSON",
                contentType: "application/json;charset:utf-8",
                headers: {
                    Authorization: token,
                },
                success: function(data) {
                    if (data.code === 200) {
                        layer.close(index);
                        table.reload('tableTree', {
                            where: {} //设定异步数据接口的额外参数
                        });
                        layer.msg("修改成功", {
                            icon: 1,
                            time: 1000
                        });
                    }
                },
                error: function() {},
            });
            return false;
        });
    
    }

    
    //添加
    $(".add").on("click", function() {
        $("#form")[0].reset();
        let index = layer.open({
            type: 1, //layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
            closeBtn: 2, //×的样式
            skin: 'layui-layer-molv',
            area: ['50%', '50%'],
            title: ['添加分类', 'font-size:18px'],
            shadeClose: true,
            maxmin: true, //允许全屏最小化
            shade: 0, //不显示遮罩
            //area: ['30%','75%'],//增加框的宽高
            content: $('#popSearchRoleTest'), // $('#id')
            // skin:'demo-class'//自定义样式风格
            end: function() {
                $('#submit').unbind('click');
                // $("#form")[0].reset();
            }
        });

        $('#submit').on("click", function() {
            let data = form.val('form');
            //添加数据
            $.ajax({
                type: "POST",
                url: "新增url",
                data: JSON.stringify({
                    "feedbackClassification": data.feedbackClassification,
                    "orderNo": data.orderNo,
                }),
                dataType: "JSON",
                contentType: "application/json",
                headers: {
                    Authorization: token,
                },
                success: function(data) {
                    if (data.code === 200) {
                        layer.close(index);
                        table.reload('tableTree', {
                            where: {} //设定异步数据接口的额外参数
                        });
                        //重载表单
                        form.render('select');
                    }
                },
                error: function() {},
            });
        });
    });

    //删除
    function deleteData(data) {
        $.ajax({
            type: "POST",
            url: "删除url",
            async: true,
            data: JSON.stringify([{
                "id":data.id
            }]),
            dataType: "JSON",
            contentType: "application/json",
            headers: {
                Authorization: token,
            },
            success: function(data) {
                if (data.code === 200) {
                    layer.msg("删除成功", {
                        icon: 1,
                        time: 1000
                    });
                    //关闭
                    table.reload('tableTree', {
                        where: {} //设定异步数据接口的额外参数
                    });
                    
                }
            },
            error: function() {},
        });

    }
});

3.css文件(commond.css)

.admin-top {
  /* 管理管理员页面顶部 */
  width: 98%;
  margin: 1rem auto;
  padding: 0.5rem 1rem;
  background: #FFFFFF;
  box-sizing: border-box;
  border: 1px solid #fff;
  border-radius: 3px;
}
.layui-table img {
        max-width: 32px;
}
a {
  text-decoration: none;
  color: black;
  margin: 0 0.5rem;
}
#toolbar a{
    float:left;
    margin: 0 !important;
}
changeBorder{
    margin: 10rpx;
}

/*正常的未被访问过的链接*/
a:link {
  text-decoration: none;
}

/*已经访问过的链接*/
a:visited {
  text-decoration: none;
}

/*鼠标划过(停留)的链接*/
a:hover {
  text-decoration: none;
}

/* 正在点击的链接*/
a:active {
  text-decoration: none;
}
.admin-top a {
  /* 顶部a标签样式 */
  font-weight: 600;
}

.screening {
  /* 筛选条件 */
  width: 98%;
  margin: auto;
  background: #FFFFFF;
  padding: 10px 0;
  box-sizing: border-box;
  border-radius: 3px;
  /* overflow: hidden; */
}

.screening form {
  /* 筛选表单 */
  padding: 10px 0;
  margin: 0 1rem;
  position: relative;
  /*overflow: hidden;*/
  display: flex;
  flex-direction: row;
}

.inputBar {
  /* 单个选择项 */
  position: relative;
  float: left;
}

.screening form label {
  /*  */
  padding-left: 0.1rem !important;
  padding-right: 0.1rem !important;
}

.screening-left{
    display: inline-block;
    width: 100px !important;
      margin-left: 10px;
    
}
.layui-btn{margin-left: 10px;}
.changeCheckbox{padding:5px;}
.promotionlevelleft{
    background-color: white;
}

4.commond.js

function getLayerOpen(obj, name, idObj) {
    let index = obj.open({
        type: 1, //layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
        closeBtn: 2, //×的样式
        skin: 'layui-layer-molv',
        area: ['100%', '100%%'],
        title: [name, 'font-size:18px'],
        shadeClose: true,
        maxmin: true, //允许全屏最小化
        shade: 0, //不显示遮罩
        //area: ['30%','75%'],//增加框的宽高
        content: idObj // $('#id')
    });
    return index;
}

function getLayerOpenAll(obj, name, idObj, weight, height, type) {
    let index = obj.open({
        type: type, //layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
        closeBtn: 2, //×的样式
        skin: 'layui-layer-molv',
        area: [weight, height],
        title: [name, 'font-size:18px'],
        shadeClose: true,
        maxmin: true, //允许全屏最小化
        shade: 0, //不显示遮罩
        //area: ['30%','75%'],//增加框的宽高
        content: idObj // $('#id')
    });
    return index;
}


function sendAjax(method, url, isAsync, param) {
    $.ajax({
        type: method,
        url: url,
        async: isAsync,
        data: JSON.stringify(param),
        dataType: "JSON",
        contentType: "application/json;charset:utf-8",
        headers: {
            Authorization: token,
        },
        success: function(data) {
            return data;
        },
        error: function() {},
    });
    return null;
}


function sendPostAjax(url, param) {
    $.ajax({
        type: "POST",
        url: url,
        async: true,
        data: JSON.stringify(param),
        dataType: "JSON",
        contentType: "application/json;charset:utf-8",
        headers: {
            Authorization: token,
        },
        success: function(data) {
            return data;
        },
        error: function() {},
    });
    return null;
}

sendPost = function (obj,token,url,param,callback) {
    obj.ajax({
        type: "POST",
        url: url,
        async: true,
        data: JSON.stringify(param),
        dataType: "JSON",
        contentType: "application/json;charset:utf-8",
        headers: {
            Authorization: token,
        },
        success: function(data) {
             callback(data);
        },
        error: function() {},
    });
}

sendGet = function (obj,token,url,param,callback) {
    obj.ajax({
        type: "Get",
        url: url,
        async: true,
        data: JSON.stringify(param),
        dataType: "JSON",
        contentType: "application/json;charset:utf-8",
        headers: {
            Authorization: token,
        },
        success: function(data) {
             callback(data);
        },
        error: function() {},
    });
}

function sendGetAjax(url, param) {
    $.ajax({
        type: "Get",
        url: url,
        async: true,
        data: JSON.stringify(param),
        dataType: "JSON",
        contentType: "application/json;charset:utf-8",
        headers: {
            Authorization: token,
        },
        success: function(data) {
            return data;
        },
        error: function() {},
    });
    return null;
}
 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于前端的增删改查页面,你可以使用Layui这个前端框架来实现。下面是一个简单的示例代码,展示了如何使用Layui实现增删改查的功能: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>增删改查页面</title> <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.css"> </head> <body> <div class="layui-container"> <div class="layui-row"> <div class="layui-col-md12"> <table class="layui-table"> <thead> <tr> <th>ID</th> <th>姓名</th> <th>年龄</th> <th>操作</th> </tr> </thead> <tbody id="dataList"> <!-- 这里会动态添加数据 --> </tbody> </table> </div> </div> </div> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.js"></script> <script> layui.use(['layer', 'table'], function(){ var layer = layui.layer; var table = layui.table; // 初始化表格 table.render({ elem: '#dataList', url: '/api/data', // 获取数据的接口 page: true, cols: [[ {field: 'id', title: 'ID'}, {field: 'name', title: '姓名'}, {field: 'age', title: '年龄'}, {fixed: 'right', title: '操作', toolbar: '#barDemo'} ]] }); // 监听工具条 table.on('tool(dataList)', function(obj){ var data = obj.data; if(obj.event === 'edit'){ // 编辑操作 layer.open({ title: '编辑', content: '编辑页面的HTML代码', // 编辑页面的HTML代码 area: ['500px', '300px'], btn: ['保存', '取消'], yes: function(index, layero){ // 保存操作 // 通过Ajax发送数据到后端进行保存 layer.close(index); // 关闭弹窗 }, btn2: function(index, layero){ // 取消操作 layer.close(index); // 关闭弹窗 } }); } else if(obj.event === 'delete'){ // 删除操作 layer.confirm('确定删除该数据吗?', function(index){ // 通过Ajax发送数据到后端进行删除 layer.close(index); // 关闭弹窗 }); } }); }); </script> </body> </html> ``` 上述代码中,使用了Layui的表格组件 `layui.table` 来展示数据列表,并使用了 `layui.layer` 组件来实现弹窗功能。你需要根据实际需求,将代码中的接口URL、编辑弹窗的HTML代码、Ajax请求等部分替换为你自己的代码。同时,你还可以根据实际需求添加其他功能,比如新增数据等操作。 请注意,上述代码仅为示例,具体的实现方式可能因项目需求而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值