You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

message.js 3.6 KiB

4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. /*页面js模板,必须有init方法*/
  2. (function () {
  3. var dateTime = "";
  4. var timeOutId = '';
  5. var getTime = function (time) {
  6. var d = new Date();
  7. var c = d.DateDiff('d', time);
  8. if (c < 1 && c > -1) {
  9. return learun.date.format(time, 'hh:mm:ss');
  10. }
  11. else {
  12. return learun.date.format(time, 'yyyy/MM/dd');
  13. }
  14. };
  15. var getHeadImg = function (user) {
  16. var url = '';
  17. switch (user.img) {
  18. case '0':
  19. url += 'images/on-girl.jpg';
  20. break;
  21. case '1':
  22. url += 'images/on-boy.jpg';
  23. break;
  24. default:
  25. url += config.webapi + 'learun/adms/user/img?data=' + user.id;
  26. break;
  27. }
  28. return url;
  29. };
  30. var getContacts = function () {
  31. learun.httpget(config.webapi + "learun/adms/im/contacts", dateTime, (data) => {
  32. var $list = $('#lr_im_message_list');
  33. if (data) {
  34. dateTime = data.time;
  35. $.each(data.data, function (_index, _item) {
  36. var $item = $list.find('[data-value="' + _item.F_Id + '"]').remove();
  37. var _html = '\
  38. <div class="lr-list-item lr-list-item-media" data-value="'+ _item.F_Id + '" data-userId="' + _item.F_OtherUserId + '" >\
  39. <img class="lr-media-head" src="images/on-boy.jpg">\
  40. <div class="lr-media-body"><span>xxx</span><p class="lr-ellipsis">'+ (_item.F_Content || '') + '</p></div>\
  41. <div class="date" >'+ getTime(_item.F_Time) + '</div>\
  42. </div>';
  43. $list.prepend(_html);
  44. learun.clientdata.get('user', {
  45. key: _item.F_OtherUserId,
  46. callback: function (data, op) {
  47. var _$item = $('#lr_im_message_list [data-userId="' + op.key + '"]');
  48. data.id = op.key;
  49. _$item.find('img').attr('src', getHeadImg(data));
  50. _$item.find('.lr-media-body>span').text(data.name);
  51. }
  52. });
  53. });
  54. }
  55. if (!$list.is(':hidden')) {
  56. timeOutId = setTimeout(function () {
  57. getContacts();
  58. }, 8000);// 8s钟遍历一次在当前界面的情况下(后续可以考虑更长的时间)
  59. }
  60. $list = null;
  61. });
  62. };
  63. var page = {
  64. isScroll: true,
  65. init: function ($page) {
  66. timeOutId = '';
  67. dateTime = "1888-10-10 10:10:10";
  68. getContacts();
  69. $('#lr_im_message_list').on('tap', function (e) {
  70. e = e || window.event;
  71. var et = e.target || e.srcElement;
  72. var $et = $(et);
  73. if (!$et.hasClass('lr-list-item-media')) {
  74. $et = $et.parents('.lr-list-item-media');
  75. }
  76. var userId = $et.attr('data-userId');
  77. var userName = $et.find('.lr-media-body>span').text();
  78. learun.nav.go({ path: 'chat', title: userName, isBack: true, isHead: true, param: { hasHistory: true, userId: userId }, type: 'right' });
  79. });
  80. },
  81. reload: function ($page, pageinfo) {
  82. clearTimeout(timeOutId);
  83. getContacts();
  84. },
  85. destroy: function (pageinfo) {
  86. clearTimeout(timeOutId);
  87. }
  88. };
  89. return page;
  90. })();