table-crud.html 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  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. </head>
  11. <body>
  12. <!-- 加载动画 -->
  13. <div class="page-loading">
  14. <div class="ball-loader">
  15. <span></span><span></span><span></span><span></span>
  16. </div>
  17. </div>
  18. <!-- 正文开始 -->
  19. <div class="layui-fluid">
  20. <div class="layui-card">
  21. <div class="layui-card-body">
  22. <div class="layui-form toolbar">
  23. <div class="layui-form-item">
  24. <div class="layui-inline">
  25. <button id="btnAdd" class="layui-btn icon-btn"><i class="layui-icon">&#xe654;</i>添加</button>
  26. <button id="btnSubmit" class="layui-btn icon-btn"><i class="layui-icon">&#xe609;</i>提交</button>
  27. </div>
  28. </div>
  29. </div>
  30. <table id="tb1" lay-filter="tb1"></table>
  31. <blockquote class="layui-elem-quote" style="margin-top: 15px;">这是一个纯前端对表格进行CRUD的例子。</blockquote>
  32. </div>
  33. </div>
  34. </div>
  35. <!-- 表单弹窗 -->
  36. <script type="text/html" id="modelUser">
  37. <form id="modelUserForm" lay-filter="modelUserForm" class="layui-form model-form">
  38. <div class="layui-form-item">
  39. <label class="layui-form-label">姓名</label>
  40. <div class="layui-input-block">
  41. <input name="name" placeholder="请输入姓名" type="text" class="layui-input"
  42. lay-verType="tips" lay-verify="required" required/>
  43. </div>
  44. </div>
  45. <div class="layui-form-item">
  46. <label class="layui-form-label">手机号</label>
  47. <div class="layui-input-block">
  48. <input name="phone" placeholder="请输入手机号" type="text" class="layui-input"
  49. lay-verType="tips" lay-verify="required" required/>
  50. </div>
  51. </div>
  52. <div class="layui-form-item">
  53. <label class="layui-form-label">性别</label>
  54. <div class="layui-input-block">
  55. <input type="radio" name="sex" value="男" title="男" checked/>
  56. <input type="radio" name="sex" value="女" title="女"/>
  57. </div>
  58. </div>
  59. <div class="layui-form-item text-right">
  60. <button class="layui-btn layui-btn-primary" type="button" ew-event="closePageDialog">取消</button>
  61. <button class="layui-btn" lay-filter="modelSubmitUser" lay-submit>保存</button>
  62. </div>
  63. </form>
  64. </script>
  65. <!-- 表格操作列 -->
  66. <script type="text/html" id="tableBar">
  67. <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a>
  68. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
  69. </script>
  70. <!-- js部分 -->
  71. <script type="text/javascript" src="../../assets/libs/layui/layui.js"></script>
  72. <script type="text/javascript" src="../../assets/js/common.js?v=315"></script>
  73. <script>
  74. layui.use(['layer', 'table', 'admin', 'form'], function () {
  75. var $ = layui.jquery;
  76. var layer = layui.layer;
  77. var table = layui.table;
  78. var admin = layui.admin;
  79. var form = layui.form;
  80. var mDataList = [];
  81. var insTb = table.render({
  82. elem: '#tb1',
  83. data: [],
  84. page: true,
  85. cellMinWidth: 100,
  86. cols: [[
  87. {type: 'numbers', title: '#'},
  88. {field: 'name', title: '姓名'},
  89. {field: 'phone', title: '手机号'},
  90. {field: 'sex', title: '性别'},
  91. {align: 'center', toolbar: '#tableBar', title: '操作', minWidth: 200}
  92. ]]
  93. });
  94. $('#btnAdd').click(function () {
  95. showEditModel();
  96. });
  97. // 工具条点击事件
  98. table.on('tool(tb1)', function (obj) {
  99. var data = obj.data;
  100. var layEvent = obj.event;
  101. if (layEvent === 'edit') { // 修改
  102. showEditModel(data);
  103. } else if (layEvent === 'del') { // 删除
  104. for (var i = 0; i < mDataList.length; i++) {
  105. if (mDataList[i].id == data.id) {
  106. mDataList.splice(i, 1);
  107. break;
  108. }
  109. }
  110. insTb.reload({data: mDataList});
  111. }
  112. });
  113. //
  114. function showEditModel(mData) {
  115. admin.open({
  116. type: 1,
  117. title: mData ? '修改' : '添加',
  118. content: $('#modelUser').html(),
  119. success: function (layero, dIndex) {
  120. form.val('modelUserForm', mData);
  121. form.on('submit(modelSubmitUser)', function (data) {
  122. if (mData) {
  123. for (var i = 0; i < mDataList.length; i++) {
  124. if (mDataList[i].id == mData.id) {
  125. for (var f in data.field) {
  126. mDataList[i][f] = data.field[f];
  127. }
  128. break;
  129. }
  130. }
  131. } else {
  132. data.field.id = new Date().getTime();
  133. mDataList.push(data.field);
  134. }
  135. insTb.reload({data: mDataList});
  136. layer.close(dIndex);
  137. return false;
  138. });
  139. }
  140. });
  141. }
  142. $('#btnSubmit').click(function () {
  143. layer.alert(JSON.stringify(mDataList));
  144. });
  145. });
  146. </script>
  147. </body>
  148. </html>