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;