- 将ctrlUserList重命名为kfUserList并优化相关接口 - 新增异步更新客服列表、联系人列表和会话列表的方法 - 重构联系人分组逻辑,支持按标签分组 - 优化会话列表排序规则,按最后更新时间降序排列 - 移除无用代码并简化组件逻辑
233 lines
5.9 KiB
TypeScript
233 lines
5.9 KiB
TypeScript
import request from "@/api/request2";
|
|
import {
|
|
MessageData,
|
|
ChatHistoryResponse,
|
|
MessageType,
|
|
OnlineStatus,
|
|
MessageStatus,
|
|
FileUploadResponse,
|
|
EmojiData,
|
|
QuickReply,
|
|
ChatSettings,
|
|
} from "./data";
|
|
|
|
//读取聊天信息
|
|
//kf.quwanzhi.com:9991/api/WechatFriend/clearUnreadCount
|
|
|
|
export function WechatGroup(params) {
|
|
return request("/api/WechatGroup/list", params, "GET");
|
|
}
|
|
|
|
//获取聊天记录-1 清除未读
|
|
export function clearUnreadCount(params) {
|
|
return request("/api/WechatFriend/clearUnreadCount", params, "PUT");
|
|
}
|
|
//获取聊天记录-2 获取列表
|
|
export function getMessages(params: {
|
|
wechatAccountId: number;
|
|
wechatFriendId: number;
|
|
From: number;
|
|
To: number;
|
|
Count: number;
|
|
olderData: boolean;
|
|
}) {
|
|
return request("/api/FriendMessage/SearchMessage", params, "GET");
|
|
}
|
|
//获取群列表
|
|
export function getGroupList(params: { prevId: number; count: number }) {
|
|
return request(
|
|
"/api/wechatChatroom/listExcludeMembersByPage?",
|
|
params,
|
|
"GET",
|
|
);
|
|
}
|
|
|
|
//触客宝登陆
|
|
export function loginWithToken(params: any) {
|
|
return request(
|
|
"/token",
|
|
params,
|
|
"POST",
|
|
{
|
|
headers: {
|
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
},
|
|
},
|
|
1000,
|
|
);
|
|
}
|
|
|
|
// 获取触客宝用户信息
|
|
export function getChuKeBaoUserInfo() {
|
|
return request("/api/account/self", {}, "GET");
|
|
}
|
|
|
|
// 获取联系人列表
|
|
export const getContactList = (params: { prevId: number; count: number }) => {
|
|
return request("/api/wechatFriend/list", params, "GET");
|
|
};
|
|
|
|
//获取控制终端列表
|
|
export const getControlTerminalList = params => {
|
|
return request("/api/wechataccount", params, "GET");
|
|
};
|
|
|
|
// 搜索联系人
|
|
export const getChatMessage = (params: {
|
|
wechatAccountId: number;
|
|
wechatFriendId: number;
|
|
From: number;
|
|
To: number;
|
|
Count: number;
|
|
olderData: boolean;
|
|
keyword: string;
|
|
}) => {
|
|
return request("/api/FriendMessage/SearchMessage", params, "GET");
|
|
};
|
|
|
|
// 获取聊天历史
|
|
export const getChatHistory = (
|
|
chatId: string,
|
|
page: number = 1,
|
|
pageSize: number = 50,
|
|
): Promise<ChatHistoryResponse> => {
|
|
return request(`/v1/chats/${chatId}/messages`, { page, pageSize }, "GET");
|
|
};
|
|
|
|
// 发送消息
|
|
export const sendMessage = (
|
|
chatId: string,
|
|
content: string,
|
|
type: MessageType = MessageType.TEXT,
|
|
): Promise<MessageData> => {
|
|
return request(`/v1/chats/${chatId}/messages`, { content, type }, "POST");
|
|
};
|
|
|
|
// 发送文件消息
|
|
export const sendFileMessage = (
|
|
chatId: string,
|
|
file: File,
|
|
type: MessageType,
|
|
): Promise<MessageData> => {
|
|
const formData = new FormData();
|
|
formData.append("file", file);
|
|
formData.append("type", type);
|
|
return request(`/v1/chats/${chatId}/messages/file`, formData, "POST");
|
|
};
|
|
|
|
// 标记消息为已读
|
|
export const markMessageAsRead = (messageId: string): Promise<void> => {
|
|
return request(`/v1/messages/${messageId}/read`, {}, "PUT");
|
|
};
|
|
|
|
// 标记聊天为已读
|
|
export const markChatAsRead = (chatId: string): Promise<void> => {
|
|
return request(`/v1/chats/${chatId}/read`, {}, "PUT");
|
|
};
|
|
|
|
// 添加群组成员
|
|
export const addGroupMembers = (
|
|
groupId: string,
|
|
memberIds: string[],
|
|
): Promise<void> => {
|
|
return request(`/v1/groups/${groupId}/members`, { memberIds }, "POST");
|
|
};
|
|
|
|
// 移除群组成员
|
|
export const removeGroupMembers = (
|
|
groupId: string,
|
|
memberIds: string[],
|
|
): Promise<void> => {
|
|
return request(`/v1/groups/${groupId}/members`, { memberIds }, "DELETE");
|
|
};
|
|
|
|
// 获取在线状态
|
|
export const getOnlineStatus = (userId: string): Promise<OnlineStatus> => {
|
|
return request(`/v1/users/${userId}/status`, {}, "GET");
|
|
};
|
|
|
|
// 获取消息状态
|
|
export const getMessageStatus = (messageId: string): Promise<MessageStatus> => {
|
|
return request(`/v1/messages/${messageId}/status`, {}, "GET");
|
|
};
|
|
|
|
// 上传文件
|
|
export const uploadFile = (file: File): Promise<FileUploadResponse> => {
|
|
const formData = new FormData();
|
|
formData.append("file", file);
|
|
return request("/v1/upload", formData, "POST");
|
|
};
|
|
|
|
// 获取表情包列表
|
|
export const getEmojiList = (): Promise<EmojiData[]> => {
|
|
return request("/v1/emojis", {}, "GET");
|
|
};
|
|
|
|
// 获取快捷回复列表
|
|
export const getQuickReplies = (): Promise<QuickReply[]> => {
|
|
return request("/v1/quick-replies", {}, "GET");
|
|
};
|
|
|
|
// 添加快捷回复
|
|
export const addQuickReply = (data: {
|
|
content: string;
|
|
category: string;
|
|
}): Promise<QuickReply> => {
|
|
return request("/v1/quick-replies", data, "POST");
|
|
};
|
|
|
|
// 删除快捷回复
|
|
export const deleteQuickReply = (id: string): Promise<void> => {
|
|
return request(`/v1/quick-replies/${id}`, {}, "DELETE");
|
|
};
|
|
|
|
// 获取聊天设置
|
|
export const getChatSettings = (): Promise<ChatSettings> => {
|
|
return request("/v1/chat/settings", {}, "GET");
|
|
};
|
|
|
|
// 更新聊天设置
|
|
export const updateChatSettings = (
|
|
settings: Partial<ChatSettings>,
|
|
): Promise<ChatSettings> => {
|
|
return request("/v1/chat/settings", settings, "PUT");
|
|
};
|
|
|
|
// 删除聊天会话
|
|
export const deleteChatSession = (chatId: string): Promise<void> => {
|
|
return request(`/v1/chats/${chatId}`, {}, "DELETE");
|
|
};
|
|
|
|
// 置顶聊天会话
|
|
export const pinChatSession = (chatId: string): Promise<void> => {
|
|
return request(`/v1/chats/${chatId}/pin`, {}, "PUT");
|
|
};
|
|
|
|
// 取消置顶聊天会话
|
|
export const unpinChatSession = (chatId: string): Promise<void> => {
|
|
return request(`/v1/chats/${chatId}/unpin`, {}, "PUT");
|
|
};
|
|
|
|
// 静音聊天会话
|
|
export const muteChatSession = (chatId: string): Promise<void> => {
|
|
return request(`/v1/chats/${chatId}/mute`, {}, "PUT");
|
|
};
|
|
|
|
// 取消静音聊天会话
|
|
export const unmuteChatSession = (chatId: string): Promise<void> => {
|
|
return request(`/v1/chats/${chatId}/unmute`, {}, "PUT");
|
|
};
|
|
|
|
// 转发消息
|
|
export const forwardMessage = (
|
|
messageId: string,
|
|
targetChatIds: string[],
|
|
): Promise<void> => {
|
|
return request("/v1/messages/forward", { messageId, targetChatIds }, "POST");
|
|
};
|
|
|
|
// 撤回消息
|
|
export const recallMessage = (messageId: string): Promise<void> => {
|
|
return request(`/v1/messages/${messageId}/recall`, {}, "PUT");
|
|
};
|