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 相关文章推荐
JavaScript常用对象的方法和属性小结
Jan 24 Javascript
JavaScript实现常用二级省市级联下拉列表的方法
Mar 25 Javascript
jQuery入门基础知识学习指南
Aug 14 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
Sep 15 Javascript
js select实现省市区联动选择
Apr 17 Javascript
connection reset by peer问题总结及解决方案
Oct 21 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
Aug 17 Javascript
vue 粒子特效的示例代码
Sep 19 Javascript
javascript字体颜色控件的开发 JS实现字体控制
Nov 27 Javascript
Vue 监听列表item渲染事件方法
Sep 06 Javascript
JS基于ES6新特性async await进行异步处理操作示例
Feb 02 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
Dec 04 Javascript
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
常用的php对象类型判断
2008/08/27 PHP
php简单的会话类代码
2011/08/08 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
2014/06/10 PHP
2个比较经典的PHP加密解密函数分享
2014/07/01 PHP
PHP文件缓存类示例分享
2015/01/30 PHP
PHP动态输出JavaScript代码实例
2015/02/12 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
thinkPHP框架RBAC实现原理分析
2019/02/01 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
js创建对象的区别示例介绍
2014/07/24 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
JavaScript根据CSS的Media Queries来判断浏览设备的方法
2016/05/10 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
微信小程序新手教程之页面打开数量限制
2019/03/03 Javascript
关于vue表单提交防双/多击的例子
2019/10/31 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
python实现的各种排序算法代码
2013/03/04 Python
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
Python类的用法实例浅析
2015/05/27 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
2020/01/18 Python
浅谈Python 参数与变量
2020/06/20 Python
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
比驿:全球酒店比价网
2018/06/20 全球购物
计算机专业职业生涯规划范文
2014/01/19 职场文书
秘书英文求职信范文
2014/01/31 职场文书
护士2014年终工作总结
2014/11/11 职场文书
原告代理词范文
2015/05/25 职场文书
运动会广播稿300字
2015/08/19 职场文书
python爬取企查查企业信息之selenium自动模拟登录企查查
2021/04/08 Python