123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- mui.init({
- preloadPages: [{
- url: 'tpl/communicate/chats.html',
- id: 'tpl/communicate/chats.html'
- }]
- });
- mui(document.body).on('tap', '.address-box', function() {
- if(mui(this)[0].parentNode.childNodes[1].style.display == 'block') {
- mui(this)[0].parentNode.childNodes[1].style.display = 'none';
- mui(this)[0].parentNode.childNodes[0].childNodes[0].classList.remove('icons')
- } else {
- mui(this)[0].parentNode.childNodes[1].style.display = 'block';
- mui(this)[0].parentNode.childNodes[0].childNodes[0].classList.add('icons')
- }
- });
- var socket;
- var UserCode;
- mui.plusReady(function() {
- var str = plus.storage.getItem('user');
- var user = JSON.parse(str);
- var token = user.Data.Token;
- UserCode = user.Data.UserCode;
- mui('.mui-scroll-wrapper').scroll({
- deceleration: 0.0006 //flick 减速系数,系数越大,滚动速度越慢,滚动距离越小,默认值0.0006
- });
- //查询储存的消息
- chats(token.substring(0, 32));
- if(socket == null) {
- //连接
- if(str != null && str != "[]") {
- //socket = new WebSocket('ws://139.129.200.116:9000');
- socket = new WebSocket('ws://120.132.20.11:9000');
- //socket = new WebSocket('ws://192.168.1.106:9000');
- socket.onopen = function() {
- var a = "员工编码:" + user.Data.UserCode + "";
- socket.send(a);
- };
- socket.onmessage = function(res) {
- var datas = JSON.parse(res.data);
- //存储记录
- storageMsg(token + datas.mine[0].id, datas);
- var detailPage = plus.webview.getWebviewById('tpl/communicate/chats.html');
- mui.fire(detailPage, 'Msg', {
- content: datas.mine[0].content
- });
- if(mui.os.ios){
- plus.ios.invoke(null, "AudioServicesPlaySystemSound", 1000);
- }
- };
- window.addEventListener('sendMsg', function(event) {
- var list = plus.storage.getItem('list');
- var user_list = JSON.parse(list);
- for(var i = 0; i < user_list.length; i++) {
- for(var j = 0; j < user_list[i].list.length; j++) {
- var tokenId = token + user_list[i].list[j].id;
- if(tokenId == event.detail.to) {
- var a = {
- "mine": [{
- "avatar": event.detail.msg.src.substring(24, event.detail.msg.src.length),
- "content": event.detail.msg.content,
- "id": UserCode,
- "mine": "true",
- "username": user.Data.Name
- }],
- "to": [{
- "avatar": user_list[i].list[j].avatar,
- "content": "",
- "id": event.detail.mine,
- "name": user_list[i].list[j].username,
- "type": 'friend'
- }]
- };
- storageMsg(token + a.to[0].id, a);
- socket.send(JSON.stringify(a));
- }
- }
- }
-
- }, false);
-
- }
- }
- mui.ajax('http://www.bosshand.cn/api/Customer/GetInfoFriendGroupchat', {
- dataType: 'json',
- type: "get",
- timeout: 10000, //超时时间设置为10秒;
- headers: {
- 'Content-Type': 'application/x-www-form-urlencoded',
- authorization: token
- },
- success: function(data) {
- var data = data.data.friend;
- plus.storage.setItem('list', JSON.stringify(data))
- var html = '';
- for(var i = 0; i < data.length; i++) {
- html += '<li>'
- html += '<div class="address-box">'
- html += '<span class="icon"></span>'
- html += '<span>' + data[i].groupname + '</span>'
- html += '</div>'
- html += '<ul class="list">'
- for(var j = 0; j < data[i].list.length; j++) {
- if(data[i].id == 2) {
- html += '<li>'
- html += '<span class="imgs" id = "' + data[i].list[j].avatar + '" >'
- html += '<img src="http://www.bosshand.cn/' + data[i].list[j].avatar + '" alt="" />'
- html += '</span>'
- html += '<span>' + data[i].list[j].username + '</span>'
- html += '</li>'
- } else {
- html += '<li id = "' + data[i].list[j].id + '"onclick = " openChats(this.id)"">'
- html += '<span class="imgs" id = "' + data[i].list[j].avatar + '" >'
- html += '<img src="http://www.bosshand.cn/' + data[i].list[j].avatar + '"/>'
- html += '</span>'
- html += '<span>' + data[i].list[j].username + '</span>'
- html += '</li>'
- }
- }
- html += '</ul>'
- html += '</li>'
- }
- mui('.address-list')[0].innerHTML = html;
-
- }
- })
-
- function chatlist() {
- var arrayId = JSON.parse(plus.storage.getItem('chartId'))
- var arrContent = [];
- for(var i = 0; i < arrayId.length; i++) {
- if(arrayId[i].substring(0, 56) == token) {
- arrContent.push(JSON.parse(plus.storage.getItem(arrayId[i]))[JSON.parse(plus.storage.getItem(arrayId[i])).length - 1]);
- }
- }
- }
-
- });
- //$(doc.body).on('tap', '.imgs', function() {
- // $('.bg .imgss')[0].innerHTML = '<img src="http://www.bosshand.cn/' + $(this)[0].id + '"/>';
- // alert(JSON.stringify($(this)[0].id))
- // $('.bg')[0].style.display = 'block';
- // });
- // $(doc.body).on('tap', '.close', function() {
- // $('.bg')[0].style.display = 'none';
- // });
- //存储聊天记录;
- function storageMsg(userid, tempObj) {
- //存储token+id
- if(plus.storage.getItem('chartId') != null || plus.storage.getItem('chartId') != undefined) {
- var arrayId = JSON.parse(plus.storage.getItem('chartId'));
- var isId = true;
- for(var i = 0; i < arrayId.length; i++) {
- if(userid == arrayId[i]) {
- isId = false;
- break;
- }
- }
- if(isId) {
- arrayId.push(userid);
- }
- plus.storage.setItem('chartId', JSON.stringify(arrayId));
- } else {
- var tempIdArr = [];
- tempIdArr.push(userid)
- var idStr = JSON.stringify(tempIdArr);
- plus.storage.setItem('chartId', idStr);
- };
- //根据token+id存储数据
- if(plus.storage.getItem(userid) != null || plus.storage.getItem(userid) != undefined) {
- var arrayObj = JSON.parse(plus.storage.getItem(userid));
- arrayObj.push(tempObj);
- plus.storage.setItem(userid, JSON.stringify(arrayObj));
- } else {
- var tempArr = [];
- tempArr.push(tempObj)
- var objStr = JSON.stringify(tempArr);
- plus.storage.setItem(userid, objStr);
- };
- chats(userid.substring(0, 32));
-
- };
- //渲染页面
- function chats(token) {
- var arrayId = JSON.parse(plus.storage.getItem('chartId'));
- if(arrayId != null || arrayId != undefined) {
- var arrContent = [];
- for(var i = 0; i < arrayId.length; i++) {
- if(arrayId[i].substring(0, 32) == token) {
- arrContent.push(JSON.parse(plus.storage.getItem(arrayId[i]))[JSON.parse(plus.storage.getItem(arrayId[i])).length - 1]);
- }
- }
- var htmls = '';
- for(var j = 0; j < arrContent.length; j++) {
- if(arrContent[j].mine[0].id != UserCode) {
- htmls += '<li class = "mui-table-view-cell mui-media chat" id = "' + arrContent[j].mine[0].id + '"onclick = " openChats(this.id)">';
- htmls += '<img class = "mui-media-object mui-pull-left" src = "http://www.bosshand.cn/' + arrContent[j].mine[0].avatar + '"> ';
- htmls += '<div class = "mui-media-body"> ' + arrContent[j].mine[0].username + ' <p class = "mui-ellipsis"> ' + arrContent[j].mine[0].content + ' </p>';
- htmls += '</div>';
- htmls += '</li>';
- } else {
- htmls += '<li class = "mui-table-view-cell mui-media chat" id = "' + arrContent[j].to[0].id + '"onclick = " openChats(this.id)">';
- htmls += '<img class = "mui-media-object mui-pull-left" src = "http://www.bosshand.cn/' + arrContent[j].to[0].avatar + '"> ';
- htmls += '<div class = "mui-media-body"> ' + arrContent[j].to[0].name + ' <p class = "mui-ellipsis"> ' + arrContent[j].mine[0].content + ' </p>';
- htmls += '</div>';
- htmls += '</li>';
- }
- mui('.chat-list')[0].innerHTML = '<ul class="mui-table-view">' + htmls + '</ul>';
- };
- };
- };
- //打开聊天面板
- function openChats(id) {
- mui.openWindow({
- url: 'tpl/communicate/chats.html',
- waiting: {
- autoShow: false, //自动显示等待框,默认为true
- },
- extras: {
- data: id
- },
- show: {
- autoShow: true, //页面loaded事件发生后自动显示,默认为true
- duration: 300, //页面动画持续时间,Android平台默认100毫秒,iOS平台默认200毫秒;
- },
- hardwareAccelerated: true //开启硬件加速
- });
- };
- function removeStorage() {
- plus.storage.removeItem("chartId");
- };
|