From 22ce3a4c8453b54c2bfe6d582b734195f899f195 Mon Sep 17 00:00:00 2001
From: hcong <1050828145@qq.com>
Date: 星期二, 10 十二月 2024 14:59:50 +0800
Subject: [PATCH] 1. 新增socket生命周期管理、心跳机制、重连机制 2. 新增socket消息校验、解析、生成 3. 新增socket消息类型枚举类src\enum\socketMessage 3. 新增消息管理类src\socket\MessageManager 4. 新增观察者模式消息的发布订阅机制src\socket\eventBus 5. 修改后台任务页面注册后台任务状态消息并修改状态的逻辑

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

diff --git a/src/components/bg-task/FYBgTaskCard.vue b/src/components/bg-task/FYBgTaskCard.vue
index 5853db3..e26d3dc 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() {
@@ -76,7 +78,36 @@
       deep: true
     }
   },
+  created() {
+    this.registerBgTaskMessage()
+  },
   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) => {

--
Gitblit v1.9.3