From 658f2e7ce1c7871cc3a2a57fb11dd95352f1e865 Mon Sep 17 00:00:00 2001 From: zhaozhenfang Date: Mon, 8 Jul 2024 14:29:55 +0800 Subject: [PATCH] feat: add function of display log stream when click topo node --- web/src/components/PGTopo.vue | 13 +++- web/src/stores/topo.ts | 9 ++- web/src/views/TopoDisplay.vue | 86 ++++++++++++++++++++++--- web/src/views/topoLogs/barChart.vue | 14 ++-- web/src/views/topoLogs/chart_options.ts | 4 +- web/src/views/topoLogs/index.vue | 63 +++++++++--------- 6 files changed, 136 insertions(+), 53 deletions(-) diff --git a/web/src/components/PGTopo.vue b/web/src/components/PGTopo.vue index 2c9e940..45b919c 100644 --- a/web/src/components/PGTopo.vue +++ b/web/src/components/PGTopo.vue @@ -191,7 +191,18 @@ const menu = new G6.Menu({ // _target:界面元素,item:节点内容 handleMenuClick(_target, item) { if (item._cfg) { - useTopoStore().node_log_id = item._cfg.id!; + let host_name = '' as any; let process_name = '' as any; + let node_type = item._cfg.model!.Type; + if (node_type === 'process') { + process_name = item._cfg.model!.name; + host_name = graph.getNeighbors(item._cfg.id!)[0]._cfg!.model!.metrics?.Hostname; + } else if (node_type === 'host') { + process_name = host_name = item._cfg.model!.name; + } + + useTopoStore().node_click_info.node_id = item._cfg.id!; + useTopoStore().node_click_info.host_name = host_name; + useTopoStore().node_click_info.process_name = process_name; } }, }); diff --git a/web/src/stores/topo.ts b/web/src/stores/topo.ts index 149fdc1..2daa26c 100644 --- a/web/src/stores/topo.ts +++ b/web/src/stores/topo.ts @@ -1,11 +1,16 @@ import { ref } from 'vue' import { defineStore } from 'pinia' - +interface nodeItem { + host_name: string; + node_id: string; + process_name: string; +} export const useTopoStore = defineStore('topo', () => { const topo_data = ref({} as any); const node_log_id = ref(''); + const node_click_info = ref({} as nodeItem) const nodeData = ref({} as any); const edgeData = ref({} as any); - return {nodeData, node_log_id,topo_data, edgeData} + return {nodeData, node_log_id,node_click_info,topo_data, edgeData} }) diff --git a/web/src/views/TopoDisplay.vue b/web/src/views/TopoDisplay.vue index af02a61..4a2bc13 100644 --- a/web/src/views/TopoDisplay.vue +++ b/web/src/views/TopoDisplay.vue @@ -1,6 +1,6 @@