layui table 表格上添加日期控件的两种方法


Posted in Javascript onSeptember 28, 2019

方法一:

var tableInit = table.render({
        elem: '#tbtxrz'
        , method: 'post'
        , data: jsonData
        , height: "auto"
        , id: "tbtxrz"
        , text: {none: '暂无相关数据'}
        , toolbar: toolbartxrz
        , cols: [[
          {
//设置表格中部分字体的颜色
            field: "number", title: "序号", width: 60, align: "left", templet: function (data) {
              return data.LAY_INDEX 
            }
          }
          , {field: "ID", title: "ID", align: "left", hide: true}
          , {field: "sjbs", title: "sjbs", align: "left", hide: true}
          , {field: "xh", title: "xh", align: "left", hide: true}
          , {field: "action", title: "action", align: "left", hide: true}
          , {field: "txmc", title: "<span style='color:#c00'></span>体系名称", width: 140, align: "left", edit: 'text'}
          , {field: "rztxmc", title: "<span style='color:#c00'>*</span>认证体系名称", width: 140, align: 'left', edit: 'text'}
          , {
            field: "rzrq", title: "认证日期", width: 160, align: 'left',event: 'editStartDate',data_field:'rzrq'
          /*  templet: function (d) {
              return ' <input type="text" name="rzrq" class="layui-input layui-input-date" value="' + d.rzrq + '" id="txrzrq'+d['LAY_TABLE_INDEX'] +'">'
            }*/
          }
          , {field: "rzjg", title: "<span style='color:#c00'>*</span>认证机构", width: 140, align: 'left', edit: 'text'}
          , {
            field: "zsdqsj", title: "<span style='color:#c00'>*</span>证书到期时间", width: 160, align: 'left',event: 'editzsdqsj',data_field:'zsdqsj'
           /* templet: function (d) {
              return ' <input type="text" name="zsdqsj" class="layui-input layui-input-date" value="' + d.zsdqsj + '" id="test2">'
            }*/

          }
          , {field: "rzfgcp", title: "认证覆盖产品", width: 140, align: 'left', edit: 'text'}
          , {
            field: "jhrzsj", title: "若无,计划认证时间", width: 160, align: 'left', edit: 'select',

          }
          , {field: "ywjm", title: "原文件名", width: 140, align: 'left'}
          , {
            field: '操作', title: '操作', width: '10%', unresize: true, templet: function (res) {
              return '<button type="button" class="layui-btn layui-btn-xs" data-type="' + res['LAY_TABLE_INDEX'] + '" id="uploadFile' + res['LAY_TABLE_INDEX'] + '" lay-event="upload"><i class="layui-icon layui-icon-upload-drag"></i></button> <button type="button" class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del"><i class="layui-icon layui-icon-delete"></i></button>';
            }
          }
          , {field: "pc", title: "批次", align: 'left', hide: true}
          , {field: "cdmc", title: "cdmc", align: 'left', hide: true}
          , {field: "scsj", title: "scsj", align: 'left', hide: true}
          , {field: "ccm", title: "ccm", align: 'left', hide: true}
          , {field: "xg", title: "xg", align: 'left', hide: true}
          , {field: "fjm", title: "fjm", align: 'left', hide: true}
          , {field: "fjID", title: "fjID", align: 'left', hide: true}
        ]]
        , done: function (res, curr, count) {
          //日期控件
          // 上传文件
          var data = res.data;
          for (var i = 0; i < data.length; i++) {
            var elem = '#uploadFile' + i;
            //循环初始上传组件
            var uploadInst = upload.render({
              elem: elem //绑定元素
              , url: $("#contextpath").val() + '/upload/uploadFile2.do' //上传接口
              , field: 'files'
              , auto: true
              , accept: 'file'
              // ,exts: 'xls|xlsx|csv'
              //添加上传额外参数
              , data: {
                sjbs: function () {
                  var sjbs = $("#sjbs").val();
                  var logId = $("#logId").val();
                  if (sjbs !== null && sjbs.length > 0) {
                    sjbs = sjbs;
                  } else {
                    sjbs = $("#sjbs").attr('name') + new Date().getTime();//设置每次新增的批次
                    $("#sjbs").val($("#sjbs").attr('name') + new Date().getTime());//如果没有创建时间标识,就自己新增
                  }
                  mcs.setSjbs(sjbs);
                  return sjbs;
                }
              }
              //文件上传前回调
              , before: function (obj) {
                //开启加载
                layer.load(2, {time: 10 * 1000, offset: '200px'});
                //从表格缓存中获取table指定行数据
                updateRow = tableRowTool.data;
                var files = this.files = obj.pushFile();
                obj.preview(function (index, file, result) {
                  updateRow['scsj'] = new Date(new Date()).format("yyyy-MM-dd hh:mm:ss");
                  updateRow['ywjm'] = file.name;
                  updateRow['xg'] = 1;
                  // updateRow['wjdx'] = (file.size/1024).toFixed(1) +'kb';
                })
              }
              //上传成功后回调
              , done: function (res, index, upload) {
                txrzxg = true;
                layer.closeAll();
                if (res.status === "Y") {
                  updateRow['ccm'] = res.fileName;
                  updateRow['sjbs'] = res.sjbs;
                  //文件上传成功,更新表格数据
                  tableRowTool.update(updateRow);
                  //文件上传成功后,去掉.layui-table-click Table选中行状态
                  tableRowTool.tr.prop("class", "");
                  layer.msg(res.msg, {
                    icon: 1
                    , time: 2000
                    , offset: '200px'
                  }, function () {

                  })
                } else {
                  layer.msg(res.msg, {
                    icon: 5
                    , time: 2000
                    , offset: '200px'
                  })
                }
                //删除文件队列已经上传成功的文件
                return delete this.files[index];
              }
              //上传错误回调
              , error: function () {
                layer.closeAll();
                //请求异常回调
              }
            });
          }
        layer.closeAll();
        }

      })

处理方法:

//监听行工具事件
    table.on('tool(tbtxrz)', function (obj) {
      var data = obj.data;
      if(obj.event === 'editStartDate'){
        var field = $(this).data('field');
        laydate.render({
          elem: this.firstChild
          , show: true //直接显示
          , closeStop: this
          , done: function (value, date) {
            data[field] = value;
            obj.update(data);
          }
        });
      }
      else if (obj.event='editzsdqsj'){
        var field = $(this).data('field');
        laydate.render({
          elem: this.firstChild
          , show: true //直接显示
          , closeStop: this
          , done: function (value, date) {
            data[field] = value;
            obj.update(data);
          }});
      }

    });

方法二:不建议使用,因为不够灵活

js代码:

var layer = layui.layer, form = layui.form, table = layui.table;
      var $ = layui.$;
      /*select gysmc,zyzw ,xm ,sjhm ,bgshm ,emilyx ,
      zgsrgzwsj ,zggsgl ,cast(gysxxid as int) as gysxxid, pc,
       gysryxxMdataID as ID,sjbs from gysryxxMdata*/
      var tableInit = table.render({
        elem: '#tbgysplay'
        , method: 'post'
        , data: jsonData
        , height: "auto"
        , id: "tbgysplay"
        , text: {none: '暂无相关数据'}
        , toolbar: "#toolbarplan"
        , cols: [[
          {type: "checkbox", fixed: "left", width: 50}
          , {
            field: "number", title: "序号", width: '10%', align: "left", templet: function (data) {
              return data.LAY_INDEX
            }
          }
          , {field: "ID", title: "ID", align: "left", hide: true}
          , {field: "action", title: "action", align: "left", hide: true}
          , {field: "sjbs", title: "sjbs", align: "left", hide: true}
          , {field: "供应商名称", title: "供应商名称", width: '15%', align: "left"}
          , {field: "主要产品类型", title: "主要产品类型", width: '15%', align: 'left'}
          , {field: "所在省份", title: "所在省份", width: '15%', align: 'left'}





, {
  





 field: "PSA计划时间", title: "PSA计划时间", width: '20%', align: 'left', templet:function (d) {
   
   



    return  ' <input type="text" class="layui-input layui-input-date" value="'+d.PSA计划时间+'" id="test1">'
 





 }

}
, {field: "PSA计划负责人", title: "PSA计划负责人", align: 'left',edit:'text'} ]] , done: function (res) {//当数据渲染完后,执行的回调 //日期控件 $(".layui-input-date").each(function (i) { layui.laydate.render({ elem: this, format: "yyyy-MM-dd", done: function (value, date) { if (res && res.data[i]) { $.extend(res.data[i], {'PSA计划时间': value}) } } }); }); layer.closeAll(); } });

以上这篇layui table 表格上添加日期控件的两种方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
利用js实现在浏览器状态栏显示访问者在本页停留的时间
Dec 29 Javascript
基于JavaScript定位当前的地理位置
Apr 11 Javascript
BootStrap Fileinput上传插件使用实例代码
Jul 28 Javascript
微信小程序实现顶部选项卡(swiper)
Jun 19 Javascript
prototype.js简单实现ajax功能示例
Oct 18 Javascript
jquery实现企业定位式导航效果
Jan 01 jQuery
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
Jul 04 Javascript
PostgreSQL Node.js实现函数计算方法示例
Feb 12 Javascript
JS+php后台实现文件上传功能详解
Mar 02 Javascript
vue动态注册组件实例代码详解
May 30 Javascript
微信小程序实现点击卡片 翻转效果
Sep 04 Javascript
利用Vue实现简易播放器的完整代码
Dec 30 Vue.js
Layui选项卡制作历史浏览记录的方法
Sep 28 #Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
Sep 28 #Javascript
layui的select联动实现代码
Sep 28 #Javascript
关于layui的下拉搜索框异步加载数据的解决方法
Sep 28 #Javascript
layui的数据表格+springmvc实现搜索功能的例子
Sep 28 #Javascript
layui下拉列表select实现可输入查找的方法
Sep 28 #Javascript
解决layui下拉框监听问题(监听不到值的变化)
Sep 28 #Javascript
You might like
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
php中static静态变量的使用方法详解
2010/06/04 PHP
PHP在线生成二维码代码(google api)
2013/06/03 PHP
PHP解析html类库simple_html_dom的转码bug
2014/05/22 PHP
PHP自定义函数实现数组比较功能示例
2017/10/19 PHP
TopList标签和JavaScript结合两例
2007/08/12 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
页面装载js及性能分析方法介绍
2014/03/21 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
详解nodeJS之二进制buffer对象
2017/06/03 NodeJs
JS中把函数作为另一函数的参数传递方法(总结)
2017/06/28 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
2019/04/24 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
[03:03]2014DOTA2国际邀请赛 EG战队专访
2014/07/12 DOTA
linux下python抓屏实现方法
2015/05/22 Python
Python 描述符(Descriptor)入门
2016/11/20 Python
Python tkinter事件高级用法实例
2018/01/31 Python
Python实现的购物车功能示例
2018/02/11 Python
python实时监控cpu小工具
2018/06/21 Python
python自动识别文本编码格式代码
2019/12/26 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
Python 使用office365邮箱的示例
2020/10/29 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
解析HTML5的存储功能和web SQL的相关操作方法
2016/02/19 HTML / CSS
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
行政经理岗位职责
2013/11/09 职场文书
公司行政经理岗位职责
2013/12/24 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话
2014/10/21 职场文书
世界文化遗产导游词
2015/02/13 职场文书
2016年教师节慰问信
2015/12/01 职场文书