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 | 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..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) => { @@ -150,6 +181,12 @@ }); }, gotoResult(index) {} + }, + mounted() { + this.fetchTask(); + // setInterval(() => { + // this.fetchTask(); + // }, 10000); } }; </script> -- Gitblit v1.9.3