Skip to content

Commit 951ce1c

Browse files
YunaiVgitee-org
authored andcommitted
!675 fix: mall kefu
Merge pull request !675 from puhui999/devlop
2 parents fef86bc + c50f59d commit 951ce1c

File tree

2 files changed

+39
-33
lines changed

2 files changed

+39
-33
lines changed

src/views/mall/promotion/kefu/components/KeFuMessageList.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -279,8 +279,9 @@ const handleSendMessage = async (event: any) => {
279279
return
280280
}
281281
// 1. 校验消息是否为空
282-
if (isEmpty(unref(message.value))) {
282+
if (isEmpty(unref(message.value)?.trim())) {
283283
messageTool.notifyWarning('请输入消息后再发送哦!')
284+
message.value = ''
284285
return
285286
}
286287
// 2. 组织发送消息

src/views/mall/promotion/kefu/index.vue

Lines changed: 37 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -37,40 +37,45 @@ const { data, close, open } = useWebSocket(server.value, {
3737
})
3838
3939
/** 监听 WebSocket 数据 */
40-
watchEffect(() => {
41-
if (!data.value) {
42-
return
43-
}
44-
try {
45-
// 1. 收到心跳
46-
if (data.value === 'pong') {
47-
return
48-
}
49-
// 2.1 解析 type 消息类型
50-
const jsonMessage = JSON.parse(data.value)
51-
const type = jsonMessage.type
52-
if (!type) {
53-
message.error('未知的消息类型:' + data.value)
54-
return
55-
}
56-
// 2.2 消息类型:KEFU_MESSAGE_TYPE
57-
if (type === WebSocketMessageTypeConstants.KEFU_MESSAGE_TYPE) {
58-
const message = JSON.parse(jsonMessage.content)
59-
// 刷新会话列表
60-
kefuStore.updateConversation(message.conversationId)
61-
// 刷新消息列表
62-
keFuChatBoxRef.value?.refreshMessageList(message)
63-
return
64-
}
65-
// 2.3 消息类型:KEFU_MESSAGE_ADMIN_READ
66-
if (type === WebSocketMessageTypeConstants.KEFU_MESSAGE_ADMIN_READ) {
67-
// 更新会话已读
68-
kefuStore.updateConversationStatus(jsonParse(jsonMessage.content))
40+
watch(
41+
() => data.value,
42+
(newData) => {
43+
if (!newData) return
44+
try {
45+
// 1. 收到心跳
46+
if (newData === 'pong') return
47+
48+
// 2.1 解析 type 消息类型
49+
const jsonMessage = JSON.parse(newData)
50+
const type = jsonMessage.type
51+
if (!type) {
52+
message.error('未知的消息类型:' + newData)
53+
return
54+
}
55+
56+
// 2.2 消息类型:KEFU_MESSAGE_TYPE
57+
if (type === WebSocketMessageTypeConstants.KEFU_MESSAGE_TYPE) {
58+
const message = JSON.parse(jsonMessage.content)
59+
// 刷新会话列表
60+
kefuStore.updateConversation(message.conversationId)
61+
// 刷新消息列表
62+
keFuChatBoxRef.value?.refreshMessageList(message)
63+
return
64+
}
65+
66+
// 2.3 消息类型:KEFU_MESSAGE_ADMIN_READ
67+
if (type === WebSocketMessageTypeConstants.KEFU_MESSAGE_ADMIN_READ) {
68+
// 更新会话已读
69+
kefuStore.updateConversationStatus(jsonParse(jsonMessage.content))
70+
}
71+
} catch (error) {
72+
console.error(error)
6973
}
70-
} catch (error) {
71-
console.error(error)
74+
},
75+
{
76+
immediate: false // 不立即执行
7277
}
73-
})
78+
)
7479
// ======================= WebSocket end =======================
7580
7681
/** 加载指定会话的消息列表 */

0 commit comments

Comments
 (0)