tpl-message.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395
  1. <!DOCTYPE html>
  2. <html lang="en" class="bg-white">
  3. <head>
  4. <title>消息</title>
  5. <meta charset="utf-8"/>
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  7. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  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. <style>
  15. /** 消息列表样式 */
  16. .message-list {
  17. position: absolute;
  18. top: 51px;
  19. bottom: 44px;
  20. left: 0;
  21. right: 0;
  22. overflow-y: auto;
  23. -webkit-overflow-scrolling: touch;
  24. }
  25. .message-list-item {
  26. padding: 10px 24px;
  27. border-bottom: 1px solid #e8e8e8;
  28. -ms-flex-align: start;
  29. align-items: flex-start;
  30. display: flex;
  31. -ms-flex: 1 1;
  32. flex: 1 1;
  33. }
  34. .message-list-item:hover, .message-btn-clear:hover, .message-btn-more:hover {
  35. background: #F2F2F2;
  36. }
  37. .message-item-icon {
  38. width: 40px;
  39. height: 40px;
  40. margin-right: 16px;
  41. display: block;
  42. margin-top: 4px;
  43. }
  44. .message-item-right {
  45. display: block;
  46. flex: 1 0;
  47. line-height: 24px;
  48. }
  49. .message-item-title {
  50. font-size: 14px;
  51. color: rgba(0, 0, 0, .65);
  52. }
  53. .message-item-text {
  54. color: rgba(0, 0, 0, .45);
  55. font-size: 12px;
  56. }
  57. .pull-right {
  58. float: right;
  59. }
  60. .message-btn-clear, .message-btn-more {
  61. display: block;
  62. padding: 10px 5px;
  63. text-align: center;
  64. line-height: 24px;
  65. color: #333;
  66. }
  67. .message-btn-clear {
  68. position: absolute;
  69. bottom: 0;
  70. left: 0;
  71. background: white;
  72. right: 0;
  73. border-top: 1px solid #e8e8e8;
  74. }
  75. .message-btn-more {
  76. color: #666;
  77. font-size: 13px;
  78. }
  79. .message-list-empty {
  80. text-align: center;
  81. color: rgba(0, 0, 0, .45);
  82. padding: 73px 0 88px;
  83. }
  84. .message-list-empty img {
  85. height: 76px;
  86. margin-bottom: 16px;
  87. }
  88. /** //消息列表样式结束 */
  89. </style>
  90. </head>
  91. <body>
  92. <div class="layui-tab layui-tab-brief" style="padding: 5px 0;margin: 0;" lay-filter="tabChange">
  93. <!--<ul class="layui-tab-title">-->
  94. <!--<li class="layui-this">收件箱</li>-->
  95. <!--<li class="layui-this">发件箱</li>-->
  96. <!--</ul>-->
  97. <ul class="layui-tab-title">
  98. <li class="layui-this" lay-id="wait">收件箱</li>
  99. <li lay-id="already">发件箱</li>
  100. </ul>
  101. <div class="layui-inline layui-col-md5 set-read" style="padding-left: 40px;">
  102. <button onclick="setRead()" lay-filter="formSubmit" class=" layui-btn layui-btn-radius bg-c-update"
  103. style="height: 30px;line-height: 0px;margin-top: -36px;margin-left: 170px;position: absolute;">
  104. 全部已读
  105. </button>
  106. </div>
  107. <div class="layui-tab-content" style="padding: 5px 0;">
  108. <!-- 收件箱 -->
  109. <div class="layui-tab-item layui-show">
  110. <!--<a onclick="setRead();" class="message-list-item " style="text-align: right;color: blueviolet;" href="javascript:;">全部已读</a>-->
  111. <div class="message-list inbox">
  112. <!-- 实际项目请使用后台数据循环出来 -->
  113. <!--<a class="message-list-item" href="javascript:;">-->
  114. <!--<i class="layui-icon layui-icon-reply-fill c-update message-item-icon" style="font-size: 35px; color: #1E9FFF;"></i>-->
  115. <!--<div class="message-item-right">-->
  116. <!--<h2 class="message-item-title">你收到了14份新周报</h2>-->
  117. <!--<p class="message-item-text">10个月前</p>-->
  118. <!--</div>-->
  119. <!--</a>-->
  120. <!--<a class="message-list-item" href="javascript:;">-->
  121. <!--<i class="layui-icon layui-icon-notice message-item-icon" style="font-size: 35px; color: #1E9FFF;"></i>-->
  122. <!--<div class="message-item-right">-->
  123. <!--<h2 class="message-item-title">xx评论了你</h2>-->
  124. <!--<p class="message-item-text">哈哈哈哈哈哈</p>-->
  125. <!--<p class="message-item-text">10个月前</p>-->
  126. <!--</div>-->
  127. <!--</a>-->
  128. <!-- 列表为空 -->
  129. <!--<div class="message-list-empty" style="display: none;">-->
  130. <!--<img src="../../assets/images/img_msg_notice.png">-->
  131. <!--<div>没有通知</div>-->
  132. <!--</div>-->
  133. </div>
  134. <!--<a id="btn-more" class="message-btn-clear" href="javascript:;">加载更多</a>-->
  135. <!--<a class="message-btn-clear" href="javascript:;">全部标记已读</a>-->
  136. </div>
  137. <!-- 发件箱 -->
  138. <div class="layui-tab-item">
  139. <div class="message-list outbox">
  140. <!--<a class="message-list-item" href="javascript:;">-->
  141. <!--<i class="layui-icon layui-icon-reply-fill c-update message-item-icon" style="font-size: 35px; color: #1E9FFF;"></i>-->
  142. <!--<div class="message-item-right">-->
  143. <!--<h2 class="message-item-title">你收到了14份新周报</h2>-->
  144. <!--<p class="message-item-text">10个月前</p>-->
  145. <!--</div>-->
  146. <!--</a>-->
  147. <!--<a class="message-list-item" href="javascript:;">-->
  148. <!--<div style="width: 100%">-->
  149. <!--<div style="display: flex">-->
  150. <!--<i class="layui-icon layui-icon-notice message-item-icon" style="font-size: 35px; color: #1E9FFF;"></i>-->
  151. <!--<div class="message-item-right">-->
  152. <!--<h2 class="message-item-title">xx评论了你</h2>-->
  153. <!--<p class="message-item-text">哈哈哈哈哈哈</p>-->
  154. <!--</div>-->
  155. <!--</div>-->
  156. <!--<div>-->
  157. <!--<p class="message-item-text">10个月前</p>-->
  158. <!--</div>-->
  159. <!--</div>-->
  160. <!--</a>-->
  161. <!--<a id="btn-more1" class="message-btn-more" href="javascript:;">加载更多</a>-->
  162. <!-- 列表为空 -->
  163. <!--<div class="message-list-empty " style="display: none;">-->
  164. <!--<img src="../../assets/images/img_msg_pri.png">-->
  165. <!--<div>没有消息</div>-->
  166. <!--</div>-->
  167. </div>
  168. <!--<a id="btn-more1" class="message-btn-clear" href="javascript:;">加载更多</a>-->
  169. <!--<a class="message-btn-clear" href="javascript:;">清空消息</a>-->
  170. </div>
  171. </div>
  172. </div>
  173. <script type="text/javascript" src="../../assets/libs/layui/layui.js"></script>
  174. <script type="text/javascript" src="../../assets/js/common.js?v=315"></script>
  175. <script>
  176. var uParas;
  177. var admin;
  178. layui.use(['layer', 'form', 'table', 'util', 'zTree', 'admin', 'uParas', 'element', 'laytpl'], function () {
  179. var $ = layui.jquery;
  180. var layer = layui.layer;
  181. var form = layui.form;
  182. var util = layui.util;
  183. admin = layui.admin;
  184. uParas = layui.uParas;
  185. var element = layui.element, laytpl = layui.laytpl;
  186. element.on('tab(tabChange)', function (data) {
  187. // alert(data.index)
  188. if (data.index == 0) {
  189. getMessageInboxList(); //未检查
  190. } else if (data.index == 1) {
  191. getMessageOutboxList() //已检查
  192. }
  193. });
  194. /*未读消息统计*/
  195. admin.req(uParas.baseUrl + '/ent/message/getMessageCount', {}, function (res) {
  196. if (res.code == 1) {
  197. /*获取父级index页面的class*/
  198. $(window.parent.document).find("#message").html("");
  199. var messageCount = res.data;
  200. var msghtml = '';
  201. msghtml += '<i class="layui-icon layui-icon-notice c-add" style="font-size: 20px;"></i>';
  202. if (messageCount > 0) {
  203. msghtml += '<span class="layui-badge-dot" style="margin-top: -12px;margin-left: -4px;"></span>';
  204. msghtml += '<i class="layui-icon" style="font-size: 2px;margin-top: 10px;color: red;position: absolute;">' + messageCount + '</i>';
  205. }
  206. $(window.parent.document).find("#message").html(msghtml);
  207. }
  208. }, 'get');
  209. getMessageInboxList();
  210. /*收件箱*/
  211. function getMessageInboxList() {
  212. $('.set-read').show();
  213. layer.load(2, {shade: [0.15, '#cccccc']});
  214. admin.req(uParas.baseUrl + '/ent/message/getMessageList?action=1', null, function (res) {
  215. if (res.code == 1) {
  216. layer.closeAll('loading');
  217. $('.inbox ').html("");
  218. var messageList = res.data;
  219. if (messageList.length > 0) {
  220. var meghtml = '';
  221. for (var i = 0; i < messageList.length; i++) {
  222. var meg = messageList[i];
  223. if (meg.msgType.toString() == "1") { //消息
  224. meghtml += '<div class="message-list-item">';
  225. meghtml += '<div style="width: 100%">';
  226. meghtml += '<div style="display: flex">';
  227. if (meg.msgStatus.toString() == "0") {
  228. meghtml += '<span class="layui-badge-dot" style="margin-left: 27px;margin-top: 3px;position: absolute"></span>';
  229. }
  230. meghtml += '<i class="layui-icon layui-icon-reply-fill c-update message-item-icon" style="font-size: 35px; color: #1E9FFF;"></i>';
  231. meghtml += '<div class="message-item-right">';
  232. meghtml += '<h2 class="message-item-title">' + meg.addresserName + '</h2>';
  233. meghtml += '<h2 class="message-item-title">' + meg.addresseeTime + '</h2>';
  234. meghtml += '</div>';
  235. meghtml += '</div>';
  236. meghtml += '<a onclick="goToTheHdnager(\'' + meg + '\');">' +
  237. '<p class="message-item-text">' + meg.msgContent + '</p>' +
  238. '</a>';
  239. meghtml += '</div>';
  240. meghtml += '</div>';
  241. } else if (meg.msgType.toString() == "2") { //通知
  242. meghtml += '<div class="message-list-item">';
  243. meghtml += '<div style="width: 100%">';
  244. meghtml += '<div style="display: flex">';
  245. if (meg.msgStatus.toString() == "0") {
  246. meghtml += '<span class="layui-badge-dot" style="margin-left: 25px;margin-top: 3px;position: absolute"></span>';
  247. }
  248. meghtml += '<i class="layui-icon layui-icon-notice c-add message-item-icon" style="font-size: 35px; color: #1E9FFF;"></i>';
  249. meghtml += '<div class="message-item-right">';
  250. meghtml += '<h2 class="message-item-title">' + meg.addresserName + '</h2>';
  251. meghtml += '<h2 class="message-item-title">' + meg.addresseeTime + '</h2>';
  252. meghtml += '</div>';
  253. meghtml += '</div>';
  254. meghtml += '<a onclick="goToTheHdnager(\'' + meg + '\');">' +
  255. '<p class="message-item-text">' + meg.msgContent + '</p>' +
  256. '</a>';
  257. meghtml += '</div>';
  258. meghtml += '</div>';
  259. }
  260. $('.inbox ').html(meghtml);
  261. }
  262. } else {
  263. var hinthtml = '';
  264. hinthtml += '<div class="message-list-empty">';
  265. hinthtml += '<img src="../../assets/images/img_msg_pri.png">';
  266. hinthtml += '<div>没有消息</div>';
  267. hinthtml += '</div>';
  268. $('.inbox ').html(hinthtml);
  269. }
  270. // getMessageOutboxList();
  271. }
  272. }, 'get');
  273. }
  274. /*发件箱*/
  275. function getMessageOutboxList() {
  276. $('.set-read').hide();
  277. layer.load(2, {shade: [0.15, '#cccccc']});
  278. admin.req(uParas.baseUrl + '/ent/message/getMessageList?action=2', null, function (res) {
  279. if (res.code == 1) {
  280. layer.closeAll('loading');
  281. $('.outbox ').html("");
  282. var messageList = res.data;
  283. if (messageList.length > 0) {
  284. var msghtml = '';
  285. for (var i = 0; i < messageList.length; i++) {
  286. var meg = messageList[i];
  287. if (meg.msgType === 1) { //消息
  288. msghtml += '<a class="message-list-item">';
  289. msghtml += '<div style="width: 100%">';
  290. msghtml += '<div style="display: flex">';
  291. msghtml += '<i class="layui-icon layui-icon-reply-fill c-update message-item-icon" style="font-size: 35px; color: #1E9FFF;"></i>';
  292. msghtml += '<div class="message-item-right">';
  293. msghtml += '<h2 class="message-item-title">' + meg.addresserName + '</h2>';
  294. msghtml += '<h2 class="message-item-title">' + meg.addresseeTime + '</h2>';
  295. msghtml += '</div>';
  296. msghtml += '</div>';
  297. msghtml += '<p class="message-item-text">' + meg.msgContent + '</p>';
  298. msghtml += '</div>';
  299. msghtml += '</a>';
  300. } else if (meg.msgType === 2) { //通知
  301. msghtml += '<a class="message-list-item">';
  302. msghtml += '<div style="width: 100%">';
  303. msghtml += '<div style="display: flex">';
  304. msghtml += '<i class="layui-icon layui-icon-notice c-add message-item-icon" style="font-size: 35px; color: #1E9FFF;"></i>';
  305. msghtml += '<div class="message-item-right">';
  306. msghtml += '<h2 class="message-item-title">' + meg.addresserName + '</h2>';
  307. msghtml += '<h2 class="message-item-title">' + meg.addresseeTime + '</h2>';
  308. msghtml += '</div>';
  309. msghtml += '</div>';
  310. msghtml += '<p class="message-item-text">' + meg.msgContent + '</p>';
  311. msghtml += '</div>';
  312. msghtml += '</a>';
  313. }
  314. $('.outbox ').html(msghtml);
  315. }
  316. } else {
  317. var hinthtml = '';
  318. hinthtml += '<div class="message-list-empty">';
  319. hinthtml += '<img src="../../assets/images/img_msg_pri.png">';
  320. hinthtml += '<div>没有消息</div>';
  321. hinthtml += '</div>';
  322. $('.outbox ').html(hinthtml);
  323. }
  324. }
  325. }, 'get');
  326. }
  327. // 加载更多按钮点击事件
  328. $('#btn-more1').click(function () {
  329. var $that = $(this);
  330. var str = $that.prev()[0].outerHTML;
  331. for (var i = 0; i < 5; i++) {
  332. $that.before(str);
  333. }
  334. });
  335. // 清空消息点击事件
  336. $('.message-btn-clear').click(function () {
  337. $(this).css('display', 'none');
  338. $(this).prev().find('.message-list-item').remove();
  339. $(this).prev().find('.message-btn-more').remove();
  340. $(this).prev().find('.message-list-empty').css('display', 'block');
  341. });
  342. });
  343. /*设置为已读*/
  344. function setRead() {
  345. layer.load(2, {shade: [0.15, '#cccccc']});
  346. admin.req(uParas.baseUrl + '/ent/message/setRead', null, function (res) {
  347. layer.closeAll('loading');
  348. if (res.code == 1) {
  349. layer.msg("标注成功!");
  350. location.reload();
  351. } else {
  352. }
  353. }, 'get');
  354. }
  355. </script>
  356. </body>
  357. </html>