layui 中open、 table等配置--jquery事件绑定方式

基本配置

当content为一个 dom元素的时候,弹出框出现异常
解决办法:  将type设置为 1,内容就正常了

在这里插入图片描述

 * 登录弹框
    * */
    $('.loginFn').click(function () {
        layer.open({
            title: false,
            type: 1,
            content: $('#login-dial'),
            closeBtn: 0,
            success: function (layero, index) {
                $("a.layui-layer-btn0").hide()
            },
        });
        //    修改弹窗样式
        $('#login-dial').css('padding', '21px')

    })

调整layui的弹出框msg的字体大小以及其他样式

//文本里面可以加html标签
let sure = layer.msg('<span style="font-size:20px">确定喜欢她吗?</span>', {
        time: 0 //0表示不自动关闭 ,time自动关闭所需毫秒 ,单位是毫秒(1秒=1000毫秒)
        , btn: ['<span style="font-size:20px">确定</span>', '<span style="font-size:20px">取消</span>'],
           //success指的是 修改按钮的样式 三种样式left center right
           success: function(layero){
               layero.find('.layui-layer-btn').css('text-align', 'center')
           }
        , yes: function (index) {
            点击确定触发事件
        }
    });
//sure指的是上面的msg弹出层,定义msg弹出层的样式
layer.style(sure,{
    width:10px,
    height:10px
});

layui的弹出框open常用的两种功能

let html = "这里面写任何html内容";
比如:let html ='<div class="nav_upload">\n' +
    '    <input type="text" value="我是html"/>\n' +
    '</div>\n' +
    '<script>\n' +
    '这里写交互功能'+
    '</script>';

  layer.open({
          type: 1 //Page层类型 
          ,area: ['720px', '500px']//弹出层页面比例,类型:String/Array,默认:'auto',在默认状态下,layer是宽高都自适应的,但当你只想定义宽度时,你可以area: '500px',高度仍然是自适应的。当你宽高都要定义时,你可以area: ['500px', '300px']
          ,offset:'auto'// 坐标 类型:String/Array  默认:垂直水平居中 offset默认情况下不用设置,
          // ,title: '照片上传'//title默认显示在左边,能拖动了
          ,title: ['照片上传','text-align:center']//传一个数组,第一个参数标题,第二个参数可以写任何css样式,能拖动
          // ,title: false//不显示title,但是不能拖动了
          ,shade: 0.6 //遮罩透明度 类型:String/Array/Boolean 弹层外区域。默认是0.3透明度的黑色背景('#000')。如果你想定义别的颜色,可以shade: [0.8, '#393D49'];如果你不想显示遮罩,可以shade: 0
          ,maxmin: true //允许全屏最小化
          ,anim: 1 //0-6的动画形式,-1不开启
          , content: html//在这里面输入任何合法的js语句
      });

 layer.open({
            type: 2 //2类型,解析url iframe层
            ,closeBtn: 1 //关闭按钮是否显示 1显示0不显示
            ,title: "我是标题"//页面标题
            ,shadeClose: true //点击遮罩区域是否关闭页面
            ,shade: 0.8 //遮罩透明度 类型:String/Array/Boolean 弹层外区域。默认是0.3透明度的黑色背景('#000')。如果你想定义别的颜色,可以shade: [0.8, '#393D49'];如果你不想显示遮罩,可以shade: 0
            ,area: ['600px', '600px'] //弹出层页面比例
            ,content: 'XXX.html'//弹出层的url,//这里content是一个URL,如果你不想让iframe出现滚动条,你还可以content: ['XXX.html', 'no']
        });

jquery绑定事件建议这种形式

    /*
   * 注册弹框user_register
   * */
    $(document).on("click", "#user_register", function () {
        layer.open({
            title:'账户注册',
            type: 2,
            content: './register',
            // content: ['./register','no'],
            area: ['760px','690px'],
            shadeClose: true, //点击遮罩区域是否关闭页面
        });
        // //    修改弹窗样式
        // $('#register-dial').css('width', '800px')
        // $('#register-dial').css('height', '800px')

    })

避免:

    /*
    * 登录弹框user_SignIn
    * */
    $('#user_SignIn').click(function () {
        layer.open({
            title: false,
            type: 1,
            content: $('#login-dial'),
            closeBtn: 0,
            shadeClose: true, //点击遮罩区域是否关闭页面
            success: function (layero, index) {
                $("a.layui-layer-btn0").hide()
            },
        });
        //    修改弹窗样式
        $('#login-dial').css('padding', '21px')

    })

layui-open不同页面之间的传参

传参方—

/***************裁剪上传begin*****************/
$(document).on("click","#logoTrigger",function(){
           console.log(src,333)
           var url = "/system/app/companyLogo?src='"+ src +"'";
           // var url = '/system/app/companyLogo';
           layer.open({
               type: 2,
               content: [url, 'no'],
               area: ['1200px', '800px'],
               fix: false,
               //不固定
               maxmin: true,
               shade: 0.3,
               title: "修改企业logo",
               btn: ['确定', '关闭'],
               // 弹层外区域关闭
               shadeClose: true,
               yes: function(index, layero) {
                   console.log(index, layero,77777)
                   var iframeWin = layero.find('iframe')[0];
                   iframeWin.contentWindow.submitHandler(index, layero);
               },
               cancel: function(index) {
                   return true;
               }
           });

       });

接收方:

    $(window).load(function() {
        getUrlParam('src');
        console.log(getUrlParam('src'))
        function getUrlParam(name)
        {
            var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
            var r = window.location.search.substr(1).match(reg); //匹配目标参数
            if (r!=null) return unescape(r[2]); return null; //返回参数值
        }
        })
decodeURI

方法二

//传参
 layer.open({
     type: 2,
      title: "补单",
      shade: 0.1,
      area: ['800px', '100%'],
      content: MODULE_PATH + '/myOrderMakeUp/' + orderId + '/' + id + '?status=1' //要传的参数status
     
      ,success: function(layero, index){
          $(':focus').blur();
      }
  });
//接参
// //URL中的值
var urlStatus = getQueryString('status');

//查询URL参数值
function getQueryString(name) {
   var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
   var r = window.location.search.substr(1).match(reg);
   if (r != null) {//decodeURIComponent
       return decodeURI(r[2]);
   }
}

确定关闭弹窗

                    layer.open({
                        type: 2,
                        content: [url, 'no'],
                        area: ['800px', '560px'],
                        fix: false,
                        //不固定
                        maxmin: true,
                        shade: 0.3,
                        title: "用户端配色",
                        btn: ['确定', '取消'],
                        // 弹层外区域关闭
                        shadeClose: true,
                        yes: function(index, layero) {
                            // console.log(index, layero,'index, layero')
                            var iframeWin = layero.find('iframe')[0];
                            iframeWin.contentWindow.submitHandler(index, layero);
                            $(".layui-layer-close1").trigger('click');

                        },
                        cancel: function(index) {
                            return true;
                        }
                    });

layui 全局调用layer

  var layer;
    layui.use(['layer',], function () {
        layer = layui.layer;
        $("[data-skin]").on('click', function (e) {
                var skin = $(this).data('skin');
                //点击配色图片加上红色边框
                var f = this;
                $('#change-bg li a').each(function () {
                    this.className = this == f ? 'active clearfix full-opacity-hover' : 'clearfix full-opacity-hover'
                })

                storage.set('skin', skin);
            });



    })

    function submitHandler() {
        var skin=storage.get('skin');
        console.log(skin,'skin,col,color')
        var data=JSON.stringify({"color":skin})
        $.ajax({
            url: 'UpdateUserData',
            data: data,
            type: "post",
            contentType: 'application/json;charset=UTF-8',
            success: function(result) {
                console.log(result,888)
                if(result.code==0){
                    layer.msg('用户端配色成功',{icon:1,time:1000});
                }else {
                    layer.msg('用户端配色失败',{icon:2,time:1000});
                }
            }
        })
    }

确定按钮隐藏:

 // , btn: ['确定', '取消']
 $("a.layui-layer-btn0").hide()

设置单选框类型为radio 的值,刷新layui-open弹窗radio的值

在这里插入图片描述

//iNav为要设置的值
   $("#radio"+iNav).prop("checked",true);
   //下面的方法也可
  //$("input[name='navs'][value='iNav']").prop("checked",true);

//刷新表单
//第二个参数:为 class="layui-form" 所在元素的 lay-filter="" 的值
 form.render("radio","test1");

解决layer.open的出现【object object】的问题

				layer.open({
				  title: false,
				  type:1,         //重点在这里,设置type为1可以解决 [object Object] 的问题
				  closeBtn: 0,
				  content: $('#id')
				});  

弹窗调整样式

layer.open({
   type: 2,
   content: [url, 'no'],
   // area: ['1200px', '800px'],
   area: ['1057px', '657px'],
   fix: false,
   //不固定
   maxmin: true,
   shade: 0.3,
   title: "修改企业logo",
   btn: ['确定', '关闭'],
   // 弹层外区域关闭
   shadeClose: true
   ,success:function(){
       //弹窗确定取消样式
       $('.layui-layer-btn').css('paddingTop', '0px')
   }
   ,yes: function(index, layero) {
       var iframeWin = layero.find('iframe')[0];
       iframeWin.contentWindow.submitHandler();
   },
   cancel: function(index) {
       return true;
   }
});

layer.open() 引用另一个页面,及引用同一页面的div(以class或者id形式)

引用另一个页面1,另一个页面功能写全即可

    /*
   * 注册弹框user_register
   * */
    $(document).on("click", "#user_register", function () {
        layer.open({
            title:'账户注册',
            type: 2,
            content: ['./register','no'],
            area: ['400px','690px'],
            shadeClose: true, //点击遮罩区域是否关闭页面
        });
    })

引用另一个页面2

                   var iColor=$("#change-bg").attr('iColor').split("|")[0]
                    var url = "/system/app/color?col='"+iColor+"'";
                    // var url = "/system/app/color";
                    layer.open({
                        type: 2,
                        content: [url, 'no'],
                        area: ['800px', '560px'],
                        fix: false,
                        //不固定
                        maxmin: true,
                        shade: 0.3,
                        title: "用户端配色",
                        btn: ['确定', '取消'],
                        // 弹层外区域关闭
                        shadeClose: true
                        ,success:function(){

                        }
                        ,yes: function(index, layero) {
                            var iframeWin = layero.find('iframe')[0];
                            iframeWin.contentWindow.submitHandler();
                            // setTimeout(function () {
                            //     layer.close(index);
                            // },1000)
                        },
                        cancel: function(index) {
                            return true;
                        }
                    });

引用同一页面,功能已经写在本页面

    //登录弹窗
    $('#user_SignIn').click(function () {
        layer.open({
            title: false,
            type: 1,
            content: $('#login-dial'),
            area: ['400px','410px'],
            closeBtn: 0,
            shadeClose: true, //点击遮罩区域是否关闭页面
            success: function (layero, index) {
                $("a.layui-layer-btn0").hide()
            },
        });
        //修改弹窗样式
        $('#login-dial').css('padding', '21px')
    })

layui弹窗引用本页面的《div》,确定和取消在div中自定义。

 setTimeout(function(){
 	layer.closeAll();
  },2000)

弹窗引用:

layer.open({
    title: '修改企业信息'
    , type: 1
    , shadeClose: true
    , scrollbar: false
    , content: $('#qyDialog')
    , area: '900px'
    , shade: 0.3
    , maxmin: true
    , success: function () {
        var companyName = data.data.companyName;

        var provincePop = data.data.address.split(",")[0]; //省
        var cityPop = data.data.address.split(",")[1]; //市
        var areaPop = data.data.address.split(",")[2] || ''; //区

        var companyAddress = data.data.companyAddress;  //详细地址
        var industry = data.data.industry;
        var userName = data.data.userName;
        var email = data.data.email;
        var phonenumber = data.data.phonenumber;

        $('#companyName').val(companyName)

        $("#provincePopup").attr("data-value", provincePop);		//所在区域
        $("#cityPopup").attr("data-value", cityPop);
        $("#areaPopup").attr("data-value", areaPop);


        $('#companyAddress').val(companyAddress)  //详细地址
        $('#industry').val(industry)
        $('#userName').val(userName)
        $('#email').val(email)
        $('#phonenumber').val(phonenumber)

        //地区初始化
        layarea.render({
            elem: '#area-picker',
            change: function (res) {
                //选择结果
                console.log(res, 666666);
            }
        });
        form.render("select", 'test1')
    }
    
});

弹窗中内容提交:

//注册修改企业账户--表单提交
form.on('submit(formDemo)', function (data) {
   var codes = $("input[name='code']").val();
   var code = $.trim(codes)
   var paramsForm = {};
   paramsForm.companyName = data.field.companyName
  ............
   if(paramsForm.companyName==''){
       layer.msg("请输入企业名称!", {icon: 2, time: 1500});
       return false;
   }
   if(data.field.province_name==''){
       layer.msg("请输入企业所在地省!", {icon: 2, time: 1500});
       return false;
   }
   if(data.field.city_name==''){
       layer.msg("请输入企业所在地市!", {icon: 2, time: 1500});
       return false;
   }
   if(paramsForm.companyAddress==''){
       layer.msg("请输入企业详细地址!", {icon: 2, time: 1500});
       return false;
   }
   if(paramsForm.industry==''){
       layer.msg("请输入企业所属行业!", {icon: 2, time: 1500});
       return false;
   }
   if(paramsForm.userName==''){
       layer.msg("请输入管理员姓名!", {icon: 2, time: 1500});
       return false;
   }
   if(paramsForm.email==''){
       layer.msg("请输入管理员邮箱号!", {icon: 2, time: 1500});
       return false;
   }
   if(paramsForm.phonenumber==''){
       layer.msg("请输入管理员手机号!", {icon: 2, time: 1500});
       return false;
   }
   if(paramsForm.code==''){
       layer.msg("请输入管理员手机验证码!", {icon: 2, time: 1500});
       return false;
   }

   var url = ctx + 'system/user/profile/saveOrUpDateCompanyInfo';
   $.ajax({
       type: 'post',
       url: url,
       contentType: "application/json; charset=UTF-8",
       data: JSON.stringify(paramsForm),
       async: true,
       success: function (data) {
           if (data.code == 0) {
               layer.msg('企业账户开通/修改成功', {icon: 1, time: 1500});
           } else {
               layer.msg(data.msg, {icon: 2, time: 1500});
           }
           setTimeout(function(){
               layer.closeAll();
           },2000)

       }
   });
   return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
});

layui中table表头自定义图标

 {
   field: 'type',
      title: '类型<i class="question-img" title="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</i>',
      width: '16%',
      align: 'center',
  },
//css
.question-img{
    width: 16px;
    height: 16px;
    background-image: url('../../images/configure/question.png');
    background-repeat: no-repeat;
    background-size: 16px 16px;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值