Răsfoiți Sursa

✨ feat(classroom): 增强图片消息功能

- 为Message接口添加fileId字段,用于存储图片消息的文件ID
- 优化图片消息处理逻辑:
  - 保存消息时content字段存储"[图片]"描述文本
  - 新增fileId字段存储实际文件ID
  - 加载历史消息时根据消息类型显示图片URL或文本内容
- 确保消息数据结构一致性,为fileId提供默认null值
yourname 6 luni în urmă
părinte
comite
95d684aabb
1 a modificat fișierele cu 8 adăugiri și 5 ștergeri
  1. 8 5
      src/client/mobile/components/Classroom/useClassroom.ts

+ 8 - 5
src/client/mobile/components/Classroom/useClassroom.ts

@@ -80,6 +80,7 @@ export interface Message {
   sender?: string;
   senderId?: string;
   timestamp: number;
+  fileId?: number; // 用于图片消息的文件ID
 }
 
 export const useClassroom = ({ user }:{ user : User }) => {
@@ -162,7 +163,8 @@ export const useClassroom = ({ user }:{ user : User }) => {
           content: message.content,
           senderId: message.senderId || null,
           senderName: message.sender || null,
-          timestamp: message.timestamp
+          timestamp: message.timestamp,
+          fileId: message.fileId || null // 添加fileId字段
         }
       });
     } catch (error) {
@@ -749,7 +751,7 @@ export const useClassroom = ({ user }:{ user : User }) => {
             // 将历史消息添加到消息列表
             const historyMessages: Message[] = historyData.data.map((msg) => ({
               type: msg.type,
-              content: msg.content,
+              content: msg.type === 'image' && msg.file ? msg.file.fullUrl : msg.content,
               sender: msg.senderName || msg.senderId || '',
               senderId: msg.senderId || '',
               timestamp: msg.timestamp
@@ -888,13 +890,14 @@ export const useClassroom = ({ user }:{ user : User }) => {
     if (!imMessageManager.current || !classId) return;
 
     try {
-      // 先保存消息到数据库,保存fileId而不是完整的URL
+      // 先保存消息到数据库,保存fileId到fileId字段
       const message: Message = {
         type: 'image',
-        content: fileId.toString(),
+        content: '[图片]', // 内容字段保存描述文本
         sender: user?.nickname || user?.username || '',
         senderId: userId,
-        timestamp: Date.now()
+        timestamp: Date.now(),
+        fileId: fileId // 新增fileId字段
       };
       await saveMessageToDatabase(message);