410 lines
20 KiB
Plaintext
410 lines
20 KiB
Plaintext
@{
|
||
ViewBag.Title = "聊天记录";
|
||
Layout = "~/Views/Shared/_EasyUI_Layout.cshtml";
|
||
}
|
||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||
@using WX.CRM.Model.MAP
|
||
@using WX.CRM.Common
|
||
<style>
|
||
#wochalei {
|
||
height: 30px;
|
||
width: 100%;
|
||
background-color: #536484;
|
||
}
|
||
|
||
#wochalei ul {
|
||
padding: 0px;
|
||
font-size: 12px;
|
||
color: #FFF;
|
||
line-height: 26px;
|
||
whitewhite-space: nowrap;
|
||
}
|
||
|
||
#wochalei li {
|
||
list-style-type: none;
|
||
}
|
||
|
||
#wochalei li span {
|
||
text-decoration: none;
|
||
font-family: Arial, Helvetica, sans-serif;
|
||
padding: 7px 5px;
|
||
width: 100%;
|
||
}
|
||
|
||
.rcontacthover {
|
||
color: #ff0;
|
||
background-color: #7E8BA3;
|
||
}
|
||
|
||
.rcontactClick {
|
||
color: #ff0;
|
||
background-color: #8988AE;
|
||
}
|
||
|
||
.isSelf {
|
||
color: #006EFE;
|
||
padding-left: 10px;
|
||
}
|
||
|
||
.isFriend {
|
||
color: #42B475;
|
||
padding-left: 10px;
|
||
}
|
||
|
||
.message {
|
||
padding-left: 20px;
|
||
}
|
||
|
||
.redColor {
|
||
color: red;
|
||
}
|
||
|
||
.displayLi {
|
||
display: none;
|
||
}
|
||
|
||
.contentTable td {
|
||
font-size: 12px;
|
||
line-height: 26px;
|
||
}
|
||
|
||
.imageClass {
|
||
max-width: 200px;
|
||
}
|
||
|
||
.miniimageClass {
|
||
max-width: 100px;
|
||
}
|
||
</style>
|
||
@*[微笑][撇嘴][色][发呆][得意][流泪][害羞][闭嘴][睡][大哭][尴尬][发怒][调皮][呲牙]
|
||
[惊讶][难过][囧][抓狂][吐][偷笑][愉快][白眼][傲慢][困][惊恐][流汗][憨笑][悠闲]
|
||
[奋斗][咒骂][疑问][嘘][晕][衰][骷髅][敲打][再见][擦汗][抠鼻][鼓掌][坏笑]
|
||
[左哼哼][右哼哼][哈欠][鄙视][委屈][快哭了][阴险][亲亲][可怜][菜刀][西瓜]
|
||
[啤酒][咖啡][猪头][玫瑰][凋谢][嘴唇][爱心][心碎][蛋糕][炸弹][便便][月亮]
|
||
[太阳][拥抱][强][弱][握手][胜利][抱拳][勾引][拳头][OK][跳跳][发抖][怄火][转圈]
|
||
[嘿哈][捂脸][奸笑][机智][皱眉][耶][茶][红包][蜡烛]*@
|
||
<script type="text/JavaScript" language="javascript">
|
||
var face = [{ name: "[微笑]", imgpath: "0.png" }, { name: "[撇嘴]", imgpath: "1.png" }, { name: "[色]", imgpath: "2.png" }, { name: "[发呆]", imgpath: "3.png" },
|
||
{ name: "[得意]", imgpath: "4.png" }, { name: "[流泪]", imgpath: "5.png" }, { name: "[害羞]", imgpath: "6.png" }, { name: "[闭嘴]", imgpath: "7.png" }, { name: "[睡]", imgpath: "8.png" },
|
||
{ name: "[大哭]", imgpath: "9.png" }, { name: "[尴尬]", imgpath: "10.png" }, { name: "[发怒]", imgpath: "11.png" }, { name: "[调皮]", imgpath: "12.png" },
|
||
{ name: "[呲牙]", imgpath: "13.png" }, { name: "[惊讶]", imgpath: "14.png" }, { name: "[难过]", imgpath: "15.png" }, { name: "[酷]", imgpath: "16.png" },
|
||
{ name: "[囧]", imgpath: "17.png" }, { name: "[抓狂]", imgpath: "18.png" }, { name: "[吐]", imgpath: "19.png" }, { name: "[偷笑]", imgpath: "20.png" },
|
||
{ name: "[愉快]", imgpath: "21.png" }, { name: "[白眼]", imgpath: "22.png" }, { name: "[傲慢]", imgpath: "23.png" },
|
||
{ name: "[饿]", imgpath: "24.png" }, { name: "[困]", imgpath: "25.png" }, { name: "[惊恐]", imgpath: "26.png" },
|
||
{ name: "[流汗]", imgpath: "27.png" }, { name: "[憨笑]", imgpath: "28.png" }, { name: "[悠闲]", imgpath: "29.png" }, { name: "[奋斗]", imgpath: "30.png" },
|
||
{ name: "[咒骂]", imgpath: "31.png" }, { name: "[疑问]", imgpath: "32.png" }, { name: "[嘘]", imgpath: "33.png" }, { name: "[晕]", imgpath: "34.png" },
|
||
{ name: "[疯]", imgpath: "35.png" }, { name: "[衰]", imgpath: "36.png" }, { name: "[骷髅]", imgpath: "37.png" },
|
||
{ name: "[敲打]", imgpath: "38.png" }, { name: "[再见]", imgpath: "39.png" }, { name: "[擦汗]", imgpath: "40.png" },
|
||
{ name: "[抠鼻]", imgpath: "41.png" }, { name: "[鼓掌]", imgpath: "42.png" }, { name: "[糟糕]", imgpath: "43.png" },
|
||
{ name: "[坏笑]", imgpath: "44.png" }, { name: "[左哼哼]", imgpath: "45.png" },
|
||
{ name: "[右哼哼]", imgpath: "46.png" }, { name: "[哈欠]", imgpath: "47.png" },
|
||
{ name: "[鄙视]", imgpath: "48.png" }, { name: "[委屈]", imgpath: "49.png" },
|
||
{ name: "[快哭了]", imgpath: "50.png" }, { name: "[阴险]", imgpath: "51.png" },
|
||
{ name: "[亲亲]", imgpath: "52.png" }, { name: "[吓]", imgpath: "53.png" },
|
||
{ name: "[可怜]", imgpath: "54.png" }, { name: "[菜刀]", imgpath: "55.png" },
|
||
{ name: "[西瓜]", imgpath: "56.png" }, { name: "[啤酒]", imgpath: "57.png" },
|
||
{ name: "[篮球]", imgpath: "58.png" }, { name: "[乒乓]", imgpath: "59.png" },
|
||
{ name: "[咖啡]", imgpath: "60.png" }, { name: "[美食]", imgpath: "61.png" },
|
||
{ name: "[猪头]", imgpath: "62.png" }, { name: "[玫瑰]", imgpath: "63.png" },
|
||
{ name: "[凋谢]", imgpath: "64.png" }, { name: "[嘴唇]", imgpath: "65.png" },
|
||
{ name: "[爱心]", imgpath: "66.png" }, { name: "[心碎]", imgpath: "67.png" },
|
||
{ name: "[蛋糕]", imgpath: "68.png" }, { name: "[电]", imgpath: "69.png" }, { name: "[炸弹]", imgpath: "70.gif" }, { name: "[便便]", imgpath: "71.gif" },
|
||
{ name: "[月亮]", imgpath: "72.gif" }, { name: "[太阳]", imgpath: "73.gif" }, { name: "[拥抱]", imgpath: "74.png" }, { name: "[强]", imgpath: "75.gif" }, { name: "[弱]", imgpath: "76.gif" },
|
||
{ name: "[握手]", imgpath: "77.gif" }, { name: "[胜利]", imgpath: "78.gif" }, { name: "[抱拳]", imgpath: "79.gif" }, { name: "[勾引]", imgpath: "80.gif" },
|
||
{ name: "[拳头]", imgpath: "81.gif" }, { name: "[OK]", imgpath: "82.gif" }, { name: "[跳跳]", imgpath: "83.gif" }, { name: "[发抖]", imgpath: "84.gif" },
|
||
{ name: "[怄火]", imgpath: "85.png" }, { name: "[转圈]", imgpath: "86.gif" }
|
||
];
|
||
</script>
|
||
|
||
<script type="text/javascript">
|
||
var sortBy = function (filed, rev, primer) {
|
||
rev = (rev) ? -1 : 1;
|
||
return function (a, b) {
|
||
a = a[filed];
|
||
b = b[filed];
|
||
if (typeof (primer) != 'undefined') {
|
||
a = primer(a);
|
||
b = primer(b);
|
||
}
|
||
if (a < b) { return rev * -1; }
|
||
if (a > b) { return rev * 1; }
|
||
return 1;
|
||
}
|
||
};
|
||
|
||
var clickValue;
|
||
$(function () {
|
||
GetMessage();//数据初始化
|
||
});
|
||
function GetMessage() {
|
||
ajaxLoading();
|
||
|
||
var txtDate = $("#txtDate").val();
|
||
if (txtDate != "") {
|
||
$("#contentBody").html("");
|
||
var getDate = txtDate.replace("-", "");
|
||
var url = "/Message/@Html.Raw(Request.QueryString["workusername"])/@Html.Raw(Request.QueryString["username"])_" + getDate + ".json?i=" + GetGuid();
|
||
//alert(url);
|
||
GetMessageByUrl(url, "contentBody");
|
||
} else {//如果默认没有选择时间,显示最近6个月数据
|
||
$("#contentBody").html("");
|
||
$("#QunFacontentBody").html("");
|
||
var arrayObj = new Array(); //创建一个数组
|
||
arrayObj[6] = "@Html.Raw(DateTime.Now.ToString("yyyyM"))";//当前月2017/2
|
||
arrayObj[5] = "@Html.Raw(DateTime.Now.AddMonths(-1).ToString("yyyyM"))";//前一个月2017/1
|
||
arrayObj[4] = "@Html.Raw(DateTime.Now.AddMonths(-2).ToString("yyyyM"))";//前两个月2016/12
|
||
arrayObj[3] = "@Html.Raw(DateTime.Now.AddMonths(-3).ToString("yyyyM"))";//前三个月2016/11
|
||
arrayObj[2] = "@Html.Raw(DateTime.Now.AddMonths(-4).ToString("yyyyM"))";//前四个月2016/10
|
||
arrayObj[1] = "@Html.Raw(DateTime.Now.AddMonths(-5).ToString("yyyyM"))";//前五个月2016/9
|
||
arrayObj[0] = "@Html.Raw(DateTime.Now.AddMonths(-6).ToString("yyyyM"))";//前六个月2016/8
|
||
$(arrayObj).each(function (i, n) {
|
||
var url = "/Message/@Html.Raw(Request.QueryString["workusername"])/@Html.Raw(Request.QueryString["username"])_" + n + ".json?i=" + GetGuid();
|
||
GetMessageByUrl(url, "contentBody");
|
||
});
|
||
var nurl = "/Message/@Html.Raw(Request.QueryString["workusername"])/@Html.Raw(Request.QueryString["username"])_qunfa.json?i=" + GetGuid();
|
||
GetMessageByUrl(nurl, "QunFacontentBody");
|
||
}
|
||
ajaxLoadEnd();
|
||
}
|
||
function GetMessageByUrl(url, tabName) {
|
||
|
||
$.ajax({
|
||
type: "GET",
|
||
url: url,
|
||
dataType: "text",
|
||
async: false,
|
||
success: function (data) {
|
||
var workAccountName = "@Html.Raw(ViewBag.workAccountName)";
|
||
var json = JSON.parse("[" + data + "]");
|
||
json.sort(sortBy('createTime', false, parseInt));
|
||
$(json).each(function (i, da) {
|
||
var newDate = new Date();
|
||
newDate.setTime(da.createTime);
|
||
var dataStr = getNowFormatDate(newDate);//聊天时间
|
||
var html = "";
|
||
if (da.isSend == 1) {
|
||
html += "<tr><td class=\"isSelf\">" + workAccountName + " " + dataStr + "</td></tr>";
|
||
} else {
|
||
html += "<tr><td class=\"isFriend\">" + ReplaceMobile(da.nickname) + " " + dataStr + "</td></tr>";
|
||
}
|
||
|
||
if (da.type == 3) {
|
||
html += "<tr><td class=\"message\">[图片]:<img style='max-width:300px' id='file_" + da.msgSvrId + "' src=''></td></tr>";
|
||
$("#" + tabName).append(html);
|
||
GetImage(da);
|
||
} else if (da.type == 47) {
|
||
if (da.url != "" && da.url != "null") {
|
||
html += "<tr><td class=\"message\"><img style='max-width:100px' id='file_" + da.msgSvrId + "' src='" + da.url + "'></td></tr>";
|
||
$("#" + tabName).append(html);
|
||
} else {
|
||
html += "<tr><td class=\"message\"><img style='max-width:100px' id='file_" + da.msgSvrId + "' src=''></td></tr>";
|
||
$("#" + tabName).append(html);
|
||
GetImage(da);
|
||
}
|
||
} else if (da.type == 34) {
|
||
html += "<tr><td class=\"message\"><a id='file_" + da.msgSvrId + "' >[语音]<a></td></tr>";
|
||
$("#" + tabName).append(html);
|
||
GetImage(da);
|
||
} else if (da.type == 43) {
|
||
html += "<tr><td class=\"message\"><a id='file_" + da.msgSvrId + "' >[视频]<a></td></tr>";
|
||
$("#" + tabName).append(html);
|
||
GetImage(da);
|
||
} else if (da.type == 49) {
|
||
html += "<tr><td class=\"message\"><a id='file_" + da.msgSvrId + "' >[文件]<a></td></tr>";
|
||
$("#" + tabName).append(html);
|
||
GetImage(da);
|
||
}
|
||
else {//普通文本
|
||
html += "<tr><td class=\"message\">" + replaceFace(da.content) + "</td></tr>";
|
||
//if (!IsContainMobile(html)) {
|
||
// $("#" + tabName).append(html);
|
||
//}
|
||
$("#" + tabName).append(ReplaceMobile(html));
|
||
}
|
||
|
||
});
|
||
}
|
||
});
|
||
}
|
||
|
||
function GetImage(da) {
|
||
var isShare = "@string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["IsShare"])";
|
||
if (isShare == "False") {
|
||
if (da.type == 3 || da.type == 47) {
|
||
$("#file_" + da.msgSvrId).attr("src", "http://192.168.1.132:809/FilePath2.ashx?msgSvrId=" + da.msgSvrId + "&msgType=" + da.type);
|
||
}
|
||
else if (da.type == 43 || da.type == 49) {
|
||
$("#file_" + da.msgSvrId).attr("target", "_blank").attr("href", "http://192.168.1.132:809/FilePath2.ashx?msgSvrId=" + da.msgSvrId + "&msgType=" + da.type);
|
||
}
|
||
else if (da.type == 34) {
|
||
$.ajax({
|
||
|
||
url: GetTrueUlr( "@Html.Raw(System.Configuration.ConfigurationManager.AppSettings["WeiXinFilePath"])" )+ da.msgSvrId + "?i=" + GetGuid(),
|
||
type: "GET",
|
||
dataType: "json",
|
||
loading: true,
|
||
success: function (data) {
|
||
if (data.retmsg != null) {
|
||
var index = data.retmsg.indexOf("_");
|
||
var msgsId = data.retmsg.substring(0, index);
|
||
var path = GetTrueUlr(data.retmsg.substring(index + 1, data.retmsg.length));
|
||
$("#file_" + msgsId).attr("href", "javascript:void(0);").attr("onclick", "PalyRecord('" + path + "','" + da.msgSvrId + "');");
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
else {
|
||
$.ajax({
|
||
url: GetTrueUlr( "@Html.Raw(System.Configuration.ConfigurationManager.AppSettings["WeiXinFilePath"])") + da.msgSvrId + "?i=" + GetGuid(),
|
||
type: "GET",
|
||
dataType: "json",
|
||
loading: true,
|
||
success: function (data) {
|
||
if (data.retmsg != null) {
|
||
var index = data.retmsg.indexOf("_");
|
||
var msgsId = data.retmsg.substring(0, index);
|
||
var path = GetTrueUlr(data.retmsg.substring(index + 1, data.retmsg.length));
|
||
if (da.type != 34) {
|
||
$("#file_" + msgsId).attr("src", path);
|
||
$("#file_" + msgsId).attr("href", path);
|
||
$("#file_" + msgsId).attr("target", "_blank");
|
||
} else {
|
||
$("#file_" + msgsId).attr("href", "javascript:void(0);").attr("onclick", "PalyRecord('" + path + "');");
|
||
}
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
}
|
||
|
||
//替换表情
|
||
function replaceFace(cotent) {
|
||
var txt = cotent;
|
||
$(face).each(function (i, n) {
|
||
while (txt.indexOf(n.name) > -1) {
|
||
txt = txt.replace(n.name, "<img src=\"/Face/" + n.imgpath + "\">");
|
||
}
|
||
});
|
||
|
||
return txt;
|
||
}
|
||
|
||
function ReplaceMobile(content) {
|
||
var txt = content;
|
||
//var myreg = /(((13[0-9]{1})|(14[0-9]{1})|(15[0-9]{1})|(16[0-9]{1})|(18[0-9]{1}|(17[0-9]{1}))|(19[0-9]{1}))+\d{8})/;
|
||
//var reg = new RegExp(myreg, "g");
|
||
//if (txt.match(reg)) {
|
||
// var res = txt.match(reg);
|
||
// $(res).each(function (i, m) {
|
||
// var mm = m.replace(/(\d{3})\d{5}(\d{3})/, '$1*****$2');
|
||
// txt = txt.replace(m, mm);
|
||
// })
|
||
//}
|
||
var reg = /[1][0-9]{10}/;
|
||
if (reg.test(txt)) {
|
||
var res = txt.match(reg);
|
||
$(res).each(function (i, m) {
|
||
var mm = m.replace(/(\d{3})\d{5}(\d{3})/, '$1*****$2');
|
||
txt = txt.replace(m, mm);
|
||
})
|
||
}
|
||
return txt;
|
||
}
|
||
|
||
|
||
function IsContainMobile(content) {
|
||
var txt = content;
|
||
//匹配是否有红包信息,有红包信息直接返回
|
||
if (txt.match(/(weixin:\/\/weixinhongbao)/g)) {
|
||
return false;
|
||
}
|
||
//var myreg = /(((13[0-9]{1})|(14[0-9]{1})|(15[0-9]{1})|(16[0-9]{1})|(18[0-9]{1}|(17[0-9]{1}))|(19[0-9]{1}))+\d{8})/;
|
||
//var reg = new RegExp(myreg, "g");
|
||
//if (txt.match(reg)) {
|
||
// return true;
|
||
//}
|
||
//return false;
|
||
var reg = /[1][0-9]{10}/;
|
||
return reg.test(txt);
|
||
}
|
||
|
||
//linux时间格式化
|
||
function getNowFormatDate(date) {
|
||
//var date = new Date();
|
||
var seperator1 = "-";
|
||
var seperator2 = ":";
|
||
var month = date.getMonth() + 1;
|
||
var strDate = date.getDate();
|
||
if (month >= 1 && month <= 9) {
|
||
month = "0" + month;
|
||
}
|
||
if (strDate >= 0 && strDate <= 9) {
|
||
strDate = "0" + strDate;
|
||
}
|
||
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
|
||
+ " " + date.getHours() + seperator2 + date.getMinutes()
|
||
+ seperator2 + date.getSeconds();
|
||
return currentdate;
|
||
}
|
||
|
||
function PalyRecord(url,msgSvrId) {
|
||
$.post("/Weixin/WorkAccount/Audio", { url: url }, function (result) {
|
||
if (result.result === "ok") {
|
||
var data = result.data;
|
||
var isShare = "@string.IsNullOrEmpty(System.Configuration.ConfigurationManager.AppSettings["IsShare"])";
|
||
if (isShare == "False") {
|
||
data = "http://192.168.1.132:809/FilePath2.ashx?msgSvrId=" + msgSvrId + "&msgType=34";
|
||
}
|
||
$('#recordPlayerWin').window({ title: '播放录音', width: 330, height: 180, iconCls: 'icon-add', shadow: true, modal: true, closed: true, minimizable: false, maximizable: false, collapsible: false }).window('open');
|
||
var isChrome = window.navigator.userAgent.indexOf("Chrome") !== -1;
|
||
if (isChrome) {
|
||
$('#recordPlayerWin').html("<video controls=\"\" src=\"" + data + "\" style=\"width:300px; height:50px;\" autoplay=\"autoplay\" />");
|
||
} else {
|
||
$('#recordPlayerWin').html('<object id="Player" width="300" height="50" classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715" standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject"hspace="5"><param name="AutoRewind" value="1"><param name="FileName" value="' + data + '"><param name="ShowControls" value="1"><param name="ShowPositionControls" value="0"><param name="ShowAudioControls" value="1"><param name="ShowTracker" value="1"><param name="ShowDisplay" value="0"><param name="ShowStatusBar" value="0"><param name="ShowGotoBar" value="0"><param name="ShowCaptioning" value="0"><param name="AutoStart" value="1"><param name="Volume" value="5000"><param name="AnimationAtStart" value="0"><param name="TransparentAtStart" value="0"><param name="AllowChangeDisplaySize" value="0"><param name="AllowScan" value="0"><param name="EnableContextMenu" value="0"><param name="ClickToPlay" value="1"> </object>');
|
||
}
|
||
} else {
|
||
alert("转换失败,请稍后重试!");
|
||
}
|
||
});
|
||
|
||
}
|
||
</script>
|
||
<script>
|
||
function GetTrueUlr(purl) {
|
||
if (purl == null)
|
||
return purl;
|
||
var realhost = window.location.host;//当前域名
|
||
if (purl.indexOf(realhost) > -1) {//如果包含真的域名则直接返回
|
||
return purl;
|
||
} else {//不等于真实域名
|
||
purl = purl.replace("http://", "");
|
||
if (purl.indexOf(":") > -1)
|
||
purl = "http://" + realhost.substring(0, realhost.indexOf(":")) + purl.substring(purl.indexOf(":"));
|
||
else
|
||
purl = "http://" + realhost.substring(0, realhost.indexOf(":")) + purl.substring(purl.indexOf("/"));
|
||
return purl;
|
||
}
|
||
}
|
||
</script>
|
||
<div id="rcontent" data-options="region:'center',title:' @Html.Raw(WX.CRM.Common.Utility.ReplaceMobile(ViewBag.customerName)) --聊天记录'" style="">
|
||
<div id="tt" class="easyui-tabs" data-options="fit:true" style="width:500px;height:250px;">
|
||
<div title="消息内容" style="padding: 5px;" data-options="fit:true">
|
||
<table class="contentTable">
|
||
<tbody id="contentBody"></tbody>
|
||
</table>
|
||
</div>
|
||
<div title="群发消息" data-options="closable:false,fit:true" style="overflow:auto;padding:5px;">
|
||
<table class="contentTable">
|
||
<tbody id="QunFacontentBody"></tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
<div data-options="region:'south',border:false" style="height: 30px; background-color: #E4EBF9">
|
||
<input id='txtDate' name='txtDate' class='Wdate' type='text' value='' onclick="WdatePicker({ dateFmt: 'yyyy-M', isShowToday: false, isShowClear: false })" />
|
||
<input type="button" value="过滤" onclick="GetMessage()" />
|
||
</div>
|
||
<div id="recordPlayerWin"></div> |