• LayUI框架table内使用开关控件


    步骤重点:

    (1)行内添加开关控件,用templet初始化。

    (2)form.on设定监听事件(先定义 var form = layui.form后才能使用 )

     css部分

    1 <div style="padding:10px 20px;">
    2     @*明细*@
    3     <div>
    4         <table id="InspectionTable" lay-filter="InspectionTable"></table>
    5     </div>
    6     @*明细*@
    7 </div>

    JS部分

     1  //加载明细表
     2     function ReloadTableGrid(applyData) {
     3         layui.use('table', function () {
     4             var table = layui.table;
     5             var form = layui.form;
     6             table.render({
     7                 elem: '#InspectionTable'
     8                 , data: applyData
     9                 , title: '商检鉴定明细表'
    10                 , cols: [[
    11                     { field: 'Id', title: '主键',  100, align: 'center', hide: true },
    12                     { field: 'Type', title: '类型',  100, align: 'center', hide: true }
    13                     , { field: 'LicenceNo', title: '申请编号', align: 'center',  200, hide: true }
    14                     , {
    15                         field: 'LockMark', title: '锁定',  60, align: 'center', templet: function (d) {
    16                             return d.LockMark == "1" ? '<div><span class="fa fa-lock" style="color:green;cursor:pointer;"></span></div>' : '<div><span class="fa fa-unlock-alt" style="color:red;cursor:pointer;" ></span></div>'
    17                         }
    18                     }
    19                     , { field: 'StatusMark', title: '状态标识', align: 'center',  100, hide: true }
    20                     , { field: 'B_6', title: '3C目录内/外',  80, align: 'center', hide: true }
    21                     , { title: '3C目录内/外',  120, align: 'center', templet: '#3CcheckTemp' }
    22                     , { field: 'B_7', title: '单位',  80, align: 'center' }
    23                     , { title: '商品规格书',  100, align: 'center', templet: function (d) { return "<a class="layui-btn-nomal layui-btn-xs" lay-event="fileupload" style="color:blue;">查看附件</a>"; } }
    24                     , { fixed: (formType == "EDIT" ? 'right' : null), title: '操作',  70, align: 'center', templet: (formType == "EDIT" ? '#DemoTemp' : '') }
    25                 ]]
    26                 , height: '600'
    27                 ,  'full'
    28             });
    29             //行内控件监听事件
    30             form.on('switch(3Ccheck)', function (obj) {
    31                 var id = obj.value;
    32                 var tableCache = layui.table.cache.InspectionTable;
    33                 var result = obj.elem.checked ? 1 : 0;
    34                 for (var item in tableCache) {
    35                     if (tableCache[item].Id == id) {
    36                         tableCache[item].B_6 = result;
    37                     }
    38                 }
    39                 ReloadTableGrid(layui.table.cache.InspectionTable);
    40             });
    41             //右侧工具栏监听事件
    42             table.on('tool(InspectionTable)', function (obj) {
    43                 var data = obj.data;
    44                 var tableCache = layui.table.cache.InspectionTable;
    45                 switch (obj.event) {
    46                     case 'lock':
    47                         var files = FilesExists(data.Id);
    48                         if (files < 1) {
    49                             dialogMsg('未上传附件,无法锁定!', 0);
    50                         } else {
    51                             for (var item in tableCache) {
    52                                 if (tableCache[item].Id == data.Id) {
    53                                     tableCache[item].LockMark = "1";
    54                                     tableCache[item].StatusMark = "2";
    55                                 }
    56                             }
    57                             ReloadTableGrid(layui.table.cache.InspectionTable);
    58                         }
    59                         break;
    60                     case 'unlock':
    61                         for (var item in tableCache) {
    62                             if (tableCache[item].Id == data.Id) {
    63                                 tableCache[item].LockMark = "0";
    64                                 tableCache[item].StatusMark = "1";
    65                             }
    66                         }
    67                         ReloadTableGrid(layui.table.cache.InspectionTable);
    68                         break;
    69                     case 'fileupload':
    70                         childkeyValue = data.Id;
    71                         lock = data.LockMark;
    72                         initFileUpload(childkeyValue, lock);
    73                         break;
    74                     default: break;
    75                 }
    76             });
    77         });
    78     }
    79     //查看附件
    80     function initFileUpload(childkeyValue, lock) {
    81         var type = lock == "1" ? "READONLY" : formType;
    82         dialogOpen({
    83             id: 'FileUploadForm',
    84             title: '查看附件',
    85             url: '/CustomsManage/CustomsBizLicence/FileUploadForm?formType=' + type + '&keyValue=' + childkeyValue,
    86              '700px',
    87             height: '500px',
    88             btn: ['关闭'],
    89             callBack: function (iframeId) {
    90                 parent.window.frames["FileUploadForm"].dialogClose();
    91             }
    92         });
    93     }

    JS部分2

     1   //开关控件设定
     2   <script type="text/html" id="3CcheckTemp">
     3     {{#  if(d.B_6 == "1" && d.LockMark == "1"){ }}
     4     <input type="checkbox" name="3C" lay-skin="switch" lay-text="目录内|目录外" lay-filter="3Ccheck" value={{ d.Id}} checked disabled>
     5     {{#  } else if(d.B_6 == "1" && d.LockMark == "0") { }}
     6     <input type="checkbox" name="3C" lay-skin="switch" lay-text="目录内|目录外" lay-filter="3Ccheck" value={{ d.Id}} checked>
     7     {{#  } else if(d.B_6 == "0" && d.LockMark == "1") { }}
     8     <input type="checkbox" name="3C" lay-skin="switch" lay-text="目录内|目录外" lay-filter="3Ccheck" value={{ d.Id}} disabled>
     9     {{#  } else { }}
    10     <input type="checkbox" name="3C" lay-skin="switch" lay-text="目录内|目录外" lay-filter="3Ccheck" value={{ d.Id}}>
    11     {{#  } }}
    12 </script>
    13   //右侧操作栏控件设定
    14 <script type="text/html" id="DemoTemp">
    15     {{#  if(d.LockMark == "0"){ }}
    16     <a class="layui-btn layui-btn-xs" lay-event="lock">锁定</a>
    17     {{#  } }}
    18     {{#  if(d.LockMark == "1"){ }}
    19     <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="unlock">解锁</a>
    20     {{#  } }}
    21 </script>
    22 <script type="text/html" id="LAY-excel-export-ans">
    23     {{# layui.each(d.data, function(file_index, item){ }}
    24     <blockquote class="layui-elem-quote">{{d.files[file_index].name}}</blockquote>
    25     <div class="layui-tab">
    26         <ul class="layui-tab-title">
    27             {{# layui.each(item, function(sheet_name, content) { }}
    28             <li class="layui-this">{{sheet_name}}</li>
    29             {{# }); }}
    30         </ul>
    31         <div class="layui-tab-content">
    32             {{# layui.each(item, function(sheet_name, content) { }}
    33             <div class="layui-tab-item layui-show">
    34                 <table class="layui-table">
    35                     {{# layui.each(content, function(row_index, value) { }}
    36                     {{# var col_index = 0 }}
    37                     <tr>
    38                         {{# layui.each(value, function(col_key, val) { }}
    39                         <td id="table-export-{{file_index}}-{{sheet_name}}-{{row_index}}-{{col_index++}}">{{val}}</td>
    40                         {{# });}}
    41                     </tr>
    42                     {{# });}}
    43                 </table>
    44             </div>
    45             {{# }); }}
    46         </div>
    47     </div>
    48     {{# }) }}
    49 </script>
  • 相关阅读:
    Nokia N78拍照最佳设置!
    摩托Milestone购机鉴别篇
    sdf
    js随笔
    jssip无法识别以数字开始的域
    ASP.NET页面生命周期与优化
    在SQLServer2005中使用全文搜索
    简析正则表达式
    《WCF编程》之错误
    《WCF编程》之实例管理
  • 原文地址:https://www.cnblogs.com/Yan3399/p/14272176.html
Copyright © 2020-2023  润新知