目录
鼠标放在图标上悬浮显示提示信息,效果图如下
<div style="float:left; line-height:40px">道试题 <i class="layui-icon layui-icon-tips" lay-tips="不超过3题" >i>div>
- // 悬浮提示
- $('*[lay-tips]').on('mouseenter', function(){
- var content = $(this).attr('lay-tips');
- this.index = layer.tips(''+ content + '', this, {
- time: -1
- ,maxWidth: 280
- ,tips: [3, '#3A3D49']
- });
- }).on('mouseleave', function(){
- layer.close(this.index);
- });
- var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
- parent.location.reload();//刷新父页面,注意一定要在关闭当前iframe层之前执行刷新
- parent.layer.close(index); //再执行关闭
整体逻辑:1.在父层添加隐藏域用于接收子窗口的要传的值;2.在子窗口把要传的值赋给父层的隐藏域输入框;3.在父层的end函数里去获取隐藏域的值
父层 HTML。添加隐藏域用于接收,用来接收关闭子窗口后传回的值
- <input id="new_shijuan_id" value="" hidden="hidden">
-
- <button class="layui-btn layui-btn-normal make_btn" ><i class="fa fa-plus" aria-hidden="true">i> 去组卷button>
父层 js。 打开一个子窗口,执行完毕后调用end方法,通过end获取隐藏域的值,就可以对接收的值进行后续操作
- //组卷弹窗
- $(".make_btn").click(function () {
-
- layer.open({
- type: 2,
- title: '设置组卷参数',
- shadeClose: true,
- shade: false,
- maxmin: true, //开启最大化最小化按钮
- area: ['70%', '90%'],
- content: 'makerule?shijuan_id={$info.id}',
- end:function () {
- var new_shijuan_id = $("#new_shijuan_id").val();
- console.log(new_shijuan_id)
- $(".shijuan").empty();
- $.ajax({
- url:'getShiJuan',
- type:'POST',
- dataType:'JSON',
- data:{new_shijuan_id:new_shijuan_id},
- success:function (res) {
- console.log(res)
- var html = ''
- if (res.code == 200) {
- html += '
- '+res.data.filename+'\
- \
- $(".shijuan").append(html);
- }
- }
- })
- }
- });
- })
子窗口:这里只展示关键部分,可以是请求后台后,后台返回值,通过parent.$("#new_shijuan_id").val(res.data);给父层的隐藏域赋值,关键在这一步
- layer.msg(res.message, {
- time: 2000 //2秒关闭(如果不配置,默认是3秒)
- }, function(){
- var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
- // parent.location.reload();//刷新父页面,注意一定要在关闭当前iframe层之前执行刷新
- parent.$("#new_shijuan_id").val(res.data);
- parent.layer.close(index); //再执行关闭
- });
使用 util 工具集进行时间戳转换
- var util = layui.util;
-
- var myTable = table.render({
- id: 'myTable'
- ,elem: '#myTable'
- ,url: 'tjxcgflow'
- ,toolbar: '#myBar'
- ,totalRow: true
- ,cols: [[
- {field: 'name', title: '上报教师', width: '15%', fixed: 'left'},
- {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")}}
- ]]
- ,page: true
- ,page: { // 支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
- theme: '#1E9FFF' //颜色
- }
- });
主要是 templet:function (d) { return util.toDateString(d.create_time * 1000, "yyyy-MM-dd HH:mm:ss")}
- //行单击事件(双击事件为:rowDouble)
- table.on('row(test)', function(obj){
- var data = obj.data;
-
- layer.alert(JSON.stringify(data), {
- title: '当前行数据:'
- });
-
- //标注选中样式
- obj.tr.addClass('layui-table-click').siblings().removeClass('layui-table-click');
- });
注意几点:
① 搜索按钮的 lay-filter=“demo-table-search”要与js中监听的demo-table-search一致
② HTML中表格的id=“table-search”与js中table.render()的id和elem一致
③ HTML中的表格的id=“table-search”要与js中的执行重载的一致
HTML
- <form action="" class="layui-form layui-form-pane" method="post" style="float:left;">
- <div class="layui-form-item">
- <div class="layui-input-inline">
- <input type="text" name="chengguo" placeholder="教学成果" autocomplete="off" class="layui-input" value="{$chengguo}">
- div>
- <div class="layui-input-inline">
- <select name="teacher_id">
- <option value="">-选择教师-option>
- {volist name="teacher" id="v"}
- <option value="{$v.id}" {if $teacher_id == $v.id}selected{/if}>{$v.name}option>
- {/volist}
- select>
- div>
- <button class="layui-btn layui-btn-normal" lay-submit lay-filter="demo-table-search">
- <i class="fa fa-search" aria-hidden="true">i>
- button>
- div>
- form>
-
- <table class="layui-hide" id="table-search" lay-filter="test">table>
JS
- var myTable = table.render({
- id: 'table-search'
- ,elem: '#table-search'
- ,url: 'tjxcgflow'
- ,toolbar: '#myBar'
- ,totalRow: true
- ,cols: [[
- {field: 'name', title: '上报教师', width: '15%', fixed: 'left'},
- {field: 'chengguo', title: '成果名称', width: '20%', height:'auto', fixed: 'left'},
- {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")}}
- ]]
- ,page: true
- ,page: { // 支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
- theme: '#1E9FFF' //颜色
- }
- });
-
- // 搜索提交
- form.on('submit(demo-table-search)', function(data){
- var field = data.field; // 获得表单字段
- console.log(field)
- // 执行搜索重载
- table.reload('table-search', {
- page: {
- curr: 1 // 重新从第 1 页开始
- },
- where: field // 搜索的字段
- });
- //layer.msg('搜索成功
此处为静态模拟数据,实际使用时换成真实接口即可'); - return false; // 阻止默认 form 跳转
- });
- var myTable = table.render({
- id: 'table-search'
- ,elem: '#table-search'
- ,url: 'tbiaozhunflow'
- ,toolbar: '#myBar'
- ,totalRow: true
- ,cols: [[
- {field: 'biaozhun', title: '标准名称', width: '25%', height:'auto', fixed: 'left'},
- {field: 'kind', title: '标准类型', width: '15%', height:'auto', fixed: 'left',templet:function (d) {
- if (d.kind == 1) {
- return '国际标准'
- }else if (d.kind == 2) {
- return '国内标准'
- }
- }},
- {field: 'make_time', title: '制定时间', width: '15%', height:'auto', fixed: 'left',templet:function (d) { return util.toDateString(d.rz_end * 1000, "yyyy-MM")}},
- {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")}}
- ]]
- ,page: true
- ,page: { // 支持传入 laypage 组件的所有参数(某些参数除外,如:jump/elem) - 详见文档
- theme: '#1E9FFF' //颜色
- }
- });
持续更新 ~