From 6584cbef8a5829950c20b507e17445b97650e73f Mon Sep 17 00:00:00 2001
From: hcong <1050828145@qq.com>
Date: 星期三, 27 十一月 2024 12:15:04 +0800
Subject: [PATCH] 1. 新增消息管理类 2. socket消息类型js改为枚举类 3. 重连函数在使用时以参数传递进来

---
 src/components/bg-task/FYBgTaskCard.vue |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/src/components/bg-task/FYBgTaskCard.vue b/src/components/bg-task/FYBgTaskCard.vue
index d39bffe..91c449f 100644
--- a/src/components/bg-task/FYBgTaskCard.vue
+++ b/src/components/bg-task/FYBgTaskCard.vue
@@ -46,6 +46,8 @@
 import { useFetchData } from '@/composables/fetchData';
 import bgtaskApi from '@/api/fysp/bgtaskApi';
 import { enumBgTask, BG_TASK_TYPE, BG_TASK_STATUS } from '@/enum/bgTask';
+import { SOCKET_MESSAGE_TYPE } from '@/enum/socketMessage';
+import MessageManager from '@/socket/MessageManager.js';
 
 export default {
   setup() {
@@ -77,6 +79,32 @@
     }
   },
   methods: {
+    registerBgTaskMessage() {
+      MessageManager.register(SOCKET_MESSAGE_TYPE.BACKGROUND_TASK.name, (data) => {
+        this.refreshTaskById(data)
+      })
+    },
+    /**
+     * 鍒锋柊涓�涓换鍔¢�氳繃id锛屽鏋滄槸鏂扮殑浠诲姟鍒欐坊鍔犲埌浠诲姟鍒楄〃taskList涓�
+     * @param data 
+     */
+    refreshTaskById(data) {
+      if (!data || data == {}) {
+        return;
+      }
+      let isNewTask = true
+      for (let index = 0; index < this.taskList.length; index++) {
+          const task = this.taskList[index];
+          if (task.id == data.id) {
+            this.taskList[index] = data
+            isNewTask = false
+            break
+          }
+        }
+        if (isNewTask) {
+          this.taskList.push(data)
+        }
+    },
     addTask() {},
     newTestTask() {
       this.fetchData((page, pageSize) => {
@@ -150,6 +178,15 @@
       });
     },
     gotoResult(index) {}
+  },
+  created() {
+    this.registerBgTaskMessage()
+  },
+  mounted() {
+    this.fetchTask();
+    // setInterval(() => {
+    //   this.fetchTask();
+    // }, 10000);
   }
 };
 </script>

--
Gitblit v1.9.3