TG.WXCRM.V4/WEB/Views/WeiXin/WorkAccount/MyMessageOne.cshtml

410 lines
20 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@{
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>