tell.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. mui.init({
  2. preloadPages: [{
  3. url: 'tpl/communicate/chats.html',
  4. id: 'tpl/communicate/chats.html'
  5. }]
  6. });
  7. mui(document.body).on('tap', '.address-box', function() {
  8. if(mui(this)[0].parentNode.childNodes[1].style.display == 'block') {
  9. mui(this)[0].parentNode.childNodes[1].style.display = 'none';
  10. mui(this)[0].parentNode.childNodes[0].childNodes[0].classList.remove('icons')
  11. } else {
  12. mui(this)[0].parentNode.childNodes[1].style.display = 'block';
  13. mui(this)[0].parentNode.childNodes[0].childNodes[0].classList.add('icons')
  14. }
  15. });
  16. var socket;
  17. var UserCode;
  18. mui.plusReady(function() {
  19. var str = plus.storage.getItem('user');
  20. var user = JSON.parse(str);
  21. var token = user.Data.Token;
  22. UserCode = user.Data.UserCode;
  23. mui('.mui-scroll-wrapper').scroll({
  24. deceleration: 0.0006 //flick 减速系数,系数越大,滚动速度越慢,滚动距离越小,默认值0.0006
  25. });
  26. //查询储存的消息
  27. chats(token.substring(0, 32));
  28. if(socket == null) {
  29. //连接
  30. if(str != null && str != "[]") {
  31. //socket = new WebSocket('ws://139.129.200.116:9000');
  32. socket = new WebSocket('ws://120.132.20.11:9000');
  33. //socket = new WebSocket('ws://192.168.1.106:9000');
  34. socket.onopen = function() {
  35. var a = "员工编码:" + user.Data.UserCode + "";
  36. socket.send(a);
  37. };
  38. socket.onmessage = function(res) {
  39. var datas = JSON.parse(res.data);
  40. //存储记录
  41. storageMsg(token + datas.mine[0].id, datas);
  42. var detailPage = plus.webview.getWebviewById('tpl/communicate/chats.html');
  43. mui.fire(detailPage, 'Msg', {
  44. content: datas.mine[0].content
  45. });
  46. if(mui.os.ios){
  47. plus.ios.invoke(null, "AudioServicesPlaySystemSound", 1000);
  48. }
  49. };
  50. window.addEventListener('sendMsg', function(event) {
  51. var list = plus.storage.getItem('list');
  52. var user_list = JSON.parse(list);
  53. for(var i = 0; i < user_list.length; i++) {
  54. for(var j = 0; j < user_list[i].list.length; j++) {
  55. var tokenId = token + user_list[i].list[j].id;
  56. if(tokenId == event.detail.to) {
  57. var a = {
  58. "mine": [{
  59. "avatar": event.detail.msg.src.substring(24, event.detail.msg.src.length),
  60. "content": event.detail.msg.content,
  61. "id": UserCode,
  62. "mine": "true",
  63. "username": user.Data.Name
  64. }],
  65. "to": [{
  66. "avatar": user_list[i].list[j].avatar,
  67. "content": "",
  68. "id": event.detail.mine,
  69. "name": user_list[i].list[j].username,
  70. "type": 'friend'
  71. }]
  72. };
  73. storageMsg(token + a.to[0].id, a);
  74. socket.send(JSON.stringify(a));
  75. }
  76. }
  77. }
  78. }, false);
  79. }
  80. }
  81. mui.ajax('http://www.bosshand.cn/api/Customer/GetInfoFriendGroupchat', {
  82. dataType: 'json',
  83. type: "get",
  84. timeout: 10000, //超时时间设置为10秒;
  85. headers: {
  86. 'Content-Type': 'application/x-www-form-urlencoded',
  87. authorization: token
  88. },
  89. success: function(data) {
  90. var data = data.data.friend;
  91. plus.storage.setItem('list', JSON.stringify(data))
  92. var html = '';
  93. for(var i = 0; i < data.length; i++) {
  94. html += '<li>'
  95. html += '<div class="address-box">'
  96. html += '<span class="icon"></span>'
  97. html += '<span>' + data[i].groupname + '</span>'
  98. html += '</div>'
  99. html += '<ul class="list">'
  100. for(var j = 0; j < data[i].list.length; j++) {
  101. if(data[i].id == 2) {
  102. html += '<li>'
  103. html += '<span class="imgs" id = "' + data[i].list[j].avatar + '" >'
  104. html += '<img src="http://www.bosshand.cn/' + data[i].list[j].avatar + '" alt="" />'
  105. html += '</span>'
  106. html += '<span>' + data[i].list[j].username + '</span>'
  107. html += '</li>'
  108. } else {
  109. html += '<li id = "' + data[i].list[j].id + '"onclick = " openChats(this.id)"">'
  110. html += '<span class="imgs" id = "' + data[i].list[j].avatar + '" >'
  111. html += '<img src="http://www.bosshand.cn/' + data[i].list[j].avatar + '"/>'
  112. html += '</span>'
  113. html += '<span>' + data[i].list[j].username + '</span>'
  114. html += '</li>'
  115. }
  116. }
  117. html += '</ul>'
  118. html += '</li>'
  119. }
  120. mui('.address-list')[0].innerHTML = html;
  121. }
  122. })
  123. function chatlist() {
  124. var arrayId = JSON.parse(plus.storage.getItem('chartId'))
  125. var arrContent = [];
  126. for(var i = 0; i < arrayId.length; i++) {
  127. if(arrayId[i].substring(0, 56) == token) {
  128. arrContent.push(JSON.parse(plus.storage.getItem(arrayId[i]))[JSON.parse(plus.storage.getItem(arrayId[i])).length - 1]);
  129. }
  130. }
  131. }
  132. });
  133. //$(doc.body).on('tap', '.imgs', function() {
  134. // $('.bg .imgss')[0].innerHTML = '<img src="http://www.bosshand.cn/' + $(this)[0].id + '"/>';
  135. // alert(JSON.stringify($(this)[0].id))
  136. // $('.bg')[0].style.display = 'block';
  137. // });
  138. // $(doc.body).on('tap', '.close', function() {
  139. // $('.bg')[0].style.display = 'none';
  140. // });
  141. //存储聊天记录;
  142. function storageMsg(userid, tempObj) {
  143. //存储token+id
  144. if(plus.storage.getItem('chartId') != null || plus.storage.getItem('chartId') != undefined) {
  145. var arrayId = JSON.parse(plus.storage.getItem('chartId'));
  146. var isId = true;
  147. for(var i = 0; i < arrayId.length; i++) {
  148. if(userid == arrayId[i]) {
  149. isId = false;
  150. break;
  151. }
  152. }
  153. if(isId) {
  154. arrayId.push(userid);
  155. }
  156. plus.storage.setItem('chartId', JSON.stringify(arrayId));
  157. } else {
  158. var tempIdArr = [];
  159. tempIdArr.push(userid)
  160. var idStr = JSON.stringify(tempIdArr);
  161. plus.storage.setItem('chartId', idStr);
  162. };
  163. //根据token+id存储数据
  164. if(plus.storage.getItem(userid) != null || plus.storage.getItem(userid) != undefined) {
  165. var arrayObj = JSON.parse(plus.storage.getItem(userid));
  166. arrayObj.push(tempObj);
  167. plus.storage.setItem(userid, JSON.stringify(arrayObj));
  168. } else {
  169. var tempArr = [];
  170. tempArr.push(tempObj)
  171. var objStr = JSON.stringify(tempArr);
  172. plus.storage.setItem(userid, objStr);
  173. };
  174. chats(userid.substring(0, 32));
  175. };
  176. //渲染页面
  177. function chats(token) {
  178. var arrayId = JSON.parse(plus.storage.getItem('chartId'));
  179. if(arrayId != null || arrayId != undefined) {
  180. var arrContent = [];
  181. for(var i = 0; i < arrayId.length; i++) {
  182. if(arrayId[i].substring(0, 32) == token) {
  183. arrContent.push(JSON.parse(plus.storage.getItem(arrayId[i]))[JSON.parse(plus.storage.getItem(arrayId[i])).length - 1]);
  184. }
  185. }
  186. var htmls = '';
  187. for(var j = 0; j < arrContent.length; j++) {
  188. if(arrContent[j].mine[0].id != UserCode) {
  189. htmls += '<li class = "mui-table-view-cell mui-media chat" id = "' + arrContent[j].mine[0].id + '"onclick = " openChats(this.id)">';
  190. htmls += '<img class = "mui-media-object mui-pull-left" src = "http://www.bosshand.cn/' + arrContent[j].mine[0].avatar + '"> ';
  191. htmls += '<div class = "mui-media-body"> ' + arrContent[j].mine[0].username + ' <p class = "mui-ellipsis"> ' + arrContent[j].mine[0].content + ' </p>';
  192. htmls += '</div>';
  193. htmls += '</li>';
  194. } else {
  195. htmls += '<li class = "mui-table-view-cell mui-media chat" id = "' + arrContent[j].to[0].id + '"onclick = " openChats(this.id)">';
  196. htmls += '<img class = "mui-media-object mui-pull-left" src = "http://www.bosshand.cn/' + arrContent[j].to[0].avatar + '"> ';
  197. htmls += '<div class = "mui-media-body"> ' + arrContent[j].to[0].name + ' <p class = "mui-ellipsis"> ' + arrContent[j].mine[0].content + ' </p>';
  198. htmls += '</div>';
  199. htmls += '</li>';
  200. }
  201. mui('.chat-list')[0].innerHTML = '<ul class="mui-table-view">' + htmls + '</ul>';
  202. };
  203. };
  204. };
  205. //打开聊天面板
  206. function openChats(id) {
  207. mui.openWindow({
  208. url: 'tpl/communicate/chats.html',
  209. waiting: {
  210. autoShow: false, //自动显示等待框,默认为true
  211. },
  212. extras: {
  213. data: id
  214. },
  215. show: {
  216. autoShow: true, //页面loaded事件发生后自动显示,默认为true
  217. duration: 300, //页面动画持续时间,Android平台默认100毫秒,iOS平台默认200毫秒;
  218. },
  219. hardwareAccelerated: true //开启硬件加速
  220. });
  221. };
  222. function removeStorage() {
  223. plus.storage.removeItem("chartId");
  224. };