欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

layui 数据表格

程序员文章站 2022-07-02 20:30:21
...

goods_list.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
<meta name="author" content="order by dede58.com"/>
		<title>商品列表</title>
		<jsp:include page="situation/head.jsp"></jsp:include>
		<%--js文件--%>
		<script src="${pageContext.request.contextPath}/js/goods/goods_list.js"></script>

	</head>
	<body>
    <input type="hidden" name="contextPath" id="contextPath" value="${pageContext.request.contextPath}">



	<%--编辑--%>
	<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>

	<!-- 数据表格头部工具栏 -->
	<script type="text/html" id="toolbarDemo">
		<h2><span></span>商品列表</h2>

	</script>
	<!-- 表格部分 -->
	<div class="layui-row">
		<div class="layui-col-xs12">
			<div class="layui-card">
                     <!-- 数据表格 -->
					<table class="layui-hide" lay-filter="test" id="goods_list"></table>
			</div>
		</div>
	</div>

	<div class="layui-row" id="uplTest" >
		<br>
		<div class="layui-col-md10">
			<form class="layui-form" action="" lay-filter="updateform">

				<div class="layui-form-item">
					<label class="layui-form-label">商品名称:</label>
					<div class="layui-input-block">
						<input type="text" name="commodityName" id="commodityName" placeholder="请输入商品名称" lay-verify="required"  autocomplete="off" class="layui-input">
					</div>
				</div>

				<div class="layui-form-item">
					<label class="layui-form-label">是否上架</label>
					<div class="layui-input-block">

						<select name="status" id="status">
							<option value="下架">下架</option>
							<option value="上架">上架</option>

						</select>
					</div>
				</div>

				<div class="layui-form-item">
					<label class="layui-form-label">所属分类</label>
					<div class="layui-input-block">
						<select name="commodityCategoryId" id="commodityCategoryId">

						</select>
					</div>
				</div>

				<div class="layui-form-item">
					<label class="layui-form-label">商品售价:</label>
					<div class="layui-input-block">
						<input type="text" name="price" id="price" placeholder="请输入售价"  lay-verify="required"  autocomplete="off" class="layui-input">
					</div>
				</div>
				<div class="layui-form-item">
					<label class="layui-form-label">销售提成:</label>
					<div class="layui-input-block">
						<input type="text" name="commissions" id="commissions" placeholder="请输入销售提成"   lay-verify="required"  autocomplete="off" class="layui-input">
					</div>
				</div>
				<div class="layui-form-item">
					<label class="layui-form-label">商品库存:</label>
					<div class="layui-input-block">
						<input type="text" name="repertory" id="repertory" placeholder="请输入销售库存"   lay-verify="required"  autocomplete="off" class="layui-input">
					</div>
				</div>



				<div class="layui-form-item">
					<label class="layui-form-label">商品描述:</label>
					<div class="layui-input-block">
						<textarea placeholder="请输入内容" lay-verify="required" class="layui-textarea" id="description" name="description"></textarea>
					</div>

				</div>



				<div class="layui-form-item">
					<div class="layui-input-block">
						<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>

	</body>

</html>

goods_list.js

layui.use(['table', 'layer', 'form', 'element', 'jquery', 'tree'],
    function () {
        var table = layui.table,
            layer = layui.layer,
            form = layui.form,
            element = layui.element,
            $ = layui.jquery, // 重点处
            tree = layui.tree;
        var contextPath = $("#contextPath").val();
        form.render();// from菜单渲染 把内容加载进去

        // 方法级渲染
        table.render({
            elem: '#goods_list',// 指定表格元素
            toolbar: '#toolbarDemo', // 开启工具栏,此处显示默认图标,可以自定义模板,详见文档
            // totalRow: true,// 开启合计行
            url: contextPath + '/goods/goodsList', // 请求路径
            skin: 'line ', // 表格风格 line (行边框风格)row (列边框风格)nob  // (无边框风格)
            // layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] ,//自定义分页布局
            cols: [[{
                checkbox: true,

            }, {
                field: 'commodityId',
                title: '商品ID',
                align: 'center',
                hide: true,
                fixed: false
            }, {
                field: 'commodityName',
                title: '商品名称',
                align: 'center',
            }, {
                field: 'price',
                title: '商品价格',
                align: 'center',
            }, {
                field: 'repertory',
                title: '商品库存',
                align: 'center',
            }, {
                field: 'status',
                title: '商品状态',
                align: 'center',
                templet: function (d) {
                    var state = "";
                    //当是上架状态的时候
                    if (d.status == "上架") {
                        state = "<input type='checkbox' value='"+d.commodityId+"' id='status' lay-filter='stat' checked='checked' name='status'  lay-skin='switch' lay-text='上架|下架' >";
                    }
                    else {
                        state = "<input type='checkbox' value='"+d.commodityId+"' id='status' lay-filter='stat'  name='status'  lay-skin='switch' lay-text='上架|下架' >";
                    }
                    return state;
                }

            }, {
                field: 'commodityCategoryId',
                title: '分类id',
                hide: true,
            },
                {
                    field: 'addtime',
                    title: '添加时间',
                    align: 'center',
                },

                {
                    title: '操作',
                    align: 'center',
                    toolbar: '#barDemo',
                    // templet : function(d) {
                    //     return "";
                    // }

                },


            ]],

            //这个表格的id
            id: 'userReload',
            // 开启分页
            page: true,

            // 每页条数的选择项,默认:[10,20,30,40,50,60,70,80,90]。
            // limits: [10, 20],
            groups: 1, //只显示 1 个连续页码
            // method: 'get', // 提交方式

        });

        // 查询 数据渲染 重载
        var $ = layui.$, active = {
            reload: function () {
                // 执行重载
                table.reload('userReload', {
                    page: {
                        // 重新从第 1 页开始
                        // curr: 1
                    },
                    where: {}
                });
            }

        };

        $('.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;
            // console.log(obj);
            //删除
            switch (obj.event) {
                case  'del':
                    if (data.status != "上架") {
                        layer.confirm('真的删除行这个商品吗?', function (index) {
                            $.ajax({
                                type: "get",
                                url: contextPath + '/goods/goodsCommDel',
                                data: {
                                    //删除的参数
                                    "commodityId": data.commodityId
                                },
                                success: function (data) {
                                    if (data == 1) {
                                        layer.msg('删除成功',
                                            // 提示的样式
                                            {icon: 1, time: 2000,});

                                        // 数据重载
                                        active.reload();
                                    }
                                    else {
                                        layer.msg('删除失败,可能是你没有权限!',
                                            // 提示的样式
                                            {icon: 2, time: 2000,});
                                    }
                                }
                            });
                        });
                    }
                    //如果是上架,不给他删除
                    else {
                        layer.msg('无法删除',
                            // 提示的样式
                            {icon: 2, time: 2000,});
                    }
                    break;
            }
            //修改
            switch (obj.event) {

                case  'edit':
                    /*修改需要一个弹出框*/
                    form.render();// from菜单渲染 把内容加载进去
                    //分类下拉框
                    indexcommoCatList();

                    var index = layer.open({
                    type: 1,
                    area: ['60%','50%'],
                    content: $("#uplTest").html(),
                    title: "修改商品",
                    success() {
                        //对弹窗的表单数据进行处理
                        //表单初始赋值
                        form.val('updateform', {
                            "commodityName": data.commodityName
                            , "status": data.status//是否上架
                            , "commodityCategoryId": data.commodityCategoryId //分类
                            , "price": data.price //售价
                            , "commissions": data.commissions  //销售提成
                            , "repertory": data.repertory    //商品库存
                            , "description": data.description    //商品描述
                        })
                    }
                });


                    //点击修改
                    form.on('submit(formDemo)', function (d) {
                        $.post(contextPath + '/goods/goodsCommUpdate', {
                                "commodityId": data.commodityId,
                                "commodityName": d.field.commodityName,
                                "status": d.field.status,
                                "commodityCategoryId": d.field.commodityCategoryId,
                                "price": d.field.price,
                                "commissions": d.field.commissions,
                                "repertory": d.field.repertory,
                                "description": d.field.description,
                            },
                            function (d) {
                                if (d > 0) {
                                    // 提示的样式
                                    layer.msg('修改成功', {icon: 1, time: 4000,});
                                    //数据重载
                                    active.reload();
                                    layer.close(index);
                                }
                                else {
                                    // 提示的样式
                                    layer.msg('权限不足', {icon: 2, time: 2000,});
                                }


                            });
                        return false;
                    });


                    break;
            }
        });


        /* , success: function (layero, index) {
                 var body = layer.getChildFrame('body', index);  // body.html() body里面的内容
                 console.log( data.commodityName);
                 body.find("#commodityName").val(data.commodityName);
             }*/

        /*查询分类*/

        // 下拉框
        function indexcommoCatList() {
            $.ajax({
                url: contextPath + '/CommCat/commoCatList',
                dataType: 'json',
                type: 'post',
                async: false,
                success: function (data) {

                    //清除下拉框里面的数据
                    $("#commodityCategoryId").find("option").remove();
                    //对后台放回的值进行处理
                    $.each(data, function (index, item) {
                        // console.log(item);
                        //给这个下拉框绑定值
                        $('#commodityCategoryId').append(
                            new Option(item.commodityCategoryName,
                                item.commodityCategoryId));// 往下拉菜单里添加元素
                        form.render('select');// from菜单渲染 把内容加载进去
                    })


                }
            })
        }


        //监听开关事件
        form.on('switch(stat)', function (data) {
            var contexts;
            var x = data.elem.checked;//判断开关状态
            if (x==true) {
                contexts = "上架";
            } else {
                contexts = "下架";
            }
            //自定义弹窗
            layer.open({
                 content: "你确定要"+contexts+"?"
                , btn: ['确定', '取消']
                , yes: function (index, layero) {
                    //按钮确定【按钮一】的回调
                    data.elem.checked = x;
                    //对商品进行上架或下架处理
                    $.ajax({
                        type: "post",
                        url: contextPath + '/goods/goodsCommUpdate',
                        data: {
                            //上下架的参数
                            "commodityId": data.value,
                            "status":contexts
                        },
                        success: function (data) {
                            if (data == 1) {
                                layer.msg(contexts+'成功',
                                    // 提示的样式
                                    {icon: 1, time: 2000,});

                                // 数据重载
                                active.reload();
                            }
                            else {
                                layer.msg(contexts+'失败,可能是你没有权限!',
                                    // 提示的样式
                                    {icon: 2, time: 2000,});
                            }
                        }
                    });

                    form.render();
                    layer.close(index);

                }
                , btn2: function (index, layero) {
                    //按钮【按钮二】的回调
                    data.elem.checked = !x;
                    form.render();
                    layer.close(index);
                    //return false 开启该代码可禁止点击该按钮关闭
                }
                , cancel: function () {
                    //右上角关闭回调
                    data.elem.checked = !x;
                    form.render();
                   // return false; //开启该代码可禁止点击该按钮关闭
                }
            });

            return false;

        });


    });

相关标签: layui