Browse Source

[Mod 0000] 解决公司端消息接收不刷新

hongrunxia 2 days ago
parent
commit
2ab60c58c2
1 changed files with 26 additions and 47 deletions
  1. 26 47
      src/layouts/default/header/components/VoiceBroadcastGsd.vue

+ 26 - 47
src/layouts/default/header/components/VoiceBroadcastGsd.vue

@@ -99,53 +99,32 @@
 
       async function onWebSocketMessage(data) {
         console.log('WebSocket 监测消息--------------》', data);
-        // if (data.topic === 'warn') {
-        //   const messageText = data['warndata'];
-        //   if (broadcastList.value.length <= 20) {
-        //     broadcastList.value.push({ label: messageText });
-        //     localStorage.removeItem('messageArr');
-        //     localStorage.setItem('messageArr', broadcastList.value as any);
-        //   } else {
-        //     broadcastList.value.shift();
-        //     broadcastList.value.push({ label: messageText });
-        //     localStorage.removeItem('messageArr');
-        //     localStorage.setItem('messageArr', broadcastList.value as any);
-        //   }
-        //   if (isBroad.value) {
-        //     await speakVoice.getSpeechCnVoices();
-        //     speakVoice.handleReply(messageText);
-        //     const time = dayjs().format('YYYY-MM-DD HH:mm:ss');
-        //     console.log(time + '语音播报开始报警------>', data);
-        //   }
-        //   //   const messageText = '这是一个测试';
-        //   if (!isShowWarningBroad.value) {
-        //     isWarningDot.value = true;
-        //   } else {
-        //     isWarningDot.value = false;
-        //   }
-        // }
-        const messageText = data['warndata'];
-        if (broadcastList.value.length <= 20) {
-          broadcastList.value.push({ label: messageText });
-          localStorage.removeItem('messageArr');
-          localStorage.setItem('messageArr', broadcastList.value as any);
-        } else {
-          broadcastList.value.shift();
-          broadcastList.value.push({ label: messageText });
-          localStorage.removeItem('messageArr');
-          localStorage.setItem('messageArr', broadcastList.value as any);
-        }
-        if (isBroad.value) {
-          await speakVoice.getSpeechCnVoices();
-          speakVoice.handleReply(messageText);
-          const time = dayjs().format('YYYY-MM-DD HH:mm:ss');
-          console.log(time + '语音播报开始报警------>', data);
-        }
-        //   const messageText = '这是一个测试';
-        if (!isShowWarningBroad.value) {
-          isWarningDot.value = true;
-        } else {
-          isWarningDot.value = false;
+        if (data.topic === 'warn') {
+          const messageText = data['warndata'];
+          const msgList = [...broadcastList.value];
+          if (msgList.length <= 20) {
+            msgList.push({ label: messageText });
+            localStorage.removeItem('messageArr');
+            localStorage.setItem('messageArr', msgList as any);
+          } else {
+            msgList.shift();
+            msgList.push({ label: messageText });
+            localStorage.removeItem('messageArr');
+            localStorage.setItem('messageArr', msgList as any);
+          }
+          broadcastList.value = msgList;
+          if (isBroad.value) {
+            await speakVoice.getSpeechCnVoices();
+            speakVoice.handleReply(messageText);
+            const time = dayjs().format('YYYY-MM-DD HH:mm:ss');
+            console.log(time + '语音播报开始报警------>', data);
+          }
+          //   const messageText = '这是一个测试';
+          if (!isShowWarningBroad.value) {
+            isWarningDot.value = true;
+          } else {
+            isWarningDot.value = false;
+          }
         }
       }
       onMounted(() => {