|
|
@@ -1,3 +1,4 @@
|
|
|
+import frceArr from './frce';
|
|
|
export default {
|
|
|
//获取图片
|
|
|
imgPreview(file, callback) {
|
|
|
@@ -17,7 +18,7 @@ export default {
|
|
|
let formData = new FormData();
|
|
|
img.src = result;
|
|
|
img.onload = function() {
|
|
|
- let data = self.compress(img,name);
|
|
|
+ let data = self.compress(img);
|
|
|
let blob = self.dataURItoBlob(data);
|
|
|
formData.append("file", blob,name+'.jpeg');
|
|
|
//图片预览,配置文件,formData数据;
|
|
|
@@ -92,15 +93,17 @@ export default {
|
|
|
minute = minute < 10 ? ('0' + minute) : minute;
|
|
|
second = second < 10 ? ('0' + second) : second;
|
|
|
if (isDtae == 0){
|
|
|
- return y + custom + m //+'student';
|
|
|
+ return y + custom + m //+'student';
|
|
|
}else if (isDtae ==1){
|
|
|
- return y + custom + m + custom + d;
|
|
|
+ return y + custom + m + custom + d;
|
|
|
+ }else if(isDtae == 3){
|
|
|
+ return h + ':' + minute //+ ':' + second;
|
|
|
}else{
|
|
|
- return y + '-' + m + '-' + d + ' ' + h + ':' + minute //+ ':' + second;
|
|
|
+ return y + '-' + m + '-' + d + ' ' + h + ':' + minute //+ ':' + second;
|
|
|
}
|
|
|
},
|
|
|
|
|
|
- /*****************屏蔽关键字******************/
|
|
|
+ /*****************提示关键字及记录次数******************/
|
|
|
/**
|
|
|
*
|
|
|
* @param {*} data
|
|
|
@@ -113,16 +116,9 @@ export default {
|
|
|
let num = 0,text='';
|
|
|
//匹配出会话中的敏感词
|
|
|
data.replace(eval('/' + snstive + '/g'), (res) => {
|
|
|
- // var str = '';
|
|
|
- console.log(res)
|
|
|
text +=','+res;
|
|
|
- // for (var i = 0; i < res.length; i++) {
|
|
|
- // str += '*';
|
|
|
- // }
|
|
|
num ++;
|
|
|
- // return str;
|
|
|
})
|
|
|
-
|
|
|
return {
|
|
|
text,
|
|
|
num
|
|
|
@@ -165,10 +161,17 @@ export default {
|
|
|
* @param {function} callback1 访客正常链接回调方法
|
|
|
*/
|
|
|
visitorsConnect([redata,offlineList,sessionList,sessionType,dataIndex,dataList,user_name],callback,callback1){
|
|
|
+ // console.log('将会话工单写入访客信息',redata);
|
|
|
+ // console.log('访客信息评价',evaluate);
|
|
|
+ if(redata.evaluate_id > 0){
|
|
|
+ redata.user_info.isEva = 10;
|
|
|
+ }
|
|
|
//将会话工单写入访客信息
|
|
|
redata.user_info.conversationId = redata.conversationId;
|
|
|
//默认离线列表没有访客信息
|
|
|
let isTrue = true;
|
|
|
+ let name ='';
|
|
|
+ let sessionInfo = '';
|
|
|
|
|
|
//匹配是否是离线用户上线
|
|
|
if(offlineList.length > 0){
|
|
|
@@ -177,35 +180,40 @@ export default {
|
|
|
if(offlineList[i].id == redata.user_info.id ){
|
|
|
//查询离线列表是否有此用户会话工单未结束
|
|
|
if(offlineList[i].conversationId == redata.conversationId){
|
|
|
+ // console.log(sessionType,offlineList);
|
|
|
//工单号未结束的数据获取历史聊天消息和对象名字
|
|
|
if(sessionType == 2 && i == dataIndex){//客服选中离线重新链接访客
|
|
|
dataList = [];
|
|
|
dataList = offlineList[i].data;
|
|
|
- user_name = offlineList[i].name;
|
|
|
+ name = offlineList[i].nick_name ? offlineList[i].nick_name : offlineList[i].name;
|
|
|
sessionType = 1;
|
|
|
dataIndex = sessionList.length == 0 ? 0 : sessionList.length-1;
|
|
|
}else if(sessionType == 2 && i < dataIndex){//客服选中离线列表重新链接访客后面的访客
|
|
|
if(i > 0){
|
|
|
dataList = offlineList[i].data;
|
|
|
- user_name = offlineList[i].name;
|
|
|
+ name = offlineList[i].nick_name ? offlineList[i].nick_name : offlineList[i].name;
|
|
|
}
|
|
|
+ }else {
|
|
|
+ name = redata.user_info.nick_name ? redata.user_info.nick_name : redata.user_info.name;
|
|
|
}
|
|
|
//将掉线前聊天消息写入到用户对象里面
|
|
|
redata.user_info.data = offlineList[i].data;
|
|
|
}else{
|
|
|
//工单号已结束数据处理
|
|
|
if(dataIndex == 0 && sessionList.length == 0){
|
|
|
- user_name = redata.user_info.name;
|
|
|
+ name =redata.user_info.nick_name ? redata.user_info.nick_name : redata.user_info.name;
|
|
|
dataList = [];
|
|
|
}
|
|
|
redata.user_info.data = [];
|
|
|
}
|
|
|
+ //获取离线列表数据
|
|
|
+ sessionInfo = offlineList[i]
|
|
|
//将离线状态用户删除
|
|
|
offlineList.splice(i,1);
|
|
|
-
|
|
|
+
|
|
|
+ isTrue = false;
|
|
|
//回调
|
|
|
callback && callback(offlineList);
|
|
|
- isTrue = false;
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -216,14 +224,16 @@ export default {
|
|
|
if(sessionList.length == 0){
|
|
|
//判断是否选离线用户列表
|
|
|
if(offlineList.length > 0 && sessionType ==2){
|
|
|
- //不做处理
|
|
|
+ //不做处理
|
|
|
+
|
|
|
}else{
|
|
|
- dataIndex = 0
|
|
|
- sessionType = 1
|
|
|
- user_name = redata.user_info.name;
|
|
|
+ dataIndex = 0;
|
|
|
+ sessionType = 1;
|
|
|
+ // console.log(redata.user_info.nick_name,redata.user_info.name);
|
|
|
+ name = redata.user_info.nick_name ? redata.user_info.nick_name : redata.user_info.name ;
|
|
|
dataList = [];
|
|
|
}
|
|
|
- }else{
|
|
|
+ }else{
|
|
|
for(let i = 0; i < sessionList.length; i++){
|
|
|
//匹配离线列表是否有这个用户
|
|
|
if(sessionList[i].id == redata.user_info.id ){
|
|
|
@@ -231,11 +241,38 @@ export default {
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //判断接入用户是否有昵称展示
|
|
|
+ redata.user_info.name = redata.user_info.nick_name ? redata.user_info.nick_name : redata.user_info.name ;
|
|
|
+ }
|
|
|
+ //历史会话消息
|
|
|
+ if(redata.history.length > 0){
|
|
|
+ let chatData= [];
|
|
|
+ redata.history.forEach(e=>{
|
|
|
+ let content = JSON.parse(e.content);
|
|
|
+ let obj = {
|
|
|
+ text:this.turnFace(content.text,frceArr.frce) ,
|
|
|
+ img: content.img,
|
|
|
+ type: false,
|
|
|
+ };
|
|
|
+ if( e.from_id.startsWith("KF")){
|
|
|
+ //this.turnFace(redata.content.text,frceArr.frce);
|
|
|
+ chatData.push({type: 'service', content: obj, time:this.customFormatDateTime(e.time_line,'',3)})
|
|
|
+ }else{
|
|
|
+ chatData.push({type: 'user', content: obj, time:this.customFormatDateTime(e.time_line,'',3)})
|
|
|
+ }
|
|
|
+ })
|
|
|
+ redata.user_info.data = chatData;
|
|
|
+ dataList = chatData;
|
|
|
+ }else{
|
|
|
+ redata.user_info.data = [];
|
|
|
}
|
|
|
- redata.user_info.data = [];
|
|
|
+ }else{
|
|
|
+ redata.user_info.data = sessionInfo.data
|
|
|
}
|
|
|
+ // console.log(name);
|
|
|
//回调
|
|
|
- callback1 && callback1(redata,sessionList,offlineList,sessionType,dataIndex,dataList,user_name);
|
|
|
+ callback1 && callback1(redata,sessionList,offlineList,sessionType,dataIndex,dataList,name);
|
|
|
},
|
|
|
|
|
|
/*****************用户会话离线及相关数据*********************/
|
|
|
@@ -299,6 +336,7 @@ export default {
|
|
|
sessionEnd([redata,sessionList,offlineList,sessionType,dataIndex,user_name,dataList],callback){
|
|
|
let isTrue = true;
|
|
|
let userInfo = [];
|
|
|
+ // console.log('哈哈',sessionList);
|
|
|
//会话中列表匹配
|
|
|
if(sessionList.length > 0){
|
|
|
for(let i = 0 ; i < sessionList.length; i++){
|
|
|
@@ -369,6 +407,7 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ console.log('测试掉线',sessionList);
|
|
|
//回调
|
|
|
callback && callback(sessionList,offlineList,sessionType,dataIndex,user_name,dataList,userInfo);
|
|
|
|