From 90619542c823d536a4a884b5c070fe4578aaf418 Mon Sep 17 00:00:00 2001 From: dylanmay <670374839@qq.com> Date: Sat, 19 Oct 2024 16:06:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E8=81=8A=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/formatTime.ts | 2 +- src/views/chat/api/messageApi.ts | 58 +++++++ src/views/chat/api/sessionApi.ts | 22 +++ .../chat/components/ChatHeader/Index.vue | 2 +- .../chat/components/ChatMessage/Index.vue | 20 ++- .../chat/components/InputSection/Index.vue | 23 +-- .../Message/{BaseMessage.vue => BaseMsg.vue} | 10 +- .../{ImageMessage.vue => ImageMsg.vue} | 2 +- .../Message/{TextMessage.vue => TextMsg.vue} | 9 +- src/views/chat/components/Session/Index.vue | 12 +- .../chat/components/SessionItem/Index.vue | 39 +++-- src/views/chat/model/BaseConversation.ts | 11 +- src/views/chat/model/BaseMessage.ts | 36 +++- src/views/chat/model/BaseResponse.ts | 5 + src/views/chat/model/ChatConversation.ts | 17 +- src/views/chat/model/ImageMessage.ts | 21 ++- src/views/chat/model/TextMessage.ts | 21 ++- src/views/chat/store/chatstore.ts | 164 +++++++++++------- src/views/chat/types/index.d.ts | 17 +- 19 files changed, 354 insertions(+), 137 deletions(-) create mode 100644 src/views/chat/api/messageApi.ts create mode 100644 src/views/chat/api/sessionApi.ts rename src/views/chat/components/Message/{BaseMessage.vue => BaseMsg.vue} (62%) rename src/views/chat/components/Message/{ImageMessage.vue => ImageMsg.vue} (91%) rename src/views/chat/components/Message/{TextMessage.vue => TextMsg.vue} (58%) create mode 100644 src/views/chat/model/BaseResponse.ts diff --git a/src/utils/formatTime.ts b/src/utils/formatTime.ts index 874092609..64ce8adfe 100644 --- a/src/utils/formatTime.ts +++ b/src/utils/formatTime.ts @@ -61,7 +61,7 @@ export function getWeek(dateTime: Date): number { * @description param 3天: 60 * 60* 24 * 1000 * 3 * @returns 返回拼接后的时间字符串 */ -export function formatPast(param: string | Date, format = 'YYYY-mm-dd HH:MM:SS'): string { +export function formatPast(param: string | Date, format = 'YYYY-MM-DD HH:mm:ss'): string { // 传入格式处理、存储转换值 let t: any, s: number // 获取js 时间戳 diff --git a/src/views/chat/api/messageApi.ts b/src/views/chat/api/messageApi.ts new file mode 100644 index 000000000..cbab90cdf --- /dev/null +++ b/src/views/chat/api/messageApi.ts @@ -0,0 +1,58 @@ +/* + * @Author: dylan.may@qq.com + * @Date: 2024-10-16 11:30:31 + * @Last Modified by: dylan.may@qq.com + * @Last Modified time: 2024-10-16 16:01:25 + */ + +import request from '@/config/axios' +import { MessageModelType } from '../types' + +export interface SendMsg { + clientMessageId: string + receiverId: number + conversationType: number + contentType: number + content: string +} + +export interface SessionMsgReq { + receiverId: number + conversationType: number + sendTime: Date +} + +/** + * 消息接口 + */ +export default class MessageApi { + /** + * 发送消息 + * @param data SendMsg + * @returns Promise<{ id: number; sendTime: number }> + */ + static send(data: SendMsg): Promise<{ id: number; sendTime: number }> { + return request.post({ url: '/im/message/send', data }) + } + + /** + * 获取会话消息 + * @param data SessionMsgReq + * @returns Promise> + */ + static getSessionMsg(params: SessionMsgReq): Promise> { + return request.get({ url: '/im/message/list', params }) + } + + /** + * 获取所有消息 + * @param data { sequence: number; size: number } + * @returns Promise> + */ + static getMessageForAllSession(params: { + sequence: number + size: number + }): Promise> { + return request.get({ url: '/im/message/pull', params }) + } +} diff --git a/src/views/chat/api/sessionApi.ts b/src/views/chat/api/sessionApi.ts new file mode 100644 index 000000000..a11f9ca44 --- /dev/null +++ b/src/views/chat/api/sessionApi.ts @@ -0,0 +1,22 @@ +/* + * @Author: dylan.may@qq.com + * @Date: 2024-10-16 11:30:31 + * @Last Modified by: dylan.may@qq.com + * @Last Modified time: 2024-10-16 16:01:25 + */ + +import request from '@/config/axios' +import { ChatConversation } from '../model/ChatConversation' + +/** + * 会话接口 + */ +export default class SessionApi { + /** + * 获取会话列表 + * @returns Promise> + */ + static getSessionList(): Promise> { + return request.get({ url: '/im/conversation/list' }) + } +} diff --git a/src/views/chat/components/ChatHeader/Index.vue b/src/views/chat/components/ChatHeader/Index.vue index ab697ca8b..6b33c3efc 100644 --- a/src/views/chat/components/ChatHeader/Index.vue +++ b/src/views/chat/components/ChatHeader/Index.vue @@ -1,7 +1,7 @@