feat:add auto pollTimer
This commit is contained in:
parent
26dd2212c2
commit
3b2e32d07d
@ -369,6 +369,7 @@
|
|||||||
sendDisabled:false,
|
sendDisabled:false,
|
||||||
showFaceIcon:false,
|
showFaceIcon:false,
|
||||||
showLoadMore:false,
|
showLoadMore:false,
|
||||||
|
pollTimer:null,
|
||||||
messages:{
|
messages:{
|
||||||
page:1,
|
page:1,
|
||||||
pagesize:15,
|
pagesize:15,
|
||||||
@ -718,10 +719,63 @@
|
|||||||
}
|
}
|
||||||
if(_this.messages.page==1){
|
if(_this.messages.page==1){
|
||||||
_this.scrollBottom();
|
_this.scrollBottom();
|
||||||
|
_this.startPollMessages();
|
||||||
}
|
}
|
||||||
_this.messages.page++;
|
_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){
|
getMesssagesByVisitorId(visitorId,isAll){
|
||||||
let _this=this;
|
let _this=this;
|
||||||
@ -1238,6 +1292,12 @@
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
beforeDestroy(){
|
||||||
|
if(this.pollTimer){
|
||||||
|
clearInterval(this.pollTimer);
|
||||||
|
this.pollTimer=null;
|
||||||
|
}
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
document.addEventListener('paste', this.onPasteUpload)
|
document.addEventListener('paste', this.onPasteUpload)
|
||||||
},
|
},
|
||||||
|
|||||||
@ -238,6 +238,7 @@
|
|||||||
isIframe:false,
|
isIframe:false,
|
||||||
kefuInfo:{},
|
kefuInfo:{},
|
||||||
showLoadMore:false,
|
showLoadMore:false,
|
||||||
|
pollTimer:null,
|
||||||
messages:{
|
messages:{
|
||||||
page:1,
|
page:1,
|
||||||
pagesize:5,
|
pagesize:5,
|
||||||
@ -462,10 +463,59 @@
|
|||||||
}
|
}
|
||||||
if(_this.messages.page==1){
|
if(_this.messages.page==1){
|
||||||
_this.scrollBottom();
|
_this.scrollBottom();
|
||||||
|
_this.startPollMessages();
|
||||||
}
|
}
|
||||||
_this.messages.page++;
|
_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(){
|
scrollBottom:function(){
|
||||||
var _this=this;
|
var _this=this;
|
||||||
this.$nextTick(function(){
|
this.$nextTick(function(){
|
||||||
@ -715,6 +765,12 @@
|
|||||||
this.scrollBottom();
|
this.scrollBottom();
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
beforeDestroy:function(){
|
||||||
|
if(this.pollTimer){
|
||||||
|
clearInterval(this.pollTimer);
|
||||||
|
this.pollTimer=null;
|
||||||
|
}
|
||||||
|
},
|
||||||
mounted:function() {
|
mounted:function() {
|
||||||
document.addEventListener('paste', this.onPasteUpload)
|
document.addEventListener('paste', this.onPasteUpload)
|
||||||
document.addEventListener('scroll',this.textareaBlur)
|
document.addEventListener('scroll',this.textareaBlur)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user