• 【前端】Layui小功能收集整理


    目录

    1、layui 鼠标悬浮提示文字

    2、关闭当前窗口并刷新父页面

    3、子iframe关闭/传值/刷新父页面

    4、Layui数据表格中时间戳转时间或转日期

    5、layui动态表格单击行事件

    6、Layui动态表格搜索

    7、Layui动态表格根据不同的状态进行判断


    1、layui 鼠标悬浮提示文字

    鼠标放在图标上悬浮显示提示信息,效果图如下

    <div style="float:left; line-height:40px">道试题 <i class="layui-icon layui-icon-tips" lay-tips="不超过3题" >i>div>
    1. // 悬浮提示
    2. $('*[lay-tips]').on('mouseenter', function(){
    3. var content = $(this).attr('lay-tips');
    4. this.index = layer.tips('
      '+ content + '
      '
      , this, {
    5. time: -1
    6. ,maxWidth: 280
    7. ,tips: [3, '#3A3D49']
    8. });
    9. }).on('mouseleave', function(){
    10. layer.close(this.index);
    11. });

    2、关闭当前窗口并刷新父页面

    1. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
    2. parent.location.reload();//刷新父页面,注意一定要在关闭当前iframe层之前执行刷新
    3. parent.layer.close(index); //再执行关闭

    3、子iframe关闭/传值/刷新父页面

    整体逻辑:1.在父层添加隐藏域用于接收子窗口的要传的值;2.在子窗口把要传的值赋给父层的隐藏域输入框;3.在父层的end函数里去获取隐藏域的值

    父层 HTML。添加隐藏域用于接收,用来接收关闭子窗口后传回的值

    1. <input id="new_shijuan_id" value="" hidden="hidden">
    2. <button class="layui-btn layui-btn-normal make_btn" ><i class="fa fa-plus" aria-hidden="true">i> 去组卷button>

     父层 js。 打开一个子窗口,执行完毕后调用end方法,通过end获取隐藏域的值,就可以对接收的值进行后续操作

    1. //组卷弹窗
    2. $(".make_btn").click(function () {
    3. layer.open({
    4. type: 2,
    5. title: '设置组卷参数',
    6. shadeClose: true,
    7. shade: false,
    8. maxmin: true, //开启最大化最小化按钮
    9. area: ['70%', '90%'],
    10. content: 'makerule?shijuan_id={$info.id}',
    11. end:function () {
    12. var new_shijuan_id = $("#new_shijuan_id").val();
    13. console.log(new_shijuan_id)
    14. $(".shijuan").empty();
    15. $.ajax({
    16. url:'getShiJuan',
    17. type:'POST',
    18. dataType:'JSON',
    19. data:{new_shijuan_id:new_shijuan_id},
    20. success:function (res) {
    21. console.log(res)
    22. var html = ''
    23. if (res.code == 200) {
    24. html += '
      \
    25. '+res.data.filename+'\
    26. \
  • \
  • '
  • $(".shijuan").append(html);
  • }
  • }
  • })
  • }
  • });
  • })
  • 子窗口:这里只展示关键部分,可以是请求后台后,后台返回值,通过parent.$("#new_shijuan_id").val(res.data);给父层的隐藏域赋值,关键在这一步

    1. layer.msg(res.message, {
    2. time: 2000 //2秒关闭(如果不配置,默认是3秒)
    3. }, function(){
    4. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
    5. // parent.location.reload();//刷新父页面,注意一定要在关闭当前iframe层之前执行刷新
    6. parent.$("#new_shijuan_id").val(res.data);
    7. parent.layer.close(index); //再执行关闭
    8. });

    4、Layui数据表格中时间戳转时间或转日期

    使用 util 工具集进行时间戳转换

    1. var util = layui.util;
    2. var myTable = table.render({
    3. id: 'myTable'
    4. ,elem: '#myTable'
    5. ,url: 'tjxcgflow'
    6. ,toolbar: '#myBar'
    7. ,totalRow: true
    8. ,cols: [[
    9. {field: 'name', title: '上报教师', width: '15%', fixed: 'left'},
    10. {field: 'create_time', title: '提交时间', width: '20%', height:'auto', fixed: 'left',templet:function (d) { return util.toDateString(d.create_time * 1000, "yyyy-MM-dd HH:mm:ss")}}
    11. ]]
    12. ,page: true
    13. ,page: { // 支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
    14. theme: '#1E9FFF' //颜色
    15. }
    16. });

    主要是  templet:function (d) { return util.toDateString(d.create_time * 1000, "yyyy-MM-dd HH:mm:ss")}

    5、layui动态表格单击行事件

    1. //行单击事件(双击事件为:rowDouble)
    2. table.on('row(test)', function(obj){
    3. var data = obj.data;
    4. layer.alert(JSON.stringify(data), {
    5. title: '当前行数据:'
    6. });
    7. //标注选中样式
    8. obj.tr.addClass('layui-table-click').siblings().removeClass('layui-table-click');
    9. });

    6、Layui动态表格搜索

    注意几点:

    ① 搜索按钮的 lay-filter=“demo-table-search”要与js中监听的demo-table-search一致

    ② HTML中表格的id=“table-search”与js中table.render()的id和elem一致

    ③ HTML中的表格的id=“table-search”要与js中的执行重载的一致

    HTML

    1. <form action="" class="layui-form layui-form-pane" method="post" style="float:left;">
    2. <div class="layui-form-item">
    3. <div class="layui-input-inline">
    4. <input type="text" name="chengguo" placeholder="教学成果" autocomplete="off" class="layui-input" value="{$chengguo}">
    5. div>
    6. <div class="layui-input-inline">
    7. <select name="teacher_id">
    8. <option value="">-选择教师-option>
    9. {volist name="teacher" id="v"}
    10. <option value="{$v.id}" {if $teacher_id == $v.id}selected{/if}>{$v.name}option>
    11. {/volist}
    12. select>
    13. div>
    14. <button class="layui-btn layui-btn-normal" lay-submit lay-filter="demo-table-search">
    15. <i class="fa fa-search" aria-hidden="true">i>
    16. button>
    17. div>
    18. form>
    19. <table class="layui-hide" id="table-search" lay-filter="test">table>

    JS

    1. var myTable = table.render({
    2. id: 'table-search'
    3. ,elem: '#table-search'
    4. ,url: 'tjxcgflow'
    5. ,toolbar: '#myBar'
    6. ,totalRow: true
    7. ,cols: [[
    8. {field: 'name', title: '上报教师', width: '15%', fixed: 'left'},
    9. {field: 'chengguo', title: '成果名称', width: '20%', height:'auto', fixed: 'left'},
    10. {field: 'create_time', title: '提交时间', width: '20%', height:'auto', fixed: 'left',templet:function (d) { return util.toDateString(d.create_time * 1000, "yyyy-MM-dd HH:mm:ss")}}
    11. ]]
    12. ,page: true
    13. ,page: { // 支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
    14. theme: '#1E9FFF' //颜色
    15. }
    16. });
    17. // 搜索提交
    18. form.on('submit(demo-table-search)', function(data){
    19. var field = data.field; // 获得表单字段
    20. console.log(field)
    21. // 执行搜索重载
    22. table.reload('table-search', {
    23. page: {
    24. curr: 1 // 重新从第 1 页开始
    25. },
    26. where: field // 搜索的字段
    27. });
    28. //layer.msg('搜索成功
      此处为静态模拟数据,实际使用时换成真实接口即可');
    29. return false; // 阻止默认 form 跳转
    30. });

    7、Layui动态表格根据不同的状态进行判断

    1. var myTable = table.render({
    2. id: 'table-search'
    3. ,elem: '#table-search'
    4. ,url: 'tbiaozhunflow'
    5. ,toolbar: '#myBar'
    6. ,totalRow: true
    7. ,cols: [[
    8. {field: 'biaozhun', title: '标准名称', width: '25%', height:'auto', fixed: 'left'},
    9. {field: 'kind', title: '标准类型', width: '15%', height:'auto', fixed: 'left',templet:function (d) {
    10. if (d.kind == 1) {
    11. return '国际标准'
    12. }else if (d.kind == 2) {
    13. return '国内标准'
    14. }
    15. }},
    16. {field: 'make_time', title: '制定时间', width: '15%', height:'auto', fixed: 'left',templet:function (d) { return util.toDateString(d.rz_end * 1000, "yyyy-MM")}},
    17. {field: 'create_time', title: '提交时间', width: '20%', height:'auto', fixed: 'left',templet:function (d) { return util.toDateString(d.create_time * 1000, "yyyy-MM-dd HH:mm:ss")}}
    18. ]]
    19. ,page: true
    20. ,page: { // 支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
    21. theme: '#1E9FFF' //颜色
    22. }
    23. });


    持续更新 ~

  • 相关阅读:
    金仓数据库KingbaseES ksql工具用户指南及参考--5. Ksql 命令参考
    【译】IntelliJ IDEA 2023.2 最新变化——JetBrains IDE 中的 AI 助手
    【Linux】自己实现一个bash进程
    ES证书过期替换方案
    青海特色美食制作工艺数字化保护平台
    高可用集群 keepalived
    浅谈研发与制造运营双端之间的数字化探索
    Mac下更新python
    ssm基于java的轻院人事档案管理系统毕业设计源码271611
    AdvancedCombine/高级组合,Futures/转义闭包转换为未来发布者 的详细使用
  • 原文地址:https://blog.csdn.net/qq_25285531/article/details/133922451