diff --git a/src/views/chat/ChatPage/Index.vue b/src/views/chat/ChatPage/Index.vue index b17e70645..47a4bc0c7 100644 --- a/src/views/chat/ChatPage/Index.vue +++ b/src/views/chat/ChatPage/Index.vue @@ -1,12 +1,14 @@ @@ -17,14 +19,18 @@ import ToolSection from '../components/ToolSection/Index.vue' import Session from '../components/Session/Index.vue' +import Friends from '../components/Friends/Index.vue' import ChatHeader from '../components/ChatHeader/Index.vue' import ChatMessage from '../components/ChatMessage/Index.vue' import InputSection from '../components/InputSection/index.vue' - -/** - * Define Data Structure of this page, then initialize it with reactive object - */ -interface State {} +import FriendDetail from '../components/FriendDetail/Index.vue' +import { MENU_LIST_ENUM } from '../types/index.d.ts' defineOptions({ name: 'ChatPage' }) + +const bussinessType = ref(1) + +const toolMenuSelectChange = (value) => { + bussinessType.value = value +} 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 @@