inbox.html 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. {extend name="../../base/view/common/base" /}
  2. <!-- 主体 -->
  3. {block name="body"}
  4. <div class="p-page">
  5. {include file="message/msgmenu" /}
  6. <div style="margin-left:172px;">
  7. <form class="layui-form gg-form-bar border-t border-x">
  8. <div class="layui-input-inline" style="width:200px">
  9. <input type="text" autocomplete="off" name="range_time" readonly class="layui-input tool-time" data-range="~" placeholder="接收日期">
  10. </div>
  11. <div class="layui-input-inline" style="width:128px">
  12. <select name="read">
  13. <option value="">选择消息状态</option>
  14. <option value="1">未读消息</option>
  15. <option value="2">已读消息</option>
  16. </select>
  17. </div>
  18. <div class="layui-input-inline" style="width:128px">
  19. <select name="types">
  20. <option value="">选择消息类型</option>
  21. <option value="1">系统消息</option>
  22. <option value="2">个人消息</option>
  23. </select>
  24. </div>
  25. <div class="layui-input-inline" style="width:300px">
  26. <input type="text" name="keywords" placeholder="关键字" class="layui-input" autocomplete="off"/>
  27. </div>
  28. <div class="layui-input-inline" style="width:150px;">
  29. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
  30. <button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
  31. </div>
  32. </form>
  33. <table class="layui-hide" id="test" lay-filter="test"></table>
  34. </div>
  35. </div>
  36. <script type="text/html" id="toolbarDemo">
  37. <div class="layui-btn-container">
  38. <div class="layui-btn-group">
  39. <button class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon">&#xe61f;</i>新建消息</button>
  40. <button class="layui-btn layui-btn-normal layui-btn-sm" lay-event="star"><i class="layui-icon">&#xe67b;</i>设为星标</button>
  41. <button class="layui-btn layui-btn-warm layui-btn-sm" lay-event="read"><i class="layui-icon">&#xe605;</i>设为已读</button>
  42. <button class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del"><i class="layui-icon">&#xe640;</i>批量删除</button>
  43. </div>
  44. </div>
  45. </script>
  46. {/block}
  47. <!-- /主体 -->
  48. <!-- 脚本 -->
  49. {block name="script"}
  50. <script>
  51. const moduleInit = ['tool'];
  52. function gouguInit() {
  53. var table = layui.table, tool = layui.tool ,form = layui.form;
  54. layui.pageTable = table.render({
  55. elem: '#test',
  56. toolbar: '#toolbarDemo',
  57. defaultToolbar:false,
  58. title:'收件箱',
  59. url: "/home/message/inbox", //数据接口
  60. page: true ,//开启分页
  61. limit: 20,
  62. cellMinWidth: 80,
  63. height: 'full-114',
  64. cols: [[ //表头
  65. {type:'checkbox',fixed:'left'},
  66. {field: 'msg_type', title: '消息类型',width:90,align:'center',templet: function (d) {
  67. var html = '<span class="yellow">系统消息</span>';
  68. if(d.from_uid > 0){
  69. html = '<span class="blue">个人消息</span>';
  70. }
  71. return html;
  72. }
  73. },
  74. {field: 'from_name', title: '发件人', width:100,align:'center'},
  75. {field: 'title', title: '消息主题',minWidth:240},
  76. {field: 'create_time', title: '发件时间', align:'center',width:160},
  77. {field: 'read_time', title: '是否已读',align:'center', width:80,templet:function(d){
  78. var html='<span style="color:#5FB878">已读</span>';
  79. if(d.read_time==0){
  80. html='<span style="color:#FF5722">未读</span>';
  81. }
  82. return html;
  83. }},
  84. {field: 'is_star', title: '是否星标',align:'center', width:80,templet:function(d){
  85. var html='<span class="layui-icon layui-icon-rate" style="color:#5FB878; font-size:20px; cursor:pointer" lay-event="star"> </span>';
  86. if(d.is_star==1){
  87. html='<span class="layui-icon layui-icon-rate-solid" style="color:#ffb800; font-size:20px; cursor:pointer" lay-event="unstar"> </span>';
  88. }
  89. return html;
  90. }},
  91. {field: 'right', title: '操作',fixed:'right', width:160, align:'center',templet: function (d) {
  92. let html='<div class="layui-btn-group">';
  93. let btn1='<span class="layui-btn layui-btn-xs layui-btn-normal" lay-event="view">查看</span>';
  94. let btn2='<span class="layui-btn layui-btn-xs" lay-event="reply">回复</span>';
  95. let btn3='<span class="layui-btn layui-btn-xs layui-btn-normal" lay-event="resend">转发</span>';
  96. let btn4='<button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button></div>';
  97. if(d.from_uid == 0){
  98. return html+btn1+btn4+'</div>'
  99. }
  100. else{
  101. return html+btn1+btn2+btn3+btn4+'</div>'
  102. }
  103. }
  104. }
  105. ]]
  106. });
  107. //监听行工具事件
  108. table.on('tool(test)', function(obj){
  109. var data = obj.data;
  110. if(obj.event === 'star'){
  111. layer.confirm('确定该信息设为星标吗?', {icon: 3, title:'提示'}, function(index){
  112. let callback = function (e) {
  113. layer.msg(e.msg);
  114. if(e.code==0){
  115. layui.pageTable.reload();
  116. }
  117. }
  118. tool.delete("/home/message/check", {
  119. ids: data.id,type:5,
  120. }, callback);
  121. layer.close(index);
  122. });
  123. }
  124. if(obj.event === 'unstar'){
  125. layer.confirm('确定该信息取消星标吗?', {icon: 3, title:'提示'}, function(index){
  126. let callback = function (e) {
  127. layer.msg(e.msg);
  128. if(e.code==0){
  129. layui.pageTable.reload();
  130. }
  131. }
  132. tool.delete("/home/message/check", {
  133. ids: data.id,type:6,
  134. }, callback);
  135. layer.close(index);
  136. });
  137. }
  138. if(obj.event === 'del'){
  139. layer.confirm('确定该信息要放入垃圾箱吗?', {icon: 3, title:'提示'}, function(index){
  140. let callback = function (e) {
  141. layer.msg(e.msg);
  142. if(e.code==0){
  143. layui.pageTable.reload();
  144. }
  145. }
  146. tool.delete("/home/message/check", {
  147. ids: data.id,type:2,
  148. }, callback);
  149. layer.close(index);
  150. });
  151. }
  152. if(obj.event === 'view'){
  153. tool.side('/home/message/read?id='+data.id);
  154. return;
  155. }
  156. if(obj.event === 'reply'){
  157. tool.side('/home/message/reply?msg_id='+data.id);
  158. return;
  159. }
  160. if(obj.event === 'resend'){
  161. tool.side('/home/message/resend?msg_id='+data.id);
  162. return;
  163. }
  164. });
  165. //表头工具栏事件
  166. table.on('toolbar(test)', function(obj){
  167. var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
  168. var data = checkStatus.data;
  169. if (obj.event === 'add') {
  170. tool.side("/home/message/add");
  171. return;
  172. }
  173. if(data.length==0){
  174. layer.msg('请选择要操作的消息');
  175. return false;
  176. }
  177. var idArray=[],msg='是否执行该操作?',type=0;
  178. for(var i=0;i<data.length;i++){
  179. idArray.push(data[i].id);
  180. }
  181. switch(obj.event){
  182. case 'read':
  183. msg = '确定把选中的信息设为已读吗?';
  184. type = 1;
  185. break;
  186. case 'del':
  187. msg = '确定把选中的信息要放入垃圾箱吗?';
  188. type = 2;
  189. break;
  190. case 'star':
  191. msg = '确定把选中的信息设为星标吗?';
  192. type = 5;
  193. break;
  194. };
  195. layer.confirm(msg, {
  196. icon: 3,
  197. title: '提示'
  198. }, function (index) {
  199. let callback = function (e) {
  200. layer.msg(e.msg);
  201. if(e.code==0){
  202. layui.pageTable.reload();
  203. }
  204. }
  205. tool.delete("/home/message/check", {
  206. ids: idArray.join(','),
  207. type:type,
  208. }, callback);
  209. layer.close(index);
  210. });
  211. });
  212. //监听搜索提交
  213. form.on('submit(webform)', function(data){
  214. layui.pageTable.reload({where:data.field,page:{curr:1}});
  215. return false;
  216. });
  217. }
  218. </script>
  219. {/block}
  220. <!-- /脚本 -->