From 367f95332ecaf9798ae10ad2f48e9c204b924d6c Mon Sep 17 00:00:00 2001 From: Fine Date: Fri, 17 Mar 2023 11:52:46 +0800 Subject: [PATCH] feat: add node status --- .../related/topology/components/Graph.vue | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/src/views/dashboard/related/topology/components/Graph.vue b/src/views/dashboard/related/topology/components/Graph.vue index d026a3f1..2bfb364b 100644 --- a/src/views/dashboard/related/topology/components/Graph.vue +++ b/src/views/dashboard/related/topology/components/Graph.vue @@ -29,15 +29,7 @@ limitations under the License. --> @click="handleNodeClick($event, n)" class="topo-node" > - + return; } } - function svgEvent() { - topologyStore.setNode(null); - topologyStore.setLink(null); - dashboardStore.selectWidget(props.config); - } function draw() { const levels = []; const nodes = topologyStore.nodes.sort((a: any, b: any) => b.service_cpm - a.service_cpm); @@ -265,6 +252,24 @@ limitations under the License. --> } } } + function getNodeStatus(d: any) { + const legend = settings.value.legend; + if (!legend) { + return "#72c59f"; + } + if (!legend.length) { + return "#72c59f"; + } + let c = true; + for (const l of legend) { + if (l.condition === "<") { + c = c && d[l.name] < Number(l.value); + } else { + c = c && d[l.name] > Number(l.value); + } + } + return c && d.isReal ? "#f18586" : "#72c59f"; + } function showNodeTip(event: MouseEvent, data: Node) { const nodeMetrics: string[] = settings.value.nodeMetrics || []; const nodeMetricConfig = settings.value.nodeMetricConfig || []; @@ -474,6 +479,11 @@ limitations under the License. --> } } } + function svgEvent() { + topologyStore.setNode(null); + topologyStore.setLink(null); + dashboardStore.selectWidget(props.config); + } async function freshNodes() { if (!svg.value) { return;