📄 worker.js
字号:
var bakPar;
var interval;
function OpenLogin()
{
Opt.Show('<input name="UserName" type="text" id="UserName" /><br/><br/><input name="PassWD" type="password" id="PassWD" /><br/><br/><input type="image" src="images/btn_in.gif" name="button" id="button" value="提交" onclick="worker.Login();" style=" margin:0 0 0 35px" />',448,135);
}
function Worker()
{
window.onbeforeunload=this.LoginOut;
OpenLogin();
}
Worker.prototype.Name="";
Worker.prototype.Pass="";
/*
登录,异步POST
*/
Worker.prototype.Login=function()
{
this.Name=encodeURI(document.getElementById("UserName").value);
var passwd=encodeURI(document.getElementById("PassWD").value);
this.Pass = passwd;
var data='U='+this.Name+'&P='+passwd;
Opt.Close();
Msg.Show(workerCN.waiting);
Msg.Func='OpenLogin()';
executPost(data,'login.aspx',true,'worker.EndLogin');
}
/*
登录结果,界面操作
*/
Worker.prototype.EndLogin=function()
{
if(xmlHttp.readyState!=4)return;
var re=xmlHttp.status;
switch(re)
{
case 600:
interval=setInterval(worker.GetData,1800);//从服务器读工作者交流信息
//TypeMenu.Init();
TypeMenu.LoadWorkers();
Msg.Func=null;
Msg.Close();
break;
case 601:
Msg.timeClose(workerCN.login[0],1);
break;
case 602:
Msg.timeClose(workerCN.login[1],1);
break;
case 603:
Msg.timeClose(workerCN.login[2],1);
break;
default:
Msg.timeClose(xmlHttp.responseText,3);
break;
}
}
/*切线*/
Worker.prototype.ReplaceWork=function(toObj)
{
if(Chat.selectingID=='WorkChannl')return;
if(toObj.className=='unline')return;
var to=toObj.id.replace("worker_","");
if(to==this.Name)return;
bakPar=[Chat.List[Chat.selectingID],to];//临时用
var data='Opt=ReplaceWork&to='+to+'&GuestID='+Chat.selectingID;
Msg.Show(workerCN.waiting);
executPost(data,'workerChat.aspx',true,'worker.EndReplaceWork');
}
Worker.prototype.EndReplaceWork=function()
{
if(xmlHttp.readyState!=4)return;
var re=xmlHttp.status;
switch(re)
{
case 800://成功
Msg.timeClose(workerCN.Successful+workerCN.changeWorkforGuest.replace("GuestName",bakPar[0]).replace("To",bakPar[1]),2);
break;
case 801:
Msg.timeClose(workerCN.fail+workerCN.changeWorkforGuest.replace("GuestName",bakPar[0]).replace("To",bakPar[1]),2);
break;
default:
Msg.timeClose(xmlHttp.responseText,3);
break;
}
}
/*回复客户*/
Worker.prototype.Reply=function()
{
var message="";
var guestID="";
var data='Opt=Reply&Message='+message+'&GuestID='+guestID;
Msg.Show(workerCN.waiting);
executPost(data,'workerChat.aspx',true,'worker.EndReply');
}
Worker.prototype.EndReply=function()
{
if(xmlHttp.readyState!=4)return;
var re=xmlHttp.status;
switch(re)
{
case 800://成功
Msg.Close();
break;
case 801:
Msg.timeClose('帐户不对',3);
break;
default:
Msg.timeClose(xmlHttp.responseText,3);
break;
}
}
/*回复工作者*/
Worker.prototype.ChatWorker=function(message,GuestID)
{
var data= GuestID!='WorkChannl' ? 'Opt=Reply' : 'Opt=ChatWorker';
data+='&Message='+encodeURI(message);
data+='&GuestID='+GuestID;
//Msg.Show(workerCN.waiting);
executPost(data,'workerChat.aspx',true,'worker.EndChatWorker');
}
Worker.prototype.EndChatWorker=function()
{
if(xmlHttp.readyState!=4)return;
var re=xmlHttp.status;
switch(re)
{
case 800://成功
//Msg.Close();
break;
case 801:
//Msg.timeClose('帐户不对',3);
break;
default:
//Msg.timeClose(xmlHttp.responseText,3);
break;
}
}
/*
得到所有工作者
成功将得到一个数组,单元为键值对
*/
Worker.prototype.GetAllWorker=function()
{
var xmlHttp=executPost("Opt=GetAllWorker",'workerChat.aspx');
var workers=eval(xmlHttp.responseText);
if(workers.length==undefined)return;
return workers;
}
var last;
Worker.prototype.GetData=function()
{
//var xmlHttp=executPost("Opt=GetData&U=" + this.Name + "&P=" + this.Pass ,'workerChat.aspx');
try
{
var xmlHttp=executPost("Opt=GetData&U=" + this.Name + "&P=" + this.Pass ,'workerChat.aspx');
if(last!=xmlHttp.responseText)$('test').appendChild(createElement('div',null,null,xmlHttp.responseText));
last=xmlHttp.responseText;
var workers=eval(xmlHttp.responseText);
TypeMenu.Update(workers[0]);
Chat.Update(workers[1]);
Chat.ReceivedByWorker(workers[2]);
Chat.ReceivedByGuest(workers[3]);
document.getElementById("spanStatus").innerHTML="<font color='green'>连接保持</font>";
}
catch(e)
{
//alert(e + " --网络暂时性阻塞,系统将自动重连");
document.getElementById("spanStatus").innerHTML="<font color='red'>"+e+ " :网络暂时性阻塞,系统自动重连中..</font>";
}
}
/*
得到所有在线工作者
成功将得到一个键值对
*/
Worker.prototype.GetOnline=function()
{
var xmlHttp=executPost("Opt=GetAllWorker",'workerChat.aspx');
var workers=eval(xmlHttp.responseText);
if(workers.length==undefined)return;
return workers;
}
/*得到正在服务器的所有客户*/
Worker.prototype.GetGuest=function()
{
var xmlHttp=executPost("Opt=GetGuest",'workerChat.aspx');
var workers=eval(xmlHttp.responseText);
if(workers==undefined)return;
Chat.Update(workers);
}
/*得到别的工作者发过来的信息*/
Worker.prototype.GetWorkerMsg=function()
{
var xmlHttp=executPost("Opt=GetWorkerMsg",'workerChat.aspx');
var workers=eval(xmlHttp.responseText);
if(workers.length==undefined)return;
for(var i=0;i<workers.length;i++)
{
showWorkerMsg(workers[i][0],workers[i][1]);
}
}
/*得到所有客户的问题*/
Worker.prototype.GetAsk=function()
{
var xmlHttp=executPost("Opt=GetAsk",'workerChat.aspx');
var workers=eval(xmlHttp.responseText);
if(workers.length==undefined)return;
}
/*
退出
*/
Worker.prototype.LoginOut=function()
{
var count=0;
for(var v in Chat.List)
{
count++;
}
if(count>1)
{
if(confirm("请不要离开,还有客户需要服务"))
{
clearInterval(interval);
executPost("Opt=LoginOut",'workerChat.aspx',true,'worker.EndLoginOut');
}
}
else
{
clearInterval(interval);
executPost("Opt=LoginOut",'workerChat.aspx',true,'worker.EndLoginOut');
}
}
Worker.prototype.EndLoginOut=function()
{
if(xmlHttp.readyState!=4)return;
clearInterval(interval);
if(xmlHttp.responseText=="OK")//window.close();
{
alert("您已断开连接");
window.location.reload();
}
}
var worker;
var getWorkMsg;
function loadWorker()
{
worker=new Worker();
TypeMenu.Init();
Chat.Init();
}
window.onload=loadWorker;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -