Bladeren bron

没读消息的用户放在上面

jackson 11 maanden geleden
bovenliggende
commit
c033dd7ad8

+ 9 - 4
src/store/index.ts

@@ -49,7 +49,9 @@ export default createStore({
       state.userInfo = {...state.userInfo, ...obj}
       setLocalStorage('userInfo', state.userInfo)
     },
-
+    setUserList(state, data) {
+      state.userList = data
+    },
     setChatUserInfo(state, data) {
       state.chatUserInfo = data
     },
@@ -69,16 +71,19 @@ export default createStore({
       state.isShowRight = status
     },
     setNotReadMessage(state, id) {
-      state.userList.forEach((item: any) => {
+      state.userList.forEach((item: Obj) => {
         if (id === item.friendId) {
           item.noReadNum++;
         }
       })
-      // 把未读的用户放在前面
+    },
+    // 把有未读消息的好友移到上面
+    hasNotReadMsgUserSort(state) {
       const userList: Obj[] = state.userList.filter(item => item.noReadNum > 0)
       state.userList = Array.from(new Set([...userList, ...state.userList]))
     },
-    userListSort(state, obj: Obj) {
+    // 正在聊天的好友移到上面
+    chatUserSort(state, obj: Obj) {
       const i = state.userList.findIndex(item => item === obj)
       state.userList.splice(i, 1)
       state.userList.unshift(obj)

+ 3 - 2
src/views/home/left/components/UserSearchList.vue

@@ -167,7 +167,8 @@ export default defineComponent({
     const getUserList = async () => {
       if (store.state.userInfo.token) {
         const {data} = await getFriends()
-        store.state.userList = data
+        store.commit('setUserList', data)
+        store.commit('hasNotReadMsgUserSort')
       }
     }
 
@@ -283,7 +284,7 @@ export default defineComponent({
     padding-left: 10px;
 
     &:hover {
-      background: rgba(88,140,232,0.2)
+      background: rgba(88, 140, 232, 0.2)
     }
 
     &.active {

+ 3 - 1
src/views/home/right/components/Chat.vue

@@ -236,6 +236,7 @@ export default defineComponent({
           })
         } else {
           store.commit('setNotReadMessage', msg.fromUserId)
+          store.commit('hasNotReadMsgUserSort')
         }
       }
     })
@@ -256,6 +257,7 @@ export default defineComponent({
                   })
                 } else {
                   store.commit('setNotReadMessage', msg.to)
+                  store.commit('hasNotReadMsgUserSort')
                 }
               }
             }
@@ -282,7 +284,7 @@ export default defineComponent({
       nextTick(() => {
         scrollToBottom()
       })
-      store.commit('userListSort', store.state.chatUserInfo)
+      store.commit('chatUserSort', store.state.chatUserInfo)
       if (store.state.chatUserInfo.isGroup === 1) {
         await sendMessageToUser(data)
       } else {