Эх сурвалжийг харах

fix: 解决首页被强制跳转到登录页面的bug

suwenjiang 1 сар өмнө
parent
commit
efb9ead777

+ 13 - 7
src/components/NavigationBar/index.client.vue

@@ -80,11 +80,13 @@ watch(
 
 // 监听Socket
 onMounted(() => {
-  chatsStore.getChatList()
-  XYWebSocket.SocketEventsBus.on(XYWebSocket.SocketEvents.chatEvent, () => {
+  if (token.value) {
     chatsStore.getChatList()
-    audioRef.value && audioRef.value.play()
-  })
+    XYWebSocket.SocketEventsBus.on(XYWebSocket.SocketEvents.chatEvent, () => {
+      chatsStore.getChatList()
+      audioRef.value && audioRef.value.play()
+    })
+  }
 })
 
 // 卸载Socket
@@ -94,10 +96,14 @@ onUnmounted(() => {
 
 // 是否有消息显示红点
 const showDot = computed(() => {
-  let newTatol = chatList.value.reduce((sum, item) => sum + item?.unreadMessageCount, 0)
+  if (token.value) {
+    let newTatol = chatList.value.reduce((sum, item) => sum + item?.unreadMessageCount, 0)
 
-  if (newTatol) {
-    return true
+    if (newTatol) {
+      return true
+    } else {
+      return false
+    }
   } else {
     return false
   }

+ 0 - 1
src/pages/chat/set.vue

@@ -282,7 +282,6 @@
             navigateTo({
               path: '/chat/set-sub',
               query: {
-                // tab: 'records',
                 groupId: setData?.id,
                 objectType: 2
               }

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

@@ -305,21 +305,6 @@ const onClickRight = () => {
 const scrollToBottom = () => {
   // 操作向上加载不滚动 TODO 判断用户是否有向上滑的操作更准确
   if (moreLoading.value) return
-  // setTimeout(async () => {
-  //   await nextTick() // 确保DOM已经更新
-  //   const listElement = chatListRef.value?.$el
-  //   if (listElement) {
-  //     const scrollContainer = listElement
-  //     scrollContainer.scrollTop = scrollContainer.scrollHeight + 100
-  //   }
-  // }, 200)
-
-  // await nextTick() // 确保DOM已经更新
-  // const listElement = chatListRef.value?.$el
-  // if (listElement) {
-  //   const scrollContainer = listElement
-  //   scrollContainer.scrollTop = scrollContainer.scrollHeight
-  // }
   nextTick(() => {
     const listElement = chatListRef.value?.$el
     setTimeout(() => {

+ 30 - 32
src/pages/profile/system-message/index.vue

@@ -1,40 +1,37 @@
 <template>
   <div style="height: 100vh" class="w-full bg-[#F7F8FA]">
     <ChatHeaderBar title="系统消息列表" />
-    <van-pull-refresh v-model="refreshing" @refresh="onRefresh">
-      <div style="height: 100vh" class="pt-40">
-        <!-- <Empty  title="" top="100" /> -->
-        <van-empty v-if="!listData?.length && !loading" description="暂无系统消息" />
-        <van-list
-          v-else-if="listData.length"
-          v-model:loading="loading"
-          error-text="获取失败"
-          finished-text="-- 没有更多了 --"
-          :finished="finished"
-          :immediate-check="false"
-          @load="getLoadList"
-        >
-          <div v-for="item in listData" @click="onChatPage(item?.id)" :key="item.id" class="w-full">
-            <p class="w-full pt-16 mb-12 text-center text-black-9 text-sm">
-              {{ formatTimestamp(item?.createTime) }}
+    <!-- <van-pull-refresh v-model="refreshing" head-height="20" pull-distance="20" @refresh="onRefresh"> -->
+    <div style="height: calc(100vh - 20px)" class="pt-40 box-border overflow-y-auto">
+      <van-empty v-if="!listData?.length && !loading" description="暂无系统消息" />
+      <van-list
+        v-else-if="listData.length"
+        v-model:loading="loading"
+        error-text="获取失败"
+        finished-text="-- 没有更多了 --"
+        :finished="finished"
+        :immediate-check="false"
+        @load="getLoadList"
+      >
+        <div v-for="item in listData" @click="onChatPage(item?.id)" :key="item.id" class="w-full">
+          <p class="w-full pt-16 mb-12 text-center text-black-9 text-sm">
+            {{ formatTimestamp(item?.createTime) }}
+          </p>
+          <div
+            style="box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.05)"
+            class="w-[91.2%] box-border h-103 mx-16 bg-white p-16 rounded-2xl"
+          >
+            <h1 class="text-black w-full line-clamp-1 text-2xl font-semibold mb-8">
+              {{ item?.messagePO.title }}
+            </h1>
+            <p class="line-clamp-2 w-full leading-3xl text-black-9 text-sm">
+              {{ item?.messagePO?.content }}
             </p>
-            <div
-              style="box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.05)"
-              class="w-[91.2%] box-border h-103 mx-16 bg-white p-16 rounded-2xl"
-            >
-              <h1 class="text-black w-full line-clamp-1 text-2xl font-semibold mb-8">
-                <!-- {{ messageShowName(item?.messageContent).title }} -->
-                {{ item?.messagePO.title }}
-              </h1>
-              <p class="line-clamp-2 w-full leading-3xl text-black-9 text-sm">
-                <!-- {{ messageShowName(item?.messageContent)?.content }} -->
-                {{ item?.messagePO?.content }}
-              </p>
-            </div>
           </div>
-        </van-list>
-      </div>
-    </van-pull-refresh>
+        </div>
+      </van-list>
+    </div>
+    <!-- </van-pull-refresh> -->
   </div>
 </template>
 
@@ -76,6 +73,7 @@ const getLoadList = () => {
   getList()
 }
 
+// 刷新
 const onRefresh = () => {
   refreshing.value = true
   queryParams.pageNum = 1

+ 1 - 1
src/stores/useChats.js

@@ -18,7 +18,7 @@ export const useChatsStore = defineStore('chats', () => {
   const initWebSocket = (url) => {
     if (!socket) {
       socket = new XYWebSocket.WebSocketClass(url)
-      console.warn(socket, 'socket')
+      // console.warn(socket, 'socket')
     }
   }
   const sendSocketMessage = async (message) => {

+ 1 - 1
src/utils/XYWebSocket.ts

@@ -24,7 +24,7 @@ export namespace XYWebSocket {
         }
 
         public initWebSocket() {
-            console.info(this.socketUrl, '正在连接websocket........');
+            // console.info(this.socketUrl, '正在连接websocket........');
             this.socket.addEventListener('open', this.websocketOnopen.bind(this));
             this.socket.addEventListener('message', this.websocketOnmessage.bind(this));
             this.socket.addEventListener('error', this.websocketOnerror.bind(this));