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 @@