diff --git a/apps/web-antd/public/audio/sys.mp3 b/apps/web-antd/public/audio/sys.mp3 new file mode 100644 index 00000000..870c9ec0 Binary files /dev/null and b/apps/web-antd/public/audio/sys.mp3 differ diff --git a/apps/web-antd/src/api/core/upload.ts b/apps/web-antd/src/api/core/upload.ts index c57aae95..7290f4f6 100644 --- a/apps/web-antd/src/api/core/upload.ts +++ b/apps/web-antd/src/api/core/upload.ts @@ -7,6 +7,13 @@ import { requestClient } from '#/api/request'; export async function uploadFile(data: any) { return requestClient.upload('upload/image', data); } +/** + * 文件上传 - 聊天信息 + * @param data + */ +export async function uploadChatFile(data: any) { + return requestClient.upload('upload/chat-file', data); +} /** * 通过文件id集合获取文件信息 diff --git a/apps/web-antd/src/util/tool.ts b/apps/web-antd/src/util/tool.ts index 60ae1a53..2c41d111 100644 --- a/apps/web-antd/src/util/tool.ts +++ b/apps/web-antd/src/util/tool.ts @@ -3,6 +3,24 @@ import type { DescItem } from '#/components/description'; import { isFunction } from '@vben/utils'; +import SysAudioMp3 from '/public/audio/sys.mp3'; + + +export const playOnceAndDestroySys = () => { + const audio = new Audio(SysAudioMp3); + + // 播放音频 + audio.play().catch((error) => { + console.error('音频播放失败:', error); + audio.remove(); // 如果播放失败,也移除音频对象 + }); + + // 播放结束后销毁音频对象 + audio.addEventListener('ended', () => { + audio.remove(); // 移除DOM中的audio元素(如果是动态创建的) + audio.src = ''; // 清空音频源以释放内存 + }); +}; export const omit = (obj: any, keysToOmit: string[]) => { // 如果 obj 不是对象或者 keysToOmit 不是数组,则直接返回 obj if (typeof obj !== 'object' || !Array.isArray(keysToOmit)) { diff --git a/apps/web-antd/src/views/business/chat/api/index.ts b/apps/web-antd/src/views/business/chat/api/index.ts index 0cf2fa1f..9e4d7251 100644 --- a/apps/web-antd/src/views/business/chat/api/index.ts +++ b/apps/web-antd/src/views/business/chat/api/index.ts @@ -8,3 +8,13 @@ const prefix = 'chat-friends/'; export async function getChatFriendsListApi(data: any = {}) { return requestClient.get(`${prefix}list`, { params: data }); } +// chat-friends/messages-by-room-id + +/** + * 获取当前登录的诊所信息 + * @param data + */ +export async function getChatMessageListApi(data: any = {}) { + // return requestClient.post(`${prefix}messages-by-room-id`, { params: data }); + return requestClient.post(`${prefix}messages-by-room-id`, data); +} diff --git a/apps/web-antd/src/views/business/chat/components/ChatHeader.vue b/apps/web-antd/src/views/business/chat/components/ChatHeader.vue index 55c2d15a..b27fcf7f 100644 --- a/apps/web-antd/src/views/business/chat/components/ChatHeader.vue +++ b/apps/web-antd/src/views/business/chat/components/ChatHeader.vue @@ -1,79 +1,10 @@ - - + +