table-advance.html 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  7. <title>复杂表格</title>
  8. <link rel="stylesheet" href="../../../assets/libs/layui/css/layui.css"/>
  9. <link rel="stylesheet" href="../../../assets/module/admin.css?v=315"/>
  10. <!--[if lt IE 9]>
  11. <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  12. <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  13. <![endif]-->
  14. </head>
  15. <body>
  16. <!-- 加载动画 -->
  17. <div class="page-loading">
  18. <div class="ball-loader">
  19. <span></span><span></span><span></span><span></span>
  20. </div>
  21. </div>
  22. <!-- 正文开始 -->
  23. <div class="layui-fluid">
  24. <div class="layui-card">
  25. <div class="layui-card-body">
  26. <div class="layui-form toolbar">
  27. <div class="layui-form-item">
  28. <div class="layui-inline">
  29. <label class="layui-form-label">账&emsp;&emsp;号:</label>
  30. <div class="layui-input-inline">
  31. <input name="username" class="layui-input" type="text" placeholder="输入账号"/>
  32. </div>
  33. </div>
  34. <div class="layui-inline">
  35. <label class="layui-form-label">用&nbsp;&nbsp;户&nbsp;&nbsp;名:</label>
  36. <div class="layui-input-inline">
  37. <input name="nickName" class="layui-input" type="text" placeholder="输入用户名"/>
  38. </div>
  39. </div>
  40. <div class="layui-inline">
  41. <label class="layui-form-label">手&nbsp;&nbsp;机&nbsp;&nbsp;号:</label>
  42. <div class="layui-input-inline">
  43. <input name="phone" class="layui-input" type="text" placeholder="输入用户名"/>
  44. </div>
  45. </div>
  46. <div class="layui-inline">
  47. <label class="layui-form-label">性&emsp;&emsp;别:</label>
  48. <div class="layui-input-inline">
  49. <select name="sex">
  50. <option value="">所有</option>
  51. <option value="男">男</option>
  52. <option value="女">女</option>
  53. </select>
  54. </div>
  55. </div>
  56. <div class="layui-inline">
  57. <label class="layui-form-label">状&emsp;&emsp;态:</label>
  58. <div class="layui-input-inline">
  59. <select name="state">
  60. <option value="">所有</option>
  61. <option value="0">正常</option>
  62. <option value="1">冻结</option>
  63. </select>
  64. </div>
  65. </div>
  66. <div class="layui-inline">
  67. <label class="layui-form-label">注册时间:</label>
  68. <div class="layui-input-inline">
  69. <input id="edtDateTbAdv" name="createTime" class="layui-input date-icon" type="text"
  70. placeholder="选择注册时间" autocomplete="off"/>
  71. </div>
  72. </div>
  73. <div class="layui-inline" style="padding-left: 20px;">
  74. <button class="layui-btn icon-btn" lay-filter="formSubSearchTbAdv" lay-submit>
  75. <i class="layui-icon">&#xe615;</i>搜索
  76. </button>
  77. <button class="layui-btn icon-btn">
  78. <i class="layui-icon">&#xe654;</i>添加
  79. </button>
  80. <button id="btnExportTbAdv" class="layui-btn icon-btn">
  81. <i class="layui-icon">&#xe67d;</i>导出
  82. </button>
  83. </div>
  84. </div>
  85. </div>
  86. <table class="layui-table" id="tableTbAdv" lay-filter="tableTbAdv"></table>
  87. </div>
  88. </div>
  89. </div>
  90. <!-- 表格操作列 -->
  91. <script type="text/html" id="tableBarTbAdv">
  92. <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a>
  93. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
  94. </script>
  95. <!-- 表格状态列 -->
  96. <script type="text/html" id="tplStateTbAdv">
  97. <input type="checkbox" lay-filter="ckStateTbAdv" value="{{d.userId}}" lay-skin="switch"
  98. lay-text="正常|锁定" {{d.state==0?'checked':''}}/>
  99. </script>
  100. <!-- js部分 -->
  101. <script type="text/javascript" src="../../../assets/libs/layui/layui.js"></script>
  102. <script type="text/javascript" src="../../../assets/js/common.js?v=315"></script>
  103. <script>
  104. layui.use(['layer', 'form', 'table', 'util', 'laydate'], function () {
  105. var $ = layui.jquery;
  106. var layer = layui.layer;
  107. var form = layui.form;
  108. var table = layui.table;
  109. var util = layui.util;
  110. var laydate = layui.laydate;
  111. form.render('select');
  112. // 渲染表格
  113. var insTb = table.render({
  114. elem: '#tableTbAdv',
  115. url: '../../../json/user.json',
  116. page: true,
  117. cellMinWidth: 100,
  118. cols: [[
  119. {type: 'checkbox'},
  120. {field: 'username', align: 'center', sort: true, title: '账号'},
  121. {field: 'nickName', align: 'center', sort: true, title: '用户名'},
  122. {field: 'phone', align: 'center', sort: true, title: '手机号'},
  123. {field: 'sex', align: 'center', sort: true, title: '性别'},
  124. {
  125. field: 'createTime', sort: true, align: 'center', templet: function (d) {
  126. return util.toDateString(d.createTime);
  127. }, title: '创建时间'
  128. },
  129. {field: 'state', align: 'center', sort: true, templet: '#tplStateTbAdv', title: '状态'},
  130. {align: 'center', toolbar: '#tableBarTbAdv', title: '操作', minWidth: 150}
  131. ]]
  132. });
  133. // 搜索
  134. form.on('submit(formSubSearchTbAdv)', function (data) {
  135. insTb.reload({where: data.field}, 'data');
  136. });
  137. //监听工具条
  138. table.on('tool(tableTbAdv)', function (obj) {
  139. var data = obj.data; //获得当前行数据
  140. var layEvent = obj.event; //获得 lay-event 对应的值
  141. if (layEvent === 'edit') { //查看
  142. layer.msg('点击了修改');
  143. } else if (layEvent === 'del') { //删除
  144. layer.msg('点击了删除');
  145. }
  146. });
  147. // 渲染laydate
  148. laydate.render({
  149. elem: '#edtDateTbAdv'
  150. });
  151. // 导出excel
  152. $('#btnExportTbAdv').click(function () {
  153. var checkRows = table.checkStatus('tableTbAdv');
  154. if (checkRows.data.length == 0) {
  155. layer.msg('请选择要导出的数据', {icon: 2});
  156. } else {
  157. table.exportFile(insTb.config.id, checkRows.data, 'xls');
  158. }
  159. });
  160. });
  161. </script>
  162. </body>
  163. </html>