wkw 1 lună în urmă
părinte
comite
e8793b2b11

+ 9 - 1
src/stores/modules/webSocketStore.js

@@ -515,6 +515,13 @@ export const useWebSocketStore = defineStore("webSocketStore", {
       const ts = message.timestamp || Math.floor(Date.now() / 1000);
       const time = new Date(ts).toISOString().replace("T", " ").split(".")[0];
       if (index > -1) {
+        // 如果退群和踢人需要将用户头像移除
+        // let avatar = sessions[index].avatar;
+        // if (message.messageType == MsgType.EXIT_GROUP || message.messageType == MsgType.REMOVE_GROUP){
+        //   avatar = avatar.filter(val=>{
+        //     return !message.avatar.includes(val);
+        //   })
+        // }
         unReadNum = sessions[index].unReadNum + 1;
         // 更新已有会话
         const updated = {
@@ -522,7 +529,8 @@ export const useWebSocketStore = defineStore("webSocketStore", {
           newMsg: lastMsg,
           createDate: time,
           createdAt: time,
-          unReadNum: type == 0 ? 0 : unReadNum
+          unReadNum: type == 0 ? 0 : unReadNum,
+          // avatar
         };
         sessions.splice(index, 1);
         sessions.unshift(updated);

+ 1 - 1
src/views/im/chat/index.vue

@@ -34,7 +34,7 @@
             />
             <!-- 内容 -->
             <div class="list-cont">
-              <div>{{ item.sender?item.sender.nickname: (item.fromUsername || "匿名用户") }}</div>
+              <div>{{ item.sender?item.sender.nickname: (item.nickname || item.fromUsername || "匿名用户") }}</div>
 
               <!-- 文本消息 -->
               <div class="content" v-if="item.contentType === MSG_TYPE.TEXT">

+ 1 - 1
src/views/im/chatSearch/index.vue

@@ -5,7 +5,7 @@
             class="search-item"
             v-model="userAddress"
             show-action
-            placeholder="请输入用户昵称进行搜索"
+            placeholder="请输入关键词搜索"
         >
             <template #left-icon>
                 <svg-icon class="search-icon" name="search" />

+ 10 - 0
src/views/im/detail/index.vue

@@ -287,6 +287,15 @@ const popConfirm = () => {
             if (selfInMembers) {
                 selfInMembers.nickname = newName.value;
             }
+            //缓存的聊天信息数据也要做更改
+            // wsStore.messages = wsStore.messages.map(
+            //     m => {
+            //         if(m.uuid === walletStore.account){
+            //             m.nickname = newName.value;
+            //         }
+            //         return m
+            //     }
+            // );
         }
     }, 1000);
 };
@@ -309,6 +318,7 @@ const funSelectEditnickname = async params => {
         const res = await selectEditnickname(wsStore.uuid, params);
         if (res.code == 200) {
             showToast('修改成功');
+
         } else {
             showToast('修改失败');
         }

+ 16 - 13
src/views/im/publish/index.vue

@@ -38,8 +38,8 @@
 import { ref, computed } from "vue";
 import { addDynamic, hostUploadImg } from "@/api/path/im.api";
 import { showToast } from "vant";
-const router = useRouter();
 
+const router = useRouter();
 const message = ref("");
 const fileList = ref([]);
 const loading = ref(false);
@@ -49,19 +49,22 @@ const isDisabled = computed(() => {
   return !(message.value.trim() || fileList.value.length > 0);
 });
 
-// 选中文件后的处理逻辑(只处理图片
+// 选中文件后的处理逻辑(支持多选上传
 const afterRead = async (file) => {
-  const rawFile = file.file;
-  const formData = new FormData();
-  formData.append("image", rawFile);
-
-  try {
-    const res = await hostUploadImg(formData);
-    file.url = res.data.all_url;
-  } catch (err) {
-    console.error("上传失败:", err);
-    file.status = "failed";
-    file.message = "上传失败";
+  const files = Array.isArray(file) ? file : [file]; // 兼容单选和多选
+  for (const f of files) {
+    const rawFile = f.file;
+    const formData = new FormData();
+    formData.append("image", rawFile);
+
+    try {
+      const res = await hostUploadImg(formData);
+      f.url = res.data.all_url;
+    } catch (err) {
+      console.error("上传失败:", err);
+      f.status = "failed";
+      f.message = "上传失败";
+    }
   }
 };