layui数据表格和表单的完整运用

@{
    ViewBag.Title = "AutomaticRequestRecord";
    Layout = "~/Views/Shared/MyLayout.cshtml";
}

<form class="layui-form" action=""  id="form1">
    <div class="layui-form-item">
        <div class="layui-inline">
            <label class="layui-form-label">请货号</label>
            <div class="layui-input-inline">
                <input type="text" name="R_requestId" autocomplete="off" class="layui-input" placeholder="请货号">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label">商品ID</label>
            <div class="layui-input-inline">
                <input type="text" name="GOODSID" autocomplete="off" class="layui-input" placeholder="商品ID">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label">商品名称</label>
            <div class="layui-input-inline">
                <input type="text" name="GOODSNAME" autocomplete="off" class="layui-input" placeholder="商品名">
            </div>
        </div>
        <div class="layui-inline">
            <select name="R_type">
                <option value="">请选择请货类型</option>
                <option value="1">手动请货</option>
                <option value="0">自动请货</option>
            </select>
        </div>
        <div class="layui-inline">
            <select name="R_state">
                <option value="">请选择请货状态</option>
                <option value="1">已请货</option>
                <option value="0">未请货</option>
            </select>
        </div>
        
        <div class="layui-inline">
            <label class="layui-form-label">开始日期</label>
            <div class="layui-input-inline">
                <input type="text" class="layui-input" name="s_timestart" autocomplete="off" id="s_timestart" placeholder="选择日期">
            </div>
        </div>
        <div class="layui-inline">
            <label class="layui-form-label">结束日期</label>
            <div class="layui-input-inline">
                <input type="text" class="layui-input" name="s_timeend" autocomplete="off" id="s_timeend" placeholder="选择日期">
            </div>
        </div>
        <br /><br />
        <div class="layui-inline">
            <div class="layui-input-block">
                <button class="layui-btn submit_form" lay-submit lay-filter="s_submit" id="sub">查询</button>
                <button class="layui-btn submit_form"  lay-submit lay-filter="s_Reset" id="sub3">重置</button>
                <button class="layui-btn output_search" lay-submit lay-filter="s_output" id="sub2">导出</button>
                <button class="layui-btn submit_form" lay-submit lay-filter="toolBarPro" id="toolBarPro">新增请货</button> 
            </div>

        </div>
    </div>
    <div>
        <table class="layui-hide" id="order_query_table" lay-filter="order_query_table"></table>
    </div>

</form>
<script type="text/html" id="barDemo"> 
    <button type="button" class="layui-btn layui-btn-sm layui-btn-normal" lay-event='select'><i class="layui-icon">&#xe615;</i> 详情</button>
    @*<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" lay-event='del'><i class="layui-icon">&#xe640;</i> 删除</button>*@ 
</script>
<script>
        layui.use(['form', 'layedit', 'laydate', 'table', 'element', 'layer'],
            function () {
                var form = layui.form,
                    layer = layui.layer,
                    laydate = layui.laydate,
                    table = layui.table,
                    $ = layui.$,
                    element = layui.element;
                //日期
               laydate.render({
                elem: '#s_timestart',
                type: 'datetime',
                range: false,
                trigger: 'click',
                theme: '#393D49',
                max: '@DateTime.Now.ToString("yyyy-MM-dd 23:59:59")',
                //min: -120//120天前
                min: '2020-8-1 00:00:00'//指定日期

            });
            //日期
            laydate.render({
                elem: '#s_timeend',
                type: 'datetime',
                range: false,
                trigger: 'click',
                theme: '#393D49',
                max: '@DateTime.Now.ToString("yyyy-MM-dd 23:59:59")',
                //min: -120//120天前
                min: '2020-8-1 00:00:00'//指定日期

             });



                 //导出excel
            form.on('submit(s_output)', function (data) {
                 
                $.ajax({
                    url: '../Order/goods_outputexcel2',
                    //data: paramstr,
                    type: 'get',
                    dataType: 'text',
                    success: function (txtr) {

                        if (txtr != "") {

                            var outparames = new Array();
                            outparames.push({ name: "json", value: txtr });
                            outparames.push({ name: "filename", value: "请货数据导出" + new Date().getTime() });
                            outparames.push({ name: "colnames", value: "操作人,请货时间,请货号,请货类型,请货状态,门店编号,商品ID,商品名称,商品类型,厂商,UPC码,请货数" });
                            Post('@Url.Content("~/export/outputexcel")', outparames); 
                        }
                        else {
                            layer.msg("导出失败");
                        }
                    }
                    , error: function (err) {
                        layer.msg("导出异常");
                    }
                });
                return false;
            });



                //监听提交
                form.on('submit(toolBarPro)',
                    function () {
                        openaddwindow();
                        return false;
                    });

            //新增请货 (layui的layer打开新窗口的使用)
                function openaddwindow() {
                    var url = 'http://' + '@HttpContext.Current.Request.Url.Authority' + '/product/AddRequestRecord';
                    var opentype = layer.open({
                        type: 2
                        , title: "新增请货"
                        , content: url
                        , maxmin: true //开启最大化最小化按钮
                        , area: ['800px', '520px']
                        }); layer.full(opentype);
                    }

                  //监听提交
                   form.on('submit(s_submit)',
                       function (data) {
                           if (data.field.s_timeend!="") {

                               if (data.field.s_timestart > data.field.s_timeend) {

                                   layer.alert("开始日期不能大于结束日期", { icon: 2, title: "错误提示", offset: "auto", skin: 'layui-layer-molv' });
                               return false;
                               }

                           }
                    //填充到where所需要的的值
                       var  datafiled=   {
                            R_requestId: data.field.R_requestId,
                            GOODSID: data.field.GOODSID,
                            GOODSNAME: data.field.GOODSNAME,
                            R_type: data.field.R_type,
                            R_state: data.field.R_state,
                            s_timestart: data.field.s_timestart,
                            s_timeend: data.field.s_timeend

                        }
                           loaddata(datafiled);
                        return false;
                       });

                //重置
                form.on('submit(s_Reset)', function (data) {
                    // 重置清空
                    $('#form1')[0].reset();
                    form.render();//必须写
                    //loaddata();
                    return false;
               });

                //监听单元格编辑
                table.on('edit(order_query_table)', function (obj) {
                    var value = obj.value //得到修改后的值
                        , data = obj.data //得到所在行所有键值
                        , field = obj.field; //得到字段
                    layer.msg("商品ID" +  data.GOODSID + '库存更改为:' + value);
                });

                //监听行工具事件
                table.on('tool(order_query_table)', function (obj) {
                    var data = obj.data;
                    //console.log(obj)
                    if (obj.event === 'del') {
                        layer.confirm('真的删除行么', function (index) { 
                            obj.del();
                            $.ajax({
                                type: "get",
                                url: "../order/DelRequest_record",
                                data: { "R_requestId": data.R_requestId, "GOODSID": data.GOODSID },
                                dataType: "json",
                                success: function (data) {
                                    if (data == 1) {
                                        layer.alert("删除成功", { icon: 1, title: "温馨提示", offset: "auto", skin: 'layui-layer-lan' });
                                    } else {
                                        layer.alert("删除失败", { icon: 5, title: "错误提示", offset: "auto", skin: 'layui-layer-lan' });
                                    }
                                },
                                error: function (err) {
                                    layer.alert("错误信息:" + err, { icon: 2, title: "错误提示", offset: "auto", skin: 'layui-layer-lan' });
                                }
                            })
                            layer.close(index);
                        });
                    }
                    //else if (obj.event === 'edtil') {
                    //   // alert(JSON.stringify(data));
                    //    $.ajax({
                    //        type: "get",
                    //        url: "../order/SavaRequest_record",
                    //        data: { "R_requestId": data.R_requestId, "GOODSID": data.GOODSID },
                    //        dataType: "json",
                    //        success: function (data) {
                    //            if (data == 1) {
                    //                layer.alert("保存成功", { icon: 1, title: "温馨提示", offset: "auto", skin: 'layui-layer-lan' });
                    //            } else {
                    //                layer.alert("保存失败", { icon: 5, title: "错误提示", offset: "auto", skin: 'layui-layer-lan' });
                    //            }
                    //        },
                    //        error: function (err) {
                    //            layer.alert("错误信息:"+err, { icon: 2, title: "错误提示", offset: "auto", skin: 'layui-layer-lan' });
                    //        }
                    //    })
                        else if (obj.event === 'select') {
                            // alert(JSON.stringify(data));
                        var url = 'http://' + '@HttpContext.Current.Request.Url.Authority' + '/product/AddRequestRecord?R_requestId=' + data.R_requestId + '&GOODSID=' + data.GOODSID;
                                var opentype = layer.open({
                                    type: 2
                                    , title: "查看请货记录明细"
                                    , content: url
                                    , maxmin: true //开启最大化最小化按钮
                                    , area: ['800px', '520px']
                                    , btn: ['关闭']
                                });
                                layer.full(opentype);
                            }

                        //prompt弹窗操作
                        //layer.prompt({
                        //    formType: 2
                        //    , value: data.email
                        //}, function (value, index) {
                        //    obj.update({
                        //        email: value
                        //    });
                        //    layer.close(index);
                        //});

                });
                loaddata();//首次加载
                function loaddata(datafield) {
                    //alert(JSON.stringify(data));
                    table.render({
                        elem: '#order_query_table'
                        , url: '../order/getAutomaticRequestRecordlist'
                        , where: datafield
                        , title: '自动请货记录表'
                        , cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增
                        , limits: [10, 20, 30, 40, 50, 200, 400, 600]
                        , limit: 10
                        , page: true
                        , done: function (data) {

                            console.log(data);
                        }
                        , cols: [[
                        { type: 'checkbox', fixed: 'left' },
                        {
                            field: 'Operator', title: '操作人', style: "text-align:center", align: "center",
                        },
                        //{
                        //    field: 'StoreId', title: '门店id', style: "text-align:center", align: "center",
                        //},
                        {
                            field: 'R_time', title: '请货日期', style: "text-align:center", align: "center",

                        },
                        {
                            field: 'R_requestId', title: '请货号', style: "text-align:center", event: "getaddress", align: "center",

                        },
                        {
                            field: 'R_type', title: '请货类型', style: "text-align:center", align: "center",
                            templet: function (mydata) {
                                if (mydata.R_type == 1) {
                                    return "手动";
                                } else {
                                    return "自动";
                                }
                            }
                        },
                        {
                            field: 'R_state', title: '请货状态', style: "text-align:center;color:red;", event: "getprodetail", align: "center",
                            templet: function (mydata) {
                                if (mydata.R_state == 1) {
                                    return "是";
                                } else {
                                    return "否";
                                }
                            }

                        },
                        //{
                        //    field: 'GOODSID', title: '商品Id', style: "text-align:center", align: "center",

                        //},
                        //{
                        //    field: 'GOODSNAME', title: '商品名称', style: "text-align:center", align: "center",

                        //},
                        //{
                        //    field: 'GOODSTYPE', title: '规格',style: "text-align:center", align: "center",
                        //},
                        //{
                        //    field: 'FACTORYNAME', title: '厂商', style: "text-align:center", align: "center",
                        //},
                        //{
                        //    field: 'BARCODE', title: 'UPC',  style: "text-align:center", align: "center",
                        //},
                        //{
                        //    field: 'GOODSQTY', title: '库存', style: "text-align:center", align: "center",
                        //},
                        //{
                        //    field: 'R_Detail_time', title: '确定请货时间', style: "text-align:center", align: "center",
                        //},
                        {
                            fixed: 'right', title: '操作', toolbar: '#barDemo'
                        }]],
                        toolbar: "#toolbarDemo",
                        text: {
                            none: '暂无相关数据' //默认:无数据。注:该属性为 layui 2.2.5 开始新增
                        },
                        id: 'order_list'
                    });
                }




                ///post请求方法生成页面
                function Post(URL, PARAMTERS) {
                    //console.log(URL,PARAMTERS);
                    //创建form表单
                    var temp_form = document.createElement("form");
                    temp_form.action = URL;
                    //console.log(temp_form);
                    //console.log(PARAMTERS);
                    //如需打开新窗口,form的target属性要设置为'_blank'
                    temp_form.target = "_self";
                    temp_form.method = "post";
                    temp_form.style.display = "none";
                    //添加参数
                    for (var item in PARAMTERS) {
                        var opt = document.createElement("textarea");
                        //console.log(opt);
                        opt.name = PARAMTERS[item].name;
                        opt.value = PARAMTERS[item].value;
                        temp_form.appendChild(opt);
                    }
                    document.body.appendChild(temp_form);
                    //提交数据
                    temp_form.submit();
                }
            }
         );
</script>

实现效果:

在这里插入图片描述