feat:add auto pollTimer
This commit is contained in:
parent
26dd2212c2
commit
3b2e32d07d
@ -369,6 +369,7 @@
|
||||
sendDisabled:false,
|
||||
showFaceIcon:false,
|
||||
showLoadMore:false,
|
||||
pollTimer:null,
|
||||
messages:{
|
||||
page:1,
|
||||
pagesize:15,
|
||||
@ -718,10 +719,63 @@
|
||||
}
|
||||
if(_this.messages.page==1){
|
||||
_this.scrollBottom();
|
||||
_this.startPollMessages();
|
||||
}
|
||||
_this.messages.page++;
|
||||
});
|
||||
},
|
||||
startPollMessages(){
|
||||
let _this=this;
|
||||
if(_this.pollTimer){
|
||||
clearInterval(_this.pollTimer);
|
||||
}
|
||||
_this.pollTimer=setInterval(function(){
|
||||
if(!_this.currentGuest) return;
|
||||
let params={
|
||||
page:1,
|
||||
pagesize: 20,
|
||||
visitor_id: _this.currentGuest,
|
||||
}
|
||||
$.get("/2/messagesPages",params,function(res){
|
||||
let msgList=res.result.list;
|
||||
let existKeys={};
|
||||
for(let i=0;i<_this.msgList.length;i++){
|
||||
var m=_this.msgList[i];
|
||||
if(m.id){
|
||||
existKeys['id_'+m.id]=true;
|
||||
}
|
||||
if(m.time && m.content){
|
||||
existKeys[m.time+'_'+m.content]=true;
|
||||
}
|
||||
}
|
||||
let newMsgs=[];
|
||||
for(let i=msgList.length-1;i>=0;i--){
|
||||
let item=msgList[i];
|
||||
var key1=item.id?'id_'+item.id:'';
|
||||
var key2=item["create_time"]+'_'+replaceContent(item["content"]);
|
||||
if((key1 && existKeys[key1]) || existKeys[key2]) continue;
|
||||
if (item["mes_type"] == "kefu") {
|
||||
item.is_kefu = true;
|
||||
item.avator=item["kefu_avator"];
|
||||
item.name=item["kefu_name"];
|
||||
} else {
|
||||
item.is_kefu = false;
|
||||
item.avator=item["visitor_avator"];
|
||||
item.name=item["visitor_name"];
|
||||
}
|
||||
item.content=replaceContent(item["content"]);
|
||||
item.time = item["create_time"];
|
||||
newMsgs.push(item);
|
||||
}
|
||||
if(newMsgs.length>0){
|
||||
for(let i=0;i<newMsgs.length;i++){
|
||||
_this.msgList.push(newMsgs[i]);
|
||||
}
|
||||
_this.scrollBottom();
|
||||
}
|
||||
});
|
||||
},5000);
|
||||
},
|
||||
//获取信息列表
|
||||
getMesssagesByVisitorId(visitorId,isAll){
|
||||
let _this=this;
|
||||
@ -1238,6 +1292,12 @@
|
||||
});
|
||||
},
|
||||
},
|
||||
beforeDestroy(){
|
||||
if(this.pollTimer){
|
||||
clearInterval(this.pollTimer);
|
||||
this.pollTimer=null;
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
document.addEventListener('paste', this.onPasteUpload)
|
||||
},
|
||||
|
||||
@ -238,6 +238,7 @@
|
||||
isIframe:false,
|
||||
kefuInfo:{},
|
||||
showLoadMore:false,
|
||||
pollTimer:null,
|
||||
messages:{
|
||||
page:1,
|
||||
pagesize:5,
|
||||
@ -462,10 +463,59 @@
|
||||
}
|
||||
if(_this.messages.page==1){
|
||||
_this.scrollBottom();
|
||||
_this.startPollMessages();
|
||||
}
|
||||
_this.messages.page++;
|
||||
});
|
||||
},
|
||||
startPollMessages:function(){
|
||||
let _this=this;
|
||||
if(_this.pollTimer) return;
|
||||
_this.pollTimer=setInterval(function(){
|
||||
if(!_this.visitor||!_this.visitor.visitor_id) return;
|
||||
let params={
|
||||
page:1,
|
||||
pagesize: 20,
|
||||
visitor_id: _this.visitor.visitor_id,
|
||||
}
|
||||
$.get("/2/messagesPages",params,function(res){
|
||||
let msgList=res.result.list;
|
||||
let existKeys={};
|
||||
for(let i=0;i<_this.msgList.length;i++){
|
||||
var m=_this.msgList[i];
|
||||
if(m.id){
|
||||
existKeys['id_'+m.id]=true;
|
||||
}
|
||||
if(m.time && m.content){
|
||||
existKeys[m.time+'_'+m.content]=true;
|
||||
}
|
||||
}
|
||||
let newMsgs=[];
|
||||
for(let i=msgList.length-1;i>=0;i--){
|
||||
let item=msgList[i];
|
||||
var key1=item.id?'id_'+item.id:'';
|
||||
var key2=item["create_time"]+'_'+replaceContent(item["content"]);
|
||||
if((key1 && existKeys[key1]) || existKeys[key2]) continue;
|
||||
if (item["mes_type"] == "kefu") {
|
||||
item.is_kefu = true;
|
||||
item.avator=item["kefu_avator"];
|
||||
} else {
|
||||
item.is_kefu = false;
|
||||
item.avator=item["visitor_avator"];
|
||||
}
|
||||
item.time = item["create_time"];
|
||||
item.content=replaceContent(item["content"]);
|
||||
newMsgs.push(item);
|
||||
}
|
||||
if(newMsgs.length>0){
|
||||
for(let i=0;i<newMsgs.length;i++){
|
||||
_this.msgList.push(newMsgs[i]);
|
||||
}
|
||||
_this.scrollBottom();
|
||||
}
|
||||
});
|
||||
},5000);
|
||||
},
|
||||
scrollBottom:function(){
|
||||
var _this=this;
|
||||
this.$nextTick(function(){
|
||||
@ -715,6 +765,12 @@
|
||||
this.scrollBottom();
|
||||
},
|
||||
},
|
||||
beforeDestroy:function(){
|
||||
if(this.pollTimer){
|
||||
clearInterval(this.pollTimer);
|
||||
this.pollTimer=null;
|
||||
}
|
||||
},
|
||||
mounted:function() {
|
||||
document.addEventListener('paste', this.onPasteUpload)
|
||||
document.addEventListener('scroll',this.textareaBlur)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user