移除未使用的客服列表相关代码,优化消息管理逻辑,新增消息状态管理功能,提升代码结构和可读性。
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
//消息管理器
|
||||
import { getkfUserList, asyncKfUserList } from "@/store/module/ckchat/ckchat";
|
||||
import { useWeChatStore } from "../weChat/weChat";
|
||||
import { WebSocketMessage } from "./websocket";
|
||||
import { deepCopy } from "@/utils/common";
|
||||
import { Messages } from "./msg.data";
|
||||
import { db } from "@/utils/db";
|
||||
import { Modal } from "antd";
|
||||
import { useCustomerStore, updateCustomerList } from "../weChat/customer";
|
||||
// 消息处理器类型定义
|
||||
type MessageHandler = (message: WebSocketMessage) => void;
|
||||
const addMessage = useWeChatStore.getState().addMessage;
|
||||
@@ -20,21 +20,24 @@ const messageHandlers: Record<string, MessageHandler> = {
|
||||
CmdRequestWechatAccountsAliveStatusResp: message => {
|
||||
// console.log("微信账号存活状态响应", message);
|
||||
// 获取客服列表
|
||||
const kfUserList = deepCopy(getkfUserList());
|
||||
const customerList = deepCopy(useCustomerStore.getState().customerList);
|
||||
const wechatAccountsAliveStatus = message.wechatAccountsAliveStatus || {};
|
||||
// 遍历客服列表,更新存活状态
|
||||
kfUserList.forEach(kfUser => {
|
||||
kfUser.isOnline = wechatAccountsAliveStatus[kfUser.id];
|
||||
});
|
||||
|
||||
// 遍历客服列表,更新在线状态
|
||||
const updatedCustomerList = customerList.map(customer => ({
|
||||
...customer,
|
||||
isOnline: wechatAccountsAliveStatus[customer.id] || false,
|
||||
}));
|
||||
|
||||
// 按在线状态排序,在线的排在前面
|
||||
kfUserList.sort((a, b) => {
|
||||
updatedCustomerList.sort((a, b) => {
|
||||
if (a.isOnline && !b.isOnline) return -1;
|
||||
if (!a.isOnline && b.isOnline) return 1;
|
||||
return 0;
|
||||
});
|
||||
|
||||
asyncKfUserList(kfUserList);
|
||||
// 更新客服列表
|
||||
updateCustomerList(updatedCustomerList);
|
||||
},
|
||||
// 发送消息响应
|
||||
CmdSendMessageResp: message => {
|
||||
@@ -57,7 +60,7 @@ const messageHandlers: Record<string, MessageHandler> = {
|
||||
// 在这里添加具体的处理逻辑
|
||||
receivedMsg(message.friendMessage || message.chatroomMessage);
|
||||
},
|
||||
CmdFriendInfoChanged: message => {
|
||||
CmdFriendInfoChanged: () => {
|
||||
// console.log("好友信息变更", message);
|
||||
// 在这里添加具体的处理逻辑
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user