1.游客功能添加、删除列表离线游客 目前游客断开没有返回关闭信息
2.游客收不到客服消息 已处理 3.中英文翻译 已完成 4.将本地时间修改为UTC时间 完成 5.发送图片有问题 又重新改回url上传 6.游客用户增加提示和跳转登录的功能 7.客服消息换行及显示已处理 8.客服端限制输入400个字符 用户端限制输入300个字符 完成
This commit is contained in:
@@ -137,6 +137,8 @@
|
||||
<i v-else class="el-icon-user"></i>
|
||||
</div>
|
||||
<div class="message-content">
|
||||
<!-- 时间显示在右上角 -->
|
||||
<!-- <span class="message-time">{{ formatTime(msg.time) }}</span> -->
|
||||
<!-- 文本消息 -->
|
||||
<div v-if="!msg.isImage" class="message-text">
|
||||
{{ msg.text }}
|
||||
@@ -153,7 +155,7 @@
|
||||
</div>
|
||||
|
||||
<div class="message-footer">
|
||||
<span class="message-time">{{ formatTime(msg.time) }}</span>
|
||||
<!-- <span class="message-time">{{ formatTime(msg.time) }}</span> -->
|
||||
<!-- 添加已读状态显示 -->
|
||||
<span
|
||||
v-if="msg.type === 'user'"
|
||||
@@ -191,14 +193,18 @@
|
||||
:disabled="connectionStatus !== 'connected'"
|
||||
/>
|
||||
</div>
|
||||
<input
|
||||
type="text"
|
||||
class="chat-input"
|
||||
v-model="inputMessage"
|
||||
@keyup.enter="sendMessage"
|
||||
:placeholder="$t('chat.inputPlaceholder') || '请输入您的问题...'"
|
||||
:disabled="connectionStatus !== 'connected'"
|
||||
/>
|
||||
<div class="chat-input-wrapper" style="display: flex;align-items: center;">
|
||||
<input
|
||||
type="text"
|
||||
class="chat-input"
|
||||
v-model="inputMessage"
|
||||
:maxlength="maxMessageLength"
|
||||
@input="handleInputMessage"
|
||||
:placeholder="$t('chat.inputPlaceholder') || '请输入您的问题...'"
|
||||
:disabled="connectionStatus !== 'connected'"
|
||||
/>
|
||||
<!-- <span class="input-counter">{{ maxMessageLength - inputMessage.length }}</span> -->
|
||||
</div>
|
||||
<button
|
||||
class="chat-send"
|
||||
@click="sendMessage"
|
||||
@@ -282,6 +288,8 @@ export default {
|
||||
connectionError: null, // 添加错误信息存储
|
||||
showRefreshButton: false, // 添加刷新按钮
|
||||
heartbeatCheckInterval: 30000, // 每30秒检查一次心跳
|
||||
|
||||
maxMessageLength: 300,
|
||||
};
|
||||
},
|
||||
|
||||
@@ -601,10 +609,19 @@ export default {
|
||||
handleBeforeUnload() {
|
||||
this.disconnectWebSocket();
|
||||
},
|
||||
|
||||
//只能输入300个字符
|
||||
handleInputMessage() {
|
||||
if (this.inputMessage.length > this.maxMessageLength) {
|
||||
this.inputMessage = this.inputMessage.slice(0, this.maxMessageLength);
|
||||
}
|
||||
},
|
||||
// 发送消息
|
||||
sendMessage() {
|
||||
if (!this.inputMessage.trim()) return;
|
||||
if (this.inputMessage.length > this.maxMessageLength) {
|
||||
this.$message.warning(`消息不能超过${this.maxMessageLength}个字符`);
|
||||
return;
|
||||
}
|
||||
|
||||
// 检查 WebSocket 连接状态
|
||||
if (!this.stompClient || !this.stompClient.connected) {
|
||||
@@ -1126,14 +1143,22 @@ export default {
|
||||
this.isChatOpen = !this.isChatOpen;
|
||||
|
||||
// 1. 判别身份
|
||||
// this.determineUserType();
|
||||
const userInfo = JSON.parse(
|
||||
localStorage.getItem("jurisdiction") || "{}"
|
||||
);
|
||||
|
||||
if (userInfo.roleKey === "customer_service") {
|
||||
// 客服用户 跳转到客服页面
|
||||
this.userType = 2;
|
||||
const lang = this.$i18n.locale;
|
||||
this.$router.push(`/${lang}/customerService`);
|
||||
return;
|
||||
// this.userEmail = "";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 2. 如果是客服,跳转到客服页面
|
||||
if (this.userType === 2) {
|
||||
const lang = this.$i18n.locale;
|
||||
this.$router.push(`/${lang}/customerService`);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.isChatOpen) {
|
||||
try {
|
||||
@@ -2151,4 +2176,43 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.message-content {
|
||||
position: relative;
|
||||
max-width: 70%;
|
||||
padding: 18px 15px 10px 15px; // 上方多留空间给时间
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
|
||||
|
||||
.message-time {
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
right: 15px;
|
||||
font-size: 11px;
|
||||
color: #bbb;
|
||||
pointer-events: none;
|
||||
user-select: none;
|
||||
}
|
||||
// 用户消息气泡内时间颜色适配
|
||||
.chat-message-user & .message-time {
|
||||
color: rgba(255,255,255,0.7);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
Reference in New Issue
Block a user