var uid = localStorage.getItem("uid");
var ws, obj = {},
lockReconnect = false;
CreateWebSocket();
$(".send_content").focus();
function CreateWebSocket() {
try {
Connect();
} catch (e) {
ReConnect();
}
}
//连接
function Connect() {
//ws = new WebSocket("ws://192.168.4.18:4006");
ws = new WebSocket("ws://192.168.8.10:2022");
//ws = new WebSocket("ws://117.158.196.116:4006");
ws.onopen = function () {
console.log(new Date() + " " + "建立连接");
lockReconnect = false;
obj.action = "cusconn";
obj.code = uid;
Send();
};
//接收到消息的回调方法
ws.onmessage = function (evt) {
console.log(new Date() + " receive " + evt.data);
var data = JSON.parse(evt.data);
if (data) {
var type = data.action;
switch (type.toLowerCase()) {
case "cusconn":
// $(".main_message .chatlist_con").find("li").remove();
if (data.state) {
localStorage.setItem("uid", data.code);
} else {
// $('.notice').html('');
notice("notice", data.msg);
}
if (data.code) {
obj.action = "loglist";
obj.code = data.code;
obj.msg = "";
Send();
}
break;
//case "servicerson":
// append("notice", data.msg);
// break; //通知客服上线
case "cussend":
if (data.state) {
append("self", data.msg, data.time, data.humanclass);
// document.getElementById("msg").value = "";
$('.send_content').val('');
} else {
notice("notice", data.msg);
// $('.notice').html(data.msg);
}
break
case "cusreceive":
append("left", data.msg, data.time, data.humanclass)
break; //收到消息
case "loglist":
var list = data.data.rows;
$(list).each(function (i, n) {
var classname = "left";
if (n.F_FromUser == uid) {
classname = "self";
}
insert(classname, n.F_Message, $(".hidnum").val(), n.F_HumanClass);
})
if (!data.data.isfirst) {
$(".more").css("display", "block");
$(".hidnum").val(data.data.num);
} else {
$(".more").css("display", "none");
}
break; //聊天记录
}
}
};
//连接关闭的回调方法
ws.onclose = function (evt) {
console.log(new Date() + " " + "连接关闭");
console.log(new Date() + " " + "开始重连");
ReConnect();
};
//连接发生错误的回调方法
ws.onerror = function (evt) {
console.log(new Date() + " " + "连接关闭");
console.log(new Date() + " " + "开始重连");
ReConnect();
};
}
//重连
function ReConnect() {
if (!lockReconnect) {
lockReconnect = true;
//没连接上会一直重连,设置延迟避免请求过多
setTimeout(function () {
console.log(new Date() + " " + "重连中……");
lockReconnect = false;
CreateWebSocket();
}, 2000);
}
}
//发送
function Send() {
if (ws.readyState != ws.OPEN) {
ReConnect();
}
if (ws.readyState == ws.OPEN) {
console.log(new Date() + " send " + JSON.stringify(obj));
ws.send(JSON.stringify(obj));
}
}
//查看更多
function getmore() {
obj.action = "loglist";
obj.code = localStorage.getItem("uid");
obj.msg = $(".hidnum").val();
Send();
}
//发送消息
function sendinfo() {
// var msg = document.getElementById("msg").value;
var msg = $('.send_content').val();
if ($.trim(msg)) {
obj.action = "cussend";
obj.msg = msg;
Send();
$(".error").text("");
} else {
$('.send_content').val('');
$(".error").text("请输入内容");
}
}
function append(cname, msg, dates, humanclass) {
var html = '
' +
'
' + dates + '
' +
'
'
if (humanclass) {
if (humanclass == 1)
html += ''
else if (humanclass == 2)
html += ''
else
html += ''
}
else {
if (cname == 'self') {
html += ''
} else {
html += ''
}
}
html += '
' + msg + '
' +
'
' +
'
'
$(html).appendTo($(".chatlist_con")[0]);
console.log($(".chatlist_con")[0].scrollHeight);
$(".chatlist_con").scrollTop($(".chatlist_con")[0].scrollHeight);
}
function insert(cname, msg, nodown, humanclass) {
var html = '
' +
// '
' + n.CreateDate + '
' +
'
'
if (humanclass) {
if (humanclass == 1)
html += ''
else if (humanclass == 2)
html += ''
else
html += ''
}
else {
if (cname == 'self') {
html += ''
} else {
html += ''
}
}
html += '
' + msg + '
' +
'
' +
'
'
var list = $(".chatlist_con").find("li");
if (list.length) {
$(html).insertBefore(list[0]);
}
else {
$(html).appendTo($(".chatlist_con")[0]);
}
if (!nodown) {
$(".chatlist_con").scrollTop($(".chatlist_con")[0].scrollHeight);
}
}
//键盘发送事件
$(document).keydown(function (event) {
event = event || window.event;
if ($(".send_content").is(":focus") == true) {
if (event.keyCode == 13) {
$(".sendTo").click();
event.returnValue = false;
return false
}
}
});
function notice(cname, msg) {
var html = '
' + msg + '
';
$(html).appendTo($(".chatlist_con")[0]);
$(".chatlist_con").scrollTop($(".chatlist_con")[0].scrollHeight);
}
//智能回复 - 动作 start
// 创建工单
$(".chatlist_con").on('click', "li .message_mincon .message_text #btnaddworkorder", function () {
var width_active = 460;
//$("#chat").width(width_active);
if ($(".chat_main").width() == width_active) {
$(".chat_main").width(782);
$(".chat_rightcontent").css('display', 'none');
} else {
$(".chat_main").width(width_active);
$(".chat_rightcontent").css('display', 'block');
}
});
//信息分类
LB($("#xxlb"));
//主题关键词
ZT($("#keys"));
//事件区域
QY($('#sourcearea'), 0);
$('#sourcearea').change(function () {
QY($('#town'), $(this).val())
})
$('#town').change(function () {
QY($('#village'), $(this).val())
})
//上传附件
$("#scwj").click(function () {
$("#upFile").trigger("click");
})
$("#upFile").change(function () {
upload();
})
// 创建工单
$("#SavedSubmit").click(function () {
var myreg = /^[0-9]*$/;
var myregs = /^[0-9]*$/
var reg = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
var cusname = $('#cusname').val(); //姓名
var cussex = $("input[name='sex']:checked").val(); //性别
var touSuphone = $('#touSuphone').val(); //投诉电话
var cusphone = $("#conphone").val(); //投诉人电话
var title = $('#title').val(); //主题
var content = $('#content').val(); //内容
var email = $("#email").val();
var zipcode = $("#zipcode").val();
var sourcearea = $("#sourcearea").val(); //=事发地域id
var sourceaddress = $('#sourceaddress').val(); //=事发详细地址
var type = $('#xxlb').val(); //信息类别ID
var keys = $('#keys').val(); //主题词
var isprotect = $("input[name='secret']:checked").val(); //(0保密1公开)
if (!$.trim(cusname)) {
layer.confirm('请输入姓名!', {
btn: ['确定']
});
return;
}
if (!$.trim(cusphone)) {
layer.confirm('请输入联系电话!', {
btn: ['确定']
});
return;
}
if (!myreg.test($.trim(cusphone))) {
layer.confirm('联系电话格式不正确!', {
btn: ['确定']
});
return;
}
if (email) {
if (!reg.test($.trim(email))) {
layer.confirm('邮箱格式不正确!', {
btn: ['确定']
});
return;
}
}
if (zipcode) {
if (!/^[0-9][0-9]{5}$/.test($.trim(zipcode))) {
layer.confirm('邮编格式不正确!', {
btn: ['确定']
});
return;
}
}
if (!$.trim(touSuphone)) {
layer.confirm('请输入投诉电话!', {
btn: ['确定']
});
return;
}
if (!/^[0-9]*$/.test($.trim(touSuphone))) {
layer.confirm('投诉电话格式不正确!', {
btn: ['确定']
});
return;
}
if (!$.trim(title)) {
layer.confirm('请输入主题!', {
btn: ['确定']
});
return;
}
if (!type) {
layer.confirm('请选择信息类别!', {
btn: ['确定']
});
return;
}
if (!$.trim(content)) {
layer.confirm('请输入内容!', {
btn: ['确定']
});
return;
}
if (!keys) {
layer.confirm('请选择主题词!', {
btn: ['确定']
});
return;
}
if (!$.trim(sourceaddress)) {
layer.confirm('请输入详细地址!', {
btn: ['确定']
});
return;
}
$.ajax({
type: "post",
url: huayi.config.callcenter_url + 'web/AddWebWorkOrder',
async: true,
dataType: 'json',
data: {
cusname: cusname,
cussex: cussex,
conphone: touSuphone,
//投诉电话
cusphone: cusphone,
//=投诉人电话
//cusaddress: cusaddress,
sourcearea: sourcearea,
sourceaddress: $('#town').find("option:selected").text() + " " + $('#village').find("option:selected").text() + " " + $('#sourceaddress').val(),
zipcode: zipcode,
email: email,
title: title,
content: content,
//isfile:isfile,
//filename:filename,
files: $("#file").val(),
keys: keys,
type: type,
source: 4,
issubmit: 1,
//=(0保存1保存并提交)
isprotect: isprotect
},
success: function (result) {
if (result.state.toLowerCase() == "success") {
var msg = '受理编号:' + result.data.workorderid + ' 查询密码:' + result.data.password + ',如需要查询请进网络查询'
if ($.trim(msg)) {
obj.action = "cusreceive"; //cussend
obj.msg = msg;
Send();
layer.msg('网上受理,提交成功');
}
Clean();
}
}
});
});
//信息类别
function LB(obj) {
obj.empty();
$.ajax({
type: "get",
url: huayi.config.callcenter_url + "web/GetWebTypeList",
async: true,
dataType: 'json',
success: function (data) {
if (data.state.toLowerCase() == "success") {
var content = data.data;
$(content).each(function (i, n) {
$("").appendTo(obj);
})
}
}
});
}
//主题词
function ZT(obj) {
obj.empty();
//obj.append('');
$.ajax({
type: "get",
url: huayi.config.callcenter_url + "web/GetWebKeyList",
async: true,
dataType: 'json',
success: function (data) {
if (data.state.toLowerCase() == "success") {
var content = data.data;
$(content).each(function (i, n) {
$("").appendTo(obj);
})
}
}
});
}
function QY(obj, aid) {
obj.empty();
//obj.append('');
$.ajax({
type: "get",
url: huayi.config.callcenter_url + "Web/GetWebAreaListById",
async: true,
dataType: 'json',
data: {
id: aid,
},
success: function (data) {
if (data.state.toLowerCase() == "success") {
var content = data.data;
$(content).each(function (i, n) {
$("").appendTo(obj);
})
obj.trigger('change')
}
}
});
}
//清除事件
function Clean() {
$('#cusname').val(''); //姓名
$('#conphone').val(''); //联系电话
$('#touSuphone').val(''); //投诉电话
$('#zipcode').val(''); //邮编
$('#email').val(''); //邮箱
$('#title').val(''); //内容主题
$('#content').val(''); //详细内容
$('#sourceaddress').val(''); //事件详细地址
$('#xxlb').val(''); //形式分类id
}
//上传文件
function upload() {
var Files = document.getElementById("upFile").files;
if (Files.length > 0) {
var formData = new FormData();
for (var i = 0; i < Files.length; i++) {
formData.append('file' + i, Files[i]);
}
var typeName = Files[0].name.split('.')[1];
if (typeName == "png" || typeName == 'jpg' || typeName == 'mp4' || typeName == 'mp3' || typeName == 'pdf' || typeName == 'doc' || typeName == 'docx' || typeName == 'xls' || typeName == 'xlsx') {
$.ajax({
url: huayi.config.callcenter_url + "Web/UploadFile",
type: "POST",
data: formData,
/**
*必须false才会自动加上正确的Content-Type
*/
contentType: false,
/**
* 必须false才会避开jQuery对 formdata 的默认处理
* XMLHttpRequest会对 formdata 进行正确的处理
*/
processData: false,
success: function (result) {
document.getElementById("upFile").outerHTML = document.getElementById("upFile").outerHTML;
$("#upFile").change(function () {
upload();
});
var r = $.parseJSON(result);
if (r.state.toLowerCase() == "success") {
var a = r.data;
$(a).each(function (i, n) {
var strs = '' + n.F_FileName + 'X'
$(strs).appendTo($('.fileBox')).find('.del_file').click(function (event) {
event.stopPropagation();
$(this).parent().remove();
file_num();
})
})
file_num();
}
}
});
} else {
layer.msg("格式不正确");
}
} else {
layer.confirm('请上传文件!', {
btn: ['确定']
});
}
}
//智能回复 - 动作 end