请通过浏览器功能收藏网页

layui 常用table格式展示 附带基础 添加修改删除功能的格式 javascript

发布时间:2018-10-26 09:28:04  作者:本站编辑  来源:本站原创  浏览次数:
我有话说 | 分享 |
www.javainfo.com.cn 上干货 欢迎收藏

layui 目前流行的前台框架  本实例开发效果如图

     

image.png

1 引入框架编译结构

      引入layui通用窗体脚本 

        /thirdpart/laydate/laydate.js"         

        /thirdpart/layui-v2.4.3/layui/css/layui.css         

        thirdpart/layui-v2.4.3/layui/layui.js"

2 table初始化框架  查询功能保留FORM的验证流程 


  image.png


3 初始化 工具栏: 2大类  :1)左上角工具栏 ; 2)行级工具栏

   image.png

3 渲染table效果  

        layui.use(['table','layer','element'], function(){ 

                        $ = layui.$       //得到$ 及内部jQuery的引用

                      ,table = layui.table

                      ,layer = layui.layer 

                      ,element = layui.element 

                      ,form = layui.form //表单

         ;table.render({  //渲染列表table

                         elem: '#listtable'  //指定元素ID

                        ,url: '<%=basepath>/user/userPageLists.do' 

                        ,method: "post" //方法指定为POST 

                        ,title: '用户表'

                        ,toolbar: '#toptoolbar

                        ,totalRow: true //开启合计行

                        ,cols: [[ //表头

                                   {checkbox: true, type: 'checkbox', fixed: 'left'}

                                  ,{field:'id', title: 'ID', sort: true, fixed: true}

                                  ,{field:'userName', title: '用户名'} 

                                  ,{field:'remark', title: '备注信息'}      

                                     //这里我们可以使用标签控制 工具栏的显隐

                                   ,{fixed: 'right',  align:'center', toolbar: '#gongjulan'}

                        ]],

                        id:'testRelaod'

                       ,page: true //开启分页

                           ,where:{userName:''}

                      });

                      

         var $ = layui.$, active = {

                reload: function(){

                       var userName = $('#userName');

                      //执行重载

                      table.reload('testRelaod', {

                            where: {//传递参数

                            userName:userName.val()       

                        }

                      ,page: {

                           curr: 1  //重新从第 1 页开始

                      }

                     });

                  },

                reset: function(){

                          var userName = $('#userName');

                               //执行重载

                              table.reload('testRelaod', {

                                    page: {

                                              curr: 1 //重新从第 1 页开始

                                    }

                                    ,where: {

                                            userName: ''

                                    }

                              });

                          }            

                 };

            //监听提交  监听搜索按钮的点击时间   提交表单  触发table刷新

            form.on('submit(searchbtn)', function () {

                    var type = $(this).data('type');

                    active[type] ? active[type].call(this) : '';

                    return false;

            });

                             //重置按钮函数

                          $('#searchReset').on('click',function(){

                                  $('#userName').val('')

                                var type = $(this).data('type');

                                active[type] ? active[type].call(this) : '';

                          })

              

              //头工具栏事件

              table.on('toolbar(appendTools)', function(obj){

                  var checkStatus = table.checkStatus(obj.config.id)

                  ,data = checkStatus.data; //获取选中的数据

                switch(obj.event){

                  case 'add':

                              layer.open({

                              id:"addForm",   //这个比较重要  因为后面需要使用

                              title:"添加用户信息",

                              type: 2,   

                              btn:["添加用户"],    //初始化 第一个按钮 及 yes按钮上的文字

                              area: ['700px', '600px'], //初始化大小

                              //maxmin: true,  //是否可以调整大小

                              content: '<%=basepath>/user/adds',

                              zIndex: layer.zIndex, //重点1

                              success: function(layero){

                                     layer.setTop(layero); //重点2

                              },

                              yes: function(index, layero){

                                     //在当前页面获取弹窗内的 searchbt1 按钮,并触发 单击事件, 注意:此窗体关闭权 已经转交给了  弹窗layer控制,此函数内部

                                        //不会触发关闭函数

                                   var frameId=document.getElementById('addForm').getElementsByTagName("iframe")[0].id;

                                   var frameForm = $('#'+frameId)[0].contentWindow.document.getElementById('searchbtn1');

                                      frameForm.click();

                               },

                               end: function(){//layer关闭的时候  会触发此方法

                                   table.reload('testRelaod');

                               }

                   });                   

                  break;

                  case 'delete':

                        if(data.length === 0){

                                    layer.msg('请选择一行');

                        } else {

                                    layer.confirm('真的删除行么', function(index){

                                     //var data = obj.data ;

                                   for(var i=0;i<data.length;i++){

                                            $.ajax({

                                                url : "<%=basepath>/user/deletes.do?id="+data[i].id,   //data[i] 获取当前行数据,具体属性 看对象的属性

                                                type : "GET",

                                                dataType : "json",

                                                success : function(result){

                                                    obj.del();    //删除对应行(tr)的DOM结构

                                                }

                                            });

                                    }

                                     table.reload('testRelaod');

                                     layer.msg("删除成功");

                                     layer.close(index);

                                       })

                                }

                          break;

                        };

              });

              //行级工具栏 操作函数 , obj 直接是本行的数据  

              table.on('tool(appendTools)', function(obj){ 

                        var data = obj.data //获得当前行数据

                        ,layEvent = obj.event; //获得 lay-event 对应的值

                        if(layEvent === 'detail'){        

                                layer.open({

                                      id:"viewForm",

                                      title:"查看用户信息",

                                      type: 2,  

                                      area: ['400px', '400px'],   

                                      content: '<%=basepath>/user/views.do?id='+data.id,

                                      zIndex: layer.zIndex, //重点1

                                      success: function(layero){

                                             layer.setTop(layero); //重点2

                                      }

                        }); 

                } else if(layEvent === 'del'){

                        layer.confirm('真的删除行么', function(index){

                               var data = obj.data ;

                             $.ajax({

                                url : "<%=basepath>/user/deletes.do?id="+data.id,

                                type : "GET",

                                dataType : "json",

                                success : function(result){

                                table.reload('testRelaod');

                                }

                            });

                     layer.msg("删除成功");

                              obj.del(); //删除对应行(tr)的DOM结构

                              layer.close(index);  //删除结束后,自动关闭本弹出层

                      });

                } else if(layEvent === 'edit'){   

                                layer.open({

                                      id:"updateForm", //编辑ID

                                      title:"编辑用户信息", 

                                      btn:["提交修改"],  

                                      type: 2,   //嵌入网页模式

                                      area: ['400px', '400px'],

                                      content: '<%=basepath>/user/updates?id='+data.id,

                                      zIndex: layer.zIndex, //重点1

                                      success: function(layero){

                                                layer.setTop(layero); //重点2

                                      }, 

                                      yes: function(index, layero){

                                                //这里未进行优化, 关闭窗体采用 自动触发

                                                var frameId=document.getElementById('updateForm').getElementsByTagName("iframe")[0].id;

                                                $('#'+frameId)[0].contentWindow.mySubmit();  //调用子界面的某个方法, 方法内部 触发表单提交

                                                layer.msg("修改成功");

                                                layer.close(index); //如果设定了yes回调,需进行手工关闭

                                       },

                                       end: function(){

                                               table.reload('testRelaod');

                                       }

                                }); 

                }

              }); 

            });


添加弹窗模块:

1)初始化弹窗内界面效果, 前提(引入layui效果)

    image.png

2)渲染弹窗页面效果   

        layui.use([ 'form', 'layer' ], function() {

                    var form = layui.form

                      ,layer = layui.layer

                var index = parent.layer.getFrameIndex('addForm');   //重点: 获取主界面内  弹窗layer的index值

                form.on('submit(searchbtn1)', function(data) {

                        var data  =  $("#addForm3").serialize();  //读取弹窗内form表单的数据

                        $.ajax({  //这里使用异步提交

                                url : "<%=basepath>/user/adds.do",    

                                type : "POST",

                                dataType : "json",

                                data :  data,

                                success : function(result){

                                var rs = result.status;

                                if(rs == 1){     //根据服务器返回结果   关闭弹框

                                    parent.layer.close(index);

                                    parent.layer.msg("添加用户成功");

                                }else{

                                    layer.msg("添加用户出现错误"); 

                                }

                        }

                    });

                    return false;

                });

});



如有疑问 请留言 欢迎提供建议
  • 0

    开心

  • 0

    板砖

  • 0

    感动

  • 0

    有用

  • 0

    疑问

  • 0

    难过

  • 0

    无聊

  • 0

    震惊

评论已有 0