index.html 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <title>消息中心</title>
  2. <div class="layui-card layadmin-header">
  3. <div class="layui-breadcrumb" lay-filter="breadcrumb">
  4. <a lay-href="">主页</a>
  5. <a><cite>消息中心</cite></a>
  6. </div>
  7. </div>
  8. <div class="layui-fluid" id="LAY-app-message">
  9. <div class="layui-card">
  10. <div class="layui-tab layui-tab-brief">
  11. <ul class="layui-tab-title">
  12. <li class="layui-this">全部消息</li>
  13. <li>通知<span class="layui-badge">6</span></li>
  14. <li>私信</li>
  15. </ul>
  16. <div class="layui-tab-content">
  17. <div class="layui-tab-item layui-show">
  18. <div class="LAY-app-message-btns" style="margin-bottom: 10px;">
  19. <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="all" data-events="del">删除</button>
  20. <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="all" data-events="ready">标记已读</button>
  21. <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="all" data-events="readyAll">全部已读</button>
  22. </div>
  23. <table id="LAY-app-message-all" lay-filter="LAY-app-message-all"></table>
  24. </div>
  25. <div class="layui-tab-item">
  26. <div class="LAY-app-message-btns" style="margin-bottom: 10px;">
  27. <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="notice" data-events="del">删除</button>
  28. <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="notice" data-events="ready">标记已读</button>
  29. <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="notice" data-events="readyAll">全部已读</button>
  30. </div>
  31. <table id="LAY-app-message-notice" lay-filter="LAY-app-message-notice"></table>
  32. </div>
  33. <div class="layui-tab-item">
  34. <div class="LAY-app-message-btns" style="margin-bottom: 10px;">
  35. <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="direct" data-events="del">删除</button>
  36. <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="direct" data-events="ready">标记已读</button>
  37. <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="direct" data-events="readyAll">全部已读</button>
  38. </div>
  39. <table id="LAY-app-message-direct" lay-filter="LAY-app-message-direct"></table>
  40. </div>
  41. </div>
  42. </div>
  43. </div>
  44. </div>
  45. <script>
  46. layui.use(['admin', 'table', 'util'], function(){
  47. var $ = layui.$
  48. ,admin = layui.admin
  49. ,table = layui.table
  50. ,element = layui.element;
  51. var DISABLED = 'layui-btn-disabled'
  52. //区分各选项卡中的表格
  53. ,tabs = {
  54. all: {
  55. text: '全部消息'
  56. ,id: 'LAY-app-message-all'
  57. }
  58. ,notice: {
  59. text: '通知'
  60. ,id: 'LAY-app-message-notice'
  61. }
  62. ,direct: {
  63. text: '私信'
  64. ,id: 'LAY-app-message-direct'
  65. }
  66. };
  67. //标题内容模板
  68. var tplTitle = function(d){
  69. return '<a lay-href="app/message/detail/id='+ d.id +'">'+ d.title;
  70. };
  71. //全部消息
  72. table.render({
  73. elem: '#LAY-app-message-all'
  74. ,url: './json/message/all.js' //模拟接口
  75. ,page: true
  76. ,cols: [[
  77. {type: 'checkbox', fixed: 'left'}
  78. ,{field: 'title', title: '标题内容', minWidth: 300, templet: tplTitle}
  79. ,{field: 'time', title: '时间', width: 170, templet: '<div>{{ layui.util.timeAgo(d.time) }}</div>'}
  80. ]]
  81. ,skin: 'line'
  82. });
  83. //通知
  84. table.render({
  85. elem: '#LAY-app-message-notice'
  86. ,url: './json/message/notice.js' //模拟接口
  87. ,page: true
  88. ,cols: [[
  89. {type: 'checkbox', fixed: 'left'}
  90. ,{field: 'title', title: '标题内容', minWidth: 300, templet: tplTitle}
  91. ,{field: 'time', title: '时间', width: 170, templet: '<div>{{ layui.util.timeAgo(d.time) }}</div>'}
  92. ]]
  93. ,skin: 'line'
  94. });
  95. //私信
  96. table.render({
  97. elem: '#LAY-app-message-direct'
  98. ,url: './json/message/direct.js' //模拟接口
  99. ,page: true
  100. ,cols: [[
  101. {type: 'checkbox', fixed: 'left'}
  102. ,{field: 'title', title: '标题内容', minWidth: 300, templet: tplTitle}
  103. ,{field: 'time', title: '时间', width: 170, templet: '<div>{{ layui.util.timeAgo(d.time) }}</div>'}
  104. ]]
  105. ,skin: 'line'
  106. });
  107. //事件处理
  108. var events = {
  109. del: function(othis, type){
  110. var thisTabs = tabs[type]
  111. ,checkStatus = table.checkStatus(thisTabs.id)
  112. ,data = checkStatus.data; //获得选中的数据
  113. if(data.length === 0) return layer.msg('未选中行');
  114. layer.confirm('确定删除选中的数据吗?', function(){
  115. /*
  116. admin.req('url', {}, function(){ //请求接口
  117. //do somethin
  118. });
  119. */
  120. //此处只是演示,实际应用需把下述代码放入上述Ajax回调中
  121. layer.msg('删除成功', {
  122. icon: 1
  123. });
  124. table.reload(thisTabs.id); //刷新表格
  125. });
  126. }
  127. ,ready: function(othis, type){
  128. var thisTabs = tabs[type]
  129. ,checkStatus = table.checkStatus(thisTabs.id)
  130. ,data = checkStatus.data; //获得选中的数据
  131. if(data.length === 0) return layer.msg('未选中行');
  132. //此处只是演示
  133. layer.msg('标记已读成功', {
  134. icon: 1
  135. });
  136. table.reload(thisTabs.id); //刷新表格
  137. }
  138. ,readyAll: function(othis, type){
  139. var thisTabs = tabs[type];
  140. //do somethin
  141. layer.msg(thisTabs.text + ':全部已读', {
  142. icon: 1
  143. });
  144. }
  145. };
  146. $('.LAY-app-message-btns .layui-btn').on('click', function(){
  147. var othis = $(this)
  148. ,thisEvent = othis.data('events')
  149. ,type = othis.data('type');
  150. events[thisEvent] && events[thisEvent].call(this, othis, type);
  151. });
  152. });
  153. </script>