$(document).ready(function () { var userid = $.cookie("userid"); var objp = {}; var imgUrl = ""; var timerset; var oflag = false; var pd = false; loginStatus(); //判断个人是否登录 $(".list_body").niceScroll({ cursorcolor: "#999999" }); $(".chat_body.clearfix").niceScroll({ cursorcolor: "#999999" }); messageList(); setInterval(messageList,5000) function messageList() { $.ajax({ "url": "/ajax/platform/msg/idx", "type": "get", "async": true, "data": { 'provider': userid }, "success": function (data) { if (data.success) { getTotalMessage(); unReadedCount(userid) $(".list_body").html(""); var $data = data.data; for (var i = 0; i < $data.length; i++) { var num = "none" if ($data[i].unread) { num = "block"; } var ostr = '
' + '' + '
' + '' + '' + $data[i].unread + '' + '
' + '
' + '
' + ' ' + '
' + '' + commenTime($data[i].opTime) + '' + ($data[i].cnt).replace(/\n/g, "
") + '
' + '
' + '
' var $str = $(ostr); if(oflag) { if (objp.requestor === $data[i].requestor) { $str.addClass('active'); } } $(".list_body").append($str); var oMess = { "provider": $data[i].provider, "pid": $data[i].pid, "requestor": $data[i].requestor } $str.attr("dataobj", JSON.stringify(oMess)) personMess($data[i].requestor, $str.find('img'), $str.find(".user_name"), $str.find(".authiconNew")); } if ($data.length === 0) { $(".list_body").html('
暂无消息
'); } } }, "error": function () { $.MsgBox.Alert('提示', '服务器连接超时'); } }); } //专家信息 function personMess(id, pImg, pName, pTitle) { $.ajax({ "url": platUrl + "/ajax/sys/user/get", "data": { id: id }, "type": "GET", "traditional": true, "dataType": "json", "success": function (data) { if (data.success) { var $data = data.data; var userType = autho($data.authType, $data.orgAuth, $data.authStatus); pTitle.attr("title", userType.title).addClass(userType.sty); pName.text($data.name || $data.account); var img=""; if ($data.head) { pImg.attr("src", $data.head); img = $data.head; } else { pImg.attr("src", '/images/default-photo.jpg'); img = '/images/default-photo.jpg'; } var str = '' if ( $data.comp) { if ($data.job) { str = $data.comp+","+ $data.job; } else { str = $data.comp } } else { if ($data.job) { str = $data.job; } } var oMess = { "name": $data.name || $data.account, "idf": userType, "id": $data.id, "duties": str, "img":img } pImg.parents(".list_item").attr("data", JSON.stringify(oMess)) } }, "error": function (err) { $.MsgBox.Alert('提示', '服务器连接超时'); } }); } function ci(e) { var elem = e.target; if (elem.tagName.toLowerCase() === 'img') { var $this = $(elem); $this.attr("src", "/images/default-photo.jpg"); } } document.addEventListener("error", ci, true /*指定事件处理函数在捕获阶段执行*/); /*切换*/ $(".list_body").on("click", ".list_item", function () { oflag = true; pd = true; if(timerset) { clearInterval(timerset); } $(this).addClass("active").siblings().removeClass("active"); if ($(this).find(".tips_num").css("display") == "block") { $('.mymessage .badge').text(Number($('.mymessage .badge').text()) - Number($(this).find(".tips_num").text())); if ($('.mymessage .badge').text() == 0) { $(".mymessage .badge").text(""); } } $(this).find(".tips_num").text(0).hide(); if ($(".usepro .user_name").css("display") == "block") { if ($(this).find(".user_name").text() == $(".usepro .user_name").text()) { return; } } $(".chat_content_nodata").hide(); $(".chat_content").show(); var pro = JSON.parse($(this).attr("data")); $(".usepro").find(".user_name").text(pro.name).siblings(".authiconNew").addClass(pro.idf.sty).attr("title", pro.idf.title).parent().siblings(".chating_resume_status").text(pro.duties); var dataobj = JSON.parse($(this).attr('dataobj')); objp = dataobj; imgUrl = JSON.parse($(this).attr('data')).img; if (Number($(this).find(".tips_num").text())) { angleMessageList(dataobj, true); } else { angleMessageList(dataobj); } getPlatName(objp.pid) timerset=setInterval(function() { angleMessageList(dataobj); },5000) }); function getPlatName(pid) { $.ajax({ url: "/ajax/platform/info", type: "GET", timeout: 10000, dataType: "json", traditional:true, data:{ id: pid }, success: function(data) { if(data.success) { $('#cUserPage').text('来自:'+data.data.name); } }, error: function() { $.MsgBox.Alert('提示', '链接服务器超时') } }) } getKexiuTotal() function getKexiuTotal() { $.ajax({ url: "ajax/webMsg/unReadedCount", type: "GET", timeout: 10000, dataType: "json", traditional:true, data:{ id: userid }, success: function(data) { if(data.success) { if(data.data) { $('.kexiuTotal').text('('+data.data+')'); } else { $('.kexiuTotal').text(''); } } }, error: function() { $.MsgBox.Alert('提示', '链接服务器超时') } }) } function getTotalMessage() { $.ajax({ url: "/ajax/platform/msg/unread", type: "GET", timeout: 10000, dataType: "json", traditional:true, data:{ provider: userid }, success: function(data) { if(data.success) { if(data.data) { $('.mesTotal').text('('+data.data+')'); } else { $('.mesTotal').text(''); } } }, error: function() { $.MsgBox.Alert('提示', '链接服务器超时') } }) } function angleMessageList(info) { $.ajax({ "url": "/ajax/platform/msg/rec", "type": "get", "async": true, "data": info, "success": function (data) { if (data.success) { $(".chat_body_list").html("") var $data = data.data; if ($data.length) { if (arguments[1]) { setRead(info); } for (var i = $data.length - 1; i >= 0; i--) { var le = ""; var flo = 'fl'; var wei = ""; var fCo = "C_end"; var timeG = ''; var headImg = ''; if ($data[i].msgType) { le = "me"; flo = "fr"; if ($data[i].readed) { wei = ''; } else { wei = ''; } fCo = "B_end"; headImg = '/images/head/' + userid + '_l.jpg'; } else { headImg = imgUrl; } if (i == 0) { timeG = anTime($data[i].opTime); } else { timeG = compareTime($data[i].opTime, $data[i - 1].opTime) } var oStr = '' + timeG + '' + '
' + '
' + '
' + '' + '
' + '
' + wei + '
' + ($data[i].cnt).replace(/\n/g, "
") + '
' + '
' + '
' + '
' $(".chat_body_list").append(oStr); } $(".chat_body.clearfix").getNiceScroll().hide().show().resize(); if (pd) { $(".chat_body.clearfix").getNiceScroll(0).doScrollTop($(".chat_body_list").height(), 100); pd = false; } } } }, "error": function () { $.MsgBox.Alert('提示', '服务器连接超时'); } }); } /*让消息置为已读*/ function setRead(data) { $.ajax({ "url": "/ajax/platform/msg/readed", "type": "POST", "traditional": true, "data": data, "dataType": "json", "success": function (data) { if (data.success) { } }, "error": function () { $.MsgBox.Alert('提示', '服务器连接超时'); } }); } /*超过时间10min*/ function timeC(startTime) { var startdate = new Date(); 20190124155759 startdate.setFullYear(parseInt(startTime.substring(0, 4))); startdate.setMonth(parseInt(startTime.substring(4, 6)) - 1); startdate.setDate(parseInt(startTime.substring(6, 8))); startdate.setHours(parseInt(startTime.substring(8, 10))); startdate.setMinutes(parseInt(startTime.substring(10, 12))); startdate.setSeconds(parseInt(startTime.substring(12, 14))); return startdate.getTime(); } function compareTime(startTime, secondTime) { var date3 = timeC(secondTime) - timeC(startTime); //时间差的毫秒数 if (date3 >= 600000) { if (new Date().getFullYear() == secondTime.substring(0, 4)) { return secondTime.substring(4, 6).replace(/\b(0+)/gi, "") + "月" + secondTime.substring(6, 8).replace(/\b(0+)/gi, "") + "日 " + secondTime.substring(8, 10) + ":" + secondTime.substring(10, 12); } else { return secondTime.substring(0, 4) + "年" + secondTime.substring(4, 6).replace(/\b(0+)/gi, "") + "月" + secondTime.substring(6, 8).replace(/\b(0+)/gi, "") + "日 " + secondTime.substring(8, 10) + ":" + secondTime.substring(10, 12); } } else { return ''; } } function anTime(secondTime) { if (new Date().getFullYear() == secondTime.substring(0, 4)) { return secondTime.substring(4, 6).replace(/\b(0+)/gi, "") + "月" + secondTime.substring(6, 8).replace(/\b(0+)/gi, "") + "日 " + secondTime.substring(8, 10) + ":" + secondTime.substring(10, 12); } else { return secondTime.substring(0, 4) + "年" + secondTime.substring(4, 6).replace(/\b(0+)/gi, "") + "月" + secondTime.substring(6, 8).replace(/\b(0+)/gi, "") + "日 " + secondTime.substring(8, 10) + ":" + secondTime.substring(10, 12); } } /*发送信息*/ function sendMessage(par) { par.cnt = $('.messContent').val(); $.ajax({ "url": "/ajax/platform/msg/send", "type": "POST", "traditional": true, "data": par, "dataType": "json", "success": function (data) { if (data.success) { $(".btnModel").attr("disabled", "disabled"); angleMessageList(objp) $(".messContent").val(""); pd = true; } }, "error": function () { $.MsgBox.Alert('提示', '服务器连接超时'); } }); } $(".btnModel").click(function () { sendMessage(objp); }) $(".messContent").on("input", function () { if ($.trim($(this).val()) == "") { $('.btnModel').attr("disabled", "disabled"); } else { $('.btnModel').removeAttr("disabled"); } }) /*删除会话*/ var $that; $(".list_body").on("click", ".close_icon", function() { var dataobj = JSON.parse($(this).parents('.list_item').attr('dataobj')); objp = dataobj; if(timerset) { clearInterval(timerset); } oflag = false; $that = $(this) $.MsgBox.Confirm("提示", "确定删除?", deleChat); return false; }) /*会话删除函数*/ function deleChat() { $.ajax({ "url": "/ajax/platform/msg/delete", "type": "POST", "traditional": true, "data": objp, "context": $that.parents(".list_item"), "dataType": "json", "success": function(data) { if(data.success) { $(this).remove(); $(".chat_content_nodata").show(); $(".chat_content").hide(); getTotalMessage(); unReadedCount(userid) } }, "error": function() { $.MsgBox.Alert('提示', '服务器连接超时'); } }); } })