|
|
@@ -19,8 +19,7 @@
|
|
|
<div class="imgBox">
|
|
|
<!-- <el-button v-if="!service_on" size="mini" type="primary" @click="exit" style="margin-right: 10px;">退出聊天</el-button>-->
|
|
|
<el-button v-if="machineAndAtl == 100" size="mini" type="primary" @click="exit" style="margin-right: 10px;">退出聊天</el-button>
|
|
|
- <i v-if="(selNum + tokNum) >= 4" @click="ejectEvl(10)" class="sc pointer" :class="selType?'scActy':''">
|
|
|
- </i>
|
|
|
+ <i v-if="(selNum + tokNum) >= 4" @click="ejectEvl(10)" class="sc pointer" :class="selType?'scActy':''"></i>
|
|
|
<div v-if="showleaveIcon" style="float: right" class="pointer" @click="leaveMsg()">
|
|
|
<span style="font-size: 25px; color: #b3c1e7; vertical-align: middle;" @click="back()"
|
|
|
class="el-icon-chat-line-round"></span>
|
|
|
@@ -188,6 +187,13 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
+ <!-- 客服会话超时 -->
|
|
|
+ <div class="promptBox" v-if="resigtermsg">
|
|
|
+ <div class="prompt help">
|
|
|
+ <span>客服已经关闭会话,如需继续咨询请重新连接客服</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
<!-- 排队等待 -->
|
|
|
<div class="evaluate" v-if="waitingMsg">
|
|
|
<span>{{waitingText}}</span>
|
|
|
@@ -203,7 +209,7 @@
|
|
|
<!--历史消息-->
|
|
|
<div v-for="(item,index) in hisSviceChat" :key="index">
|
|
|
<!-- 客服信息 -->
|
|
|
- <div class="conversationBox" v-if="item.to_id.startsWith('KF')">
|
|
|
+ <div class="conversationBox" v-if="item.from_id.startsWith('KF')">
|
|
|
<div class="timer">{{item.time_line | formatDate}}</div>
|
|
|
<div class="row">
|
|
|
<div class="conversation row">
|
|
|
@@ -213,7 +219,7 @@
|
|
|
</div>
|
|
|
<div class="cont left">
|
|
|
<div v-if="item.content != ''" v-html="item.content.text"></div>
|
|
|
- <div v-else slot="file">
|
|
|
+ <div v-if="item.content.img != ''" slot="file">
|
|
|
<img class="el-upload-list__item-thumbnail"
|
|
|
@click="handlePictureCardPreview(url+item.content.img)"
|
|
|
style="width:100%;height:auto;border-radius: 10px;"
|
|
|
@@ -233,7 +239,7 @@
|
|
|
<div class="row">
|
|
|
<div class="cont right">
|
|
|
<div v-if="item.content != ''" v-html="item.content.text"></div>
|
|
|
- <div v-else slot="file">
|
|
|
+ <div v-if="item.content.img != ''" slot="file">
|
|
|
<img class="el-upload-list__item-thumbnail"
|
|
|
@click="handlePictureCardPreview(url+item.content.img)"
|
|
|
style="width:100%;height:auto;border-radius: 10px;"
|
|
|
@@ -277,7 +283,7 @@
|
|
|
<!-- 用户发送文本消息 -->
|
|
|
<div class="conversationBox" v-if="item.type == 'user' ">
|
|
|
<div>
|
|
|
- <div class="timer">{{item.time}}</div>
|
|
|
+ <div class="timer">{{webTime}}</div>
|
|
|
<div class="customer row allAlignment">
|
|
|
<div style="width:66px;"></div>
|
|
|
<div class="row">
|
|
|
@@ -312,6 +318,8 @@
|
|
|
<span>{{historyMsgtext}}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
+
|
|
|
</div>
|
|
|
|
|
|
<!-- 点击图片放大 -->
|
|
|
@@ -339,6 +347,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
+
|
|
|
</div>
|
|
|
|
|
|
<!-- 发送消息音频提示 -->
|
|
|
@@ -451,7 +460,7 @@
|
|
|
</div>
|
|
|
<div>
|
|
|
<span>职务:</span>
|
|
|
- <span>咨询客服</span>
|
|
|
+ <span>{{service.serverInfo ? service.serverInfo.groupname : '咨询客服'}}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="headPortrait">
|
|
|
@@ -625,6 +634,8 @@
|
|
|
dialogPaste: false,
|
|
|
pasteUrl:'',//截屏图片
|
|
|
fit:'contain', // 图片样式
|
|
|
+ resigtermsg:false, //提示重连
|
|
|
+ evaluateNum:false,
|
|
|
}
|
|
|
},
|
|
|
filters: {
|
|
|
@@ -809,6 +820,16 @@
|
|
|
}
|
|
|
}))
|
|
|
this.goBack();
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: '加载中',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ });
|
|
|
+ setTimeout(() => {
|
|
|
+ loading.close();
|
|
|
+ }, 4000);
|
|
|
+
|
|
|
},
|
|
|
|
|
|
// 关闭评价框按钮
|
|
|
@@ -1253,6 +1274,10 @@
|
|
|
this.tokNum = 0;
|
|
|
this.service_on = true;
|
|
|
this.closeByServer = false;
|
|
|
+ console.log(redata.data.evaluate_id,"评价数量")
|
|
|
+ if(redata.data.evaluate_id > 0){
|
|
|
+ this.evaluateNum = true;
|
|
|
+ }
|
|
|
}
|
|
|
// 暂无客服
|
|
|
if (redata.message_type == 'wait') {
|
|
|
@@ -1345,6 +1370,8 @@
|
|
|
this.selNum = 0;
|
|
|
this.machine = [];
|
|
|
this.showleaveIcon = true;
|
|
|
+ this.reconnect();
|
|
|
+ this.resigtermsg = true;
|
|
|
}
|
|
|
// 客服掉线.
|
|
|
if (redata.message_type == 'serviceoffline') {
|
|
|
@@ -1387,11 +1414,20 @@
|
|
|
if(redata.message_type == 'toOld'){
|
|
|
let obj = redata;
|
|
|
this.historyMsgtext = obj.data.content;
|
|
|
+
|
|
|
obj.data.chatLog.forEach(res => {
|
|
|
res.content = JSON.parse(res.content)
|
|
|
this.hisSviceChat.push(res)
|
|
|
})
|
|
|
this.customerSviceChat.push({type: 'system', str: 'historyMsg'})
|
|
|
+ // console.log(obj.data.chatLog.length,"历史信息数量");
|
|
|
+ if(obj.data.chatLog.length >= 3){
|
|
|
+ this.selNum = 3;
|
|
|
+ this.tokNum = 3;
|
|
|
+ }else {
|
|
|
+ this.selNum = 0;
|
|
|
+ this.tokNum = 0;
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
|
|
|
@@ -1425,7 +1461,7 @@
|
|
|
this.initWebSocket();
|
|
|
console.log('-----socket重连-----');
|
|
|
this.lockReconnect = false;
|
|
|
- }, 5000)
|
|
|
+ }, 3000)
|
|
|
},
|
|
|
|
|
|
/*************************************/
|