2025-09-11 15:00:57 +08:00
|
|
|
import { ChatRecord, ContractData, weChatGroup } from "@/pages/pc/ckbox/data";
|
2025-09-17 17:21:20 +08:00
|
|
|
import {
|
|
|
|
|
CommentItem,
|
|
|
|
|
likeListItem,
|
|
|
|
|
FriendsCircleItem,
|
|
|
|
|
} from "@/pages/pc/ckbox/weChat/components/SidebarMenu/FriendsCicle/index.data";
|
2025-09-19 11:30:46 +08:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 微信聊天状态管理接口定义
|
|
|
|
|
* 包含聊天消息、联系人管理、朋友圈等功能的状态和方法
|
|
|
|
|
*/
|
2025-09-11 15:00:57 +08:00
|
|
|
export interface WeChatState {
|
2025-09-19 16:34:56 +08:00
|
|
|
quoteMessageContent: string;
|
|
|
|
|
updateQuoteMessageContent: (value: string) => void;
|
2025-09-19 11:30:46 +08:00
|
|
|
// ==================== Transmit Module =========Start===========
|
|
|
|
|
/** 选中的聊天记录列表 */
|
|
|
|
|
selectedChatRecords: ChatRecord[];
|
|
|
|
|
/** 更新选中的聊天记录 */
|
|
|
|
|
updateSelectedChatRecords: (message: ChatRecord[]) => void;
|
|
|
|
|
|
|
|
|
|
/** 选中的联系人或群组列表 */
|
|
|
|
|
selectedTransmitContact: ContractData[] | weChatGroup[];
|
|
|
|
|
/** 更新选中的联系人或群组 */
|
|
|
|
|
updateSelectedTransmitContact: (
|
|
|
|
|
contact: ContractData[] | weChatGroup[],
|
|
|
|
|
) => void;
|
2025-09-19 10:24:25 +08:00
|
|
|
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 转发弹窗开启状态 */
|
2025-09-19 10:24:25 +08:00
|
|
|
openTransmitModal: boolean;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 更新转发弹窗状态 */
|
2025-09-19 10:24:25 +08:00
|
|
|
updateTransmitModal: (open: boolean) => void;
|
2025-09-19 11:30:46 +08:00
|
|
|
// ==================== Transmit Module =========END===========
|
|
|
|
|
|
|
|
|
|
// ==================== 当前联系人管理 ====================
|
|
|
|
|
/** 当前选中的联系人/群组 */
|
2025-09-11 15:00:57 +08:00
|
|
|
currentContract: ContractData | weChatGroup | null;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 清空当前联系人 */
|
2025-09-17 10:44:12 +08:00
|
|
|
clearCurrentContact: () => void;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 设置当前联系人 */
|
2025-09-17 10:44:12 +08:00
|
|
|
setCurrentContact: (
|
|
|
|
|
contract: ContractData | weChatGroup,
|
|
|
|
|
isExist?: boolean,
|
|
|
|
|
) => void;
|
2025-09-11 15:00:57 +08:00
|
|
|
|
2025-09-19 11:30:46 +08:00
|
|
|
// ==================== 聊天消息管理 ====================
|
|
|
|
|
/** 当前聊天的消息列表 */
|
2025-09-11 15:00:57 +08:00
|
|
|
currentMessages: ChatRecord[];
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 添加新消息 */
|
2025-09-18 17:58:33 +08:00
|
|
|
addMessage: (message: ChatRecord) => void;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 更新指定消息 */
|
2025-09-18 17:58:33 +08:00
|
|
|
updateMessage: (messageId: number, updates: Partial<ChatRecord>) => void;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 撤回指定消息 */
|
2025-09-18 17:58:33 +08:00
|
|
|
recallMessage: (messageId: number) => void;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 消息加载状态 */
|
2025-09-11 15:00:57 +08:00
|
|
|
messagesLoading: boolean;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 数据初始化加载状态 */
|
2025-09-11 15:00:57 +08:00
|
|
|
isLoadingData: boolean;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 当前群组成员列表 */
|
2025-09-11 15:00:57 +08:00
|
|
|
currentGroupMembers: any[];
|
2025-09-19 11:30:46 +08:00
|
|
|
|
|
|
|
|
// ==================== 界面状态管理 ====================
|
|
|
|
|
/** 是否显示复选框 */
|
2025-09-18 16:38:18 +08:00
|
|
|
showCheckbox: boolean;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 更新复选框显示状态 */
|
2025-09-18 16:38:18 +08:00
|
|
|
updateShowCheckbox: (show: boolean) => void;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 进入模块类型 (common | multipleForwarding) */
|
2025-09-18 16:38:18 +08:00
|
|
|
EnterModule: string;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 更新进入模块类型 */
|
2025-09-18 16:38:18 +08:00
|
|
|
updateEnterModule: (module: string) => void;
|
2025-09-19 11:30:46 +08:00
|
|
|
|
|
|
|
|
// ==================== 朋友圈相关 ====================
|
|
|
|
|
/** 朋友圈数据列表 */
|
2025-09-17 10:44:12 +08:00
|
|
|
MomentCommon: FriendsCircleItem[];
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 朋友圈数据加载状态 */
|
|
|
|
|
MomentCommonLoading: boolean;
|
|
|
|
|
/** 清空朋友圈数据 */
|
2025-09-17 10:44:12 +08:00
|
|
|
clearMomentCommon: () => void;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 添加朋友圈数据 */
|
2025-09-17 14:57:58 +08:00
|
|
|
addMomentCommon: (moment: FriendsCircleItem[]) => void;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 更新朋友圈数据 */
|
2025-09-17 10:44:12 +08:00
|
|
|
updateMomentCommon: (moments: FriendsCircleItem[]) => void;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 更新朋友圈加载状态 */
|
2025-09-17 10:44:12 +08:00
|
|
|
updateMomentCommonLoading: (loading: boolean) => void;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 更新朋友圈点赞 */
|
2025-09-17 15:52:15 +08:00
|
|
|
updateLikeMoment: (snsId: string, likeList: likeListItem[]) => void;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 更新朋友圈评论 */
|
2025-09-17 16:56:08 +08:00
|
|
|
updateComment: (snsId: string, commentList: CommentItem[]) => void;
|
2025-09-17 10:20:31 +08:00
|
|
|
|
2025-09-19 11:30:46 +08:00
|
|
|
// ==================== 消息加载方法 ====================
|
|
|
|
|
/** 加载聊天消息 */
|
2025-09-11 15:00:57 +08:00
|
|
|
loadChatMessages: (Init: boolean, To?: number) => Promise<void>;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 搜索消息 */
|
2025-09-11 15:00:57 +08:00
|
|
|
SearchMessage: (params: {
|
|
|
|
|
From: number;
|
|
|
|
|
To: number;
|
|
|
|
|
keyword: string;
|
|
|
|
|
Count?: number;
|
|
|
|
|
}) => Promise<void>;
|
2025-09-19 11:30:46 +08:00
|
|
|
|
|
|
|
|
// ==================== 视频消息处理 ====================
|
|
|
|
|
/** 设置视频消息加载状态 */
|
2025-09-11 15:00:57 +08:00
|
|
|
setVideoLoading: (messageId: number, isLoading: boolean) => void;
|
2025-09-19 11:30:46 +08:00
|
|
|
/** 设置视频消息URL */
|
2025-09-11 15:00:57 +08:00
|
|
|
setVideoUrl: (messageId: number, videoUrl: string) => void;
|
2025-09-19 11:30:46 +08:00
|
|
|
|
|
|
|
|
// ==================== 消息接收处理 ====================
|
|
|
|
|
/** 接收新消息处理 */
|
2025-09-11 15:00:57 +08:00
|
|
|
receivedMsg: (message: ChatRecord) => void;
|
|
|
|
|
}
|