Răsfoiți Sursa

fix: 1.群聊

suwenjiang 1 lună în urmă
părinte
comite
41c22e2ddd
2 a modificat fișierele cu 14 adăugiri și 17 ștergeri
  1. 12 15
      src/pages/chat/single-chat.vue
  2. 2 2
      src/stores/useChats.js

+ 12 - 15
src/pages/chat/single-chat.vue

@@ -70,8 +70,8 @@
 <script setup>
 import ChatMessage from './components/chat-message'
 import ChatInput from './components/chat-input'
-import { findHyperlinks } from '~/pages/chat/components/chat-message/link-message/handle'
-import { XYWebSocket } from '~/utils/XYWebSocket'
+import {findHyperlinks} from '~/pages/chat/components/chat-message/link-message/handle'
+import {XYWebSocket} from '~/utils/XYWebSocket'
 
 const route = useRoute()
 const router = useRouter()
@@ -103,7 +103,7 @@ const initGroupId = async () => {
     const res = await chatsStore.getCurrConversationId(getUserId.value)
     await handleResponse(res)
     groupId.value = res.data
-    getAnnouncement()
+    memberInfo.value = await getAnnouncement();
     await getChatList('init')
     await getFollowStatus()
   } catch (e) {
@@ -136,7 +136,7 @@ const getChatList = async (type = 'init') => {
     })
     pageNum.value = page
     await handleResponse(res)
-    let resList = chatsStore.handleMessageList(res.data?.data)
+    let resList = chatsStore.handleMessageList(res.data?.data, memberInfo.value.headImage)
     totalCount.value = res.data.count
 
     if (type === 'more') {
@@ -335,19 +335,16 @@ onMounted(() => {
 watchEffect(() => {})
 
 // 会话好友的信息
-async function getAnnouncement() {
-  let { data } = await request('/website/tourMember/getOneWayMember', {
-    query: { groupId: groupId.value }
-  })
-
-  if (Array.isArray(data) && data?.length) {
-    data.map((el) => {
-      if (el.partnerId == getUserId.value) {
-        memberInfo.value = el
-      }
+const getAnnouncement = async () => {
+  return new Promise((resolve) => {
+    request('/website/tourMember/getOneWayMember', {
+      query: { groupId: groupId.value }
+    }).then(({data = []}) => {
+      resolve(data.find(o => o.partnerId === getUserId.value) ?? {})
     })
-  }
+  })
 }
+
 // async function getAnnouncement() {
 //   let { data } = await request('/website/tourMember/getGroupUserListVo', {
 //     query: { groupId: groupId.value }

+ 2 - 2
src/stores/useChats.js

@@ -75,14 +75,14 @@ export const useChatsStore = defineStore('chats', () => {
 
   // 处理后端接口回来的消息体
   // 修正sendUserId被后端修改
-  const handleMessageList = (list) => {
+  const handleMessageList = async (list, headImage) => {
     return (list ?? [])
       .filter((o) => isValidJson(o.messageContent))
       .map((o) => {
         let messageContent = JSON.parse(o.messageContent)
         messageContent.sendUserId = o.sendUserId
         messageContent.messageId = o.id
-        messageContent.headImageUrl = o.headImageUrl
+        messageContent.headImageUrl = headImage ?? o.headImageUrl
         // console.log(messageContent, 'messageContent')
         return messageContent
       })