From 9bcb8ee0e3d50bdf9a9e30d0ce1e6ab6dda551d7 Mon Sep 17 00:00:00 2001 From: oliver Date: Fri, 7 Aug 2026 22:54:42 +0800 Subject: [PATCH] Improve frontend load performance and fix UME/login UX. Defer topology xyflow and WebCRT xterm until needed, calm idle polling, bake login earth brightness, and let AI alert rules scroll as one natural panel. Co-authored-by: Cursor --- web/public/login-earth-night-bright.webp | Bin 0 -> 121320 bytes web/src/index.css | 32 +- web/src/pages/LoginShell.tsx | 16 +- web/src/pages/TopologyPage.tsx | 518 +++--------------- web/src/pages/UmePage.tsx | 412 +++++++------- web/src/pages/WebcrtPage.tsx | 16 +- web/src/pages/WorkbenchPage.tsx | 11 +- web/src/pages/network/PortTrafficPage.tsx | 18 +- .../pages/topology/TopologyReactFlowView.tsx | 503 +++++++++++++++++ web/src/pages/topology/layoutGraph.ts | 28 +- web/vite.config.ts | 15 + 11 files changed, 906 insertions(+), 663 deletions(-) create mode 100644 web/public/login-earth-night-bright.webp create mode 100644 web/src/pages/topology/TopologyReactFlowView.tsx diff --git a/web/public/login-earth-night-bright.webp b/web/public/login-earth-night-bright.webp new file mode 100644 index 0000000000000000000000000000000000000000..b8ddba59ba9486dd2c92fe9a5fff991667337a97 GIT binary patch literal 121320 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 z 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
eM9y$f_7+mClo-QrC=Vo@p|_C_ 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 SBILG-a=uRzYpcqG$N&Ix^G=rl literal 0 HcmV?d00001 diff --git a/web/src/index.css b/web/src/index.css index 058e890..69606c9 100644 --- a/web/src/index.css +++ b/web/src/index.css @@ -7836,13 +7836,11 @@ pre { width: 100%; height: 100%; background-color: rgba(8, 28, 72, 0.2); - background-image: url("/login-earth-night.webp"); + /* Pre-brightened asset — no live CSS filter (that was the GPU thrash). */ + background-image: url("/login-earth-night-bright.webp"); background-repeat: repeat-x; background-size: 200%; - /* Softer map — less crunchy, blends into the limb fade. */ - filter: brightness(2.45) contrast(1.02) saturate(1.08); animation: login-earth-spin 80s linear infinite; - will-change: background-position; } .login-page__rail { @@ -7866,9 +7864,10 @@ pre { padding: 26px 24px 28px; border-radius: 16px; border: 1px solid rgba(255, 255, 255, 0.1); - background: rgba(8, 16, 32, 0.58); - backdrop-filter: blur(16px) saturate(1.12); - -webkit-backdrop-filter: blur(16px) saturate(1.12); + background: rgba(8, 16, 32, 0.82); + /* Lighter blur — full blur over the spinning globe was a steady GPU cost. */ + backdrop-filter: blur(8px) saturate(1.08); + -webkit-backdrop-filter: blur(8px) saturate(1.08); box-shadow: 0 18px 48px rgba(0, 0, 0, 0.32), 0 0 0 1px rgba(120, 170, 255, 0.07), @@ -8129,6 +8128,12 @@ pre { to { opacity: 1; transform: scale(1.08); } } +/* Pause infinite loops when the login tab is backgrounded (class set by LoginShell). */ +html.login-page--paused .login-planet__textures, +html.login-page--paused .login-page__flare { + animation-play-state: paused !important; +} + @media (prefers-reduced-motion: reduce) { /* Keep ambient earth spin; only drop entrance flourishes. */ .login-planet, @@ -8557,6 +8562,19 @@ pre { padding: 12px 14px; } +/* Form + list share one scroll body (no cramped nested table viewport). */ +.ops-detail-modal__scroll--flow { + border: 0; + background: transparent; + border-radius: 0; +} + +.ops-detail-modal__scroll--flow .pt-list-table-wrap { + border: 1px solid rgba(148, 163, 184, 0.22); + border-radius: 8px; + overflow: visible; +} + .ume-entry-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); diff --git a/web/src/pages/LoginShell.tsx b/web/src/pages/LoginShell.tsx index 8a0ce00..36233aa 100644 --- a/web/src/pages/LoginShell.tsx +++ b/web/src/pages/LoginShell.tsx @@ -1,7 +1,21 @@ -import type { ReactNode } from "react"; +import { useEffect, type ReactNode } from "react"; /** Auth shell: night-earth stage on the left, form rail on the right. */ export function LoginShell({ children }: { children: ReactNode }) { + // Pause ambient CSS loops while the tab is hidden. + useEffect(() => { + const root = document.documentElement; + const sync = () => { + root.classList.toggle("login-page--paused", document.hidden); + }; + sync(); + document.addEventListener("visibilitychange", sync); + return () => { + document.removeEventListener("visibilitychange", sync); + root.classList.remove("login-page--paused"); + }; + }, []); + return (
) : null} {treeRoot ? ( - + <> {isWorldFlatCanvas ? (
@@ -5445,186 +5216,57 @@ export function TopologyPage() { ) : null}
) : null} - { - const isRegion = n.data.kind === "region"; - const lod = isWorldFlatCanvas ? worldVisualLod : "full"; - const sized = - !isRegion && lod === "dot" - ? { ...n, width: 6, height: 6 } - : !isRegion && lod === "pin" - ? { ...n, width: 14, height: 14 } - : n; - return searchHitIds.includes(n.id) - ? { - ...sized, - selected: true, - className: "is-search-hit", - } - : { ...sized, className: undefined }; - }) - } - edges={isWorldFlatCanvas && worldVisualLod !== "full" ? [] : displayEdges} - nodeTypes={nodeTypes} - edgeTypes={edgeTypes} - onlyRenderVisibleElements={ - isWorldFlatCanvas ? worldVisualLod === "dot" : true - } - connectionMode={ConnectionMode.Loose} - connectionLineType={ConnectionLineType.Straight} - connectionLineStyle={{ stroke: "#38bdf8", strokeWidth: 2 }} - defaultEdgeOptions={{ type: "straight", labelShowBg: false }} - proOptions={{ hideAttribution: true }} - minZoom={isWorldFlatCanvas ? 0.002 : 0.05} - maxZoom={isWorldFlatCanvas ? 12 : 4} - nodesDraggable={ - isWorldFlatCanvas - ? worldVisualLod === "full" && toolBehavior.nodesDraggable - : toolBehavior.nodesDraggable - } - nodesConnectable={toolBehavior.nodesConnectable} - elementsSelectable={toolBehavior.elementsSelectable} - panOnDrag={toolBehavior.panOnDrag} - selectionOnDrag={toolBehavior.selectionOnDrag} - panOnScroll={toolBehavior.panOnScroll} - selectionMode={SelectionMode.Partial} - multiSelectionKeyCode="Shift" - snapToGrid={snapToGrid} - snapGrid={SNAP_GRID} - onNodeDragStart={() => { - pushHistory(); - }} - onNodesChange={(changes) => { - if ( - changes.some( - (c) => c.type === "position" || c.type === "remove" || c.type === "add", - ) - ) { - markDirty(); - } - onNodesChange(changes); - }} - onEdgesChange={(changes) => { - const physical = changes.filter((c) => { - if (c.type === "select") return false; - if ("id" in c && isAggregateEdgeId(String(c.id))) return false; - return true; - }); - if (physical.some((c) => c.type !== "select")) { - markDirty(); - } - if (physical.length) onEdgesChange(physical); - }} - onConnect={onConnect} - isValidConnection={isValidConnection} - onNodeClick={onNodeClick} - onNodeDoubleClick={onNodeDoubleClick} - onEdgeClick={(_e, edge) => { - setCtxMenu(null); - focusEdge(edge.id); - }} - onPaneClick={() => { - setCtxMenu(null); - clearSelection(); - }} - onNodeContextMenu={(e, node) => { - e.preventDefault(); - const multi = selectedNodeIds.length > 1 && selectedNodeIds.includes(node.id); - if (!multi) focusNode(node.id, false); - const pos = placeCtxMenu(e.clientX, e.clientY); - setCtxMenu( - multi ? { kind: "selection", ...pos } : { kind: "node", id: node.id, ...pos }, - ); - }} - onEdgeContextMenu={(e, edge) => { - e.preventDefault(); - focusEdge(edge.id); - const pos = placeCtxMenu(e.clientX, e.clientY, { w: 260, h: 280 }); - setCtxMenu({ kind: "edge", id: edge.id, ...pos }); - }} - onSelectionContextMenu={(e) => { - e.preventDefault(); - const pos = placeCtxMenu(e.clientX, e.clientY); - setCtxMenu({ kind: "selection", ...pos }); - }} - onPaneContextMenu={(e) => { - e.preventDefault(); - if (!rfRef.current) return; - const flow = rfRef.current.screenToFlowPosition({ - x: e.clientX, - y: e.clientY, - }); - const pos = placeCtxMenu(e.clientX, e.clientY, { w: 180, h: 100 }); - setCtxMenu({ - kind: "pane", - ...pos, - flowX: flow.x, - flowY: flow.y, - }); - }} - onMoveStart={closeCtxMenu} - onMove={(_e, vp) => { - if (isWorldFlatCanvas) setCanvasZoom(vp.zoom); - }} - onMoveEnd={(_e, vp) => { - if (!isWorldFlatCanvas) return; - setCanvasZoom(vp.zoom); - scheduleFlatViewportRefresh(); - }} - onInit={(inst) => { - rfRef.current = inst as ReactFlowInstance, Edge>; - if (pendingFitRef.current) { - pendingFitRef.current = false; - window.requestAnimationFrame(() => { - const bounds = isWorldFlatCanvas - ? worldDisplayBounds(worldTransformRef.current || graphQuery.data?.world_transform) - : null; - if (bounds) { - inst.fitBounds(bounds, { padding: 0.12, duration: 0 }); - } else if (nodesRef.current.length > 0) { - inst.fitView({ ...FIT_VIEW_OPTS, duration: 0 }); - } - setCanvasZoom(inst.getZoom()); - }); - } - }} - fitView={false} - deleteKeyCode={null} - edgesFocusable - > - - - {toolMode === "connect" ? ( -
- {t("topology.connectHint")} + +
- ) : null} - - void toggleFullscreen()} - title={fullscreen ? t("topology.exitFullscreen") : t("topology.fullscreen")} - aria-label={fullscreen ? t("topology.exitFullscreen") : t("topology.fullscreen")} - > - - - - {!isWorldFlatCanvas ? : null} -
-
+ } + > + + + ) : treeLoading ? (
-
+
+
+
+ + + setKeyAlertMatchValue(e.target.value)} + list="ume-key-alert-match-options" + /> + setKeyAlertLabel(e.target.value)} + /> + + {keyAlertMatchType === "keyword" + ? keyAlertKeywordHints.map((kw) => + ))} + + + +
+ +
{t("ume.keyAlert.neTypesLabel")}
+ {keyAlertNeTypesQuery.isLoading ? ( + {t("common.refreshing")} + ) : (keyAlertNeTypesQuery.data?.items || []).length === 0 ? ( + {t("ume.keyAlert.neTypesEmpty")} + ) : ( +
+ {(keyAlertNeTypesQuery.data?.items || []).map((item) => ( + + ))} +
+ )} +

{t("ume.keyAlert.neTypesHint")}

+ +
+ +
+ {keyAlertOpError ? ( +

+ {t("common.opFailed")}: {keyAlertOpError} +

+ ) : null} +
+
- - { + setKeyAlertFilterMatchType(e.target.value as "" | "notification_id" | "keyword"); + setKeyAlertPage(1); }} > + - setKeyAlertMatchValue(e.target.value)} - list="ume-key-alert-match-options" - /> - setKeyAlertLabel(e.target.value)} - /> - - {keyAlertMatchType === "keyword" - ? keyAlertKeywordHints.map((kw) => - ))} - -
-
{t("ume.keyAlert.neTypesLabel")}
- {keyAlertNeTypesQuery.isLoading ? ( - {t("common.refreshing")} - ) : (keyAlertNeTypesQuery.data?.items || []).length === 0 ? ( - {t("ume.keyAlert.neTypesEmpty")} - ) : ( -
- {(keyAlertNeTypesQuery.data?.items || []).map((item) => ( - - ))} -
- )} -

{t("ume.keyAlert.neTypesHint")}

- -
- -
- {keyAlertOpError ? ( -

- {t("common.opFailed")}: {keyAlertOpError} -

- ) : null} -
- -
- { - setKeyAlertFilterKeyword(e.target.value); - setKeyAlertPage(1); - }} - /> - - -
- -
@@ -1239,43 +1249,43 @@ export function UmePage() {
-
-
- - {t("common.pagerMeta", { - total: String(keyAlertTotal), - page: String(keyAlertPage), - pages: String(keyAlertPages), - })} - -
- - - +
+ + {t("common.pagerMeta", { + total: String(keyAlertTotal), + page: String(keyAlertPage), + pages: String(keyAlertPages), + })} + +
+ + + +
diff --git a/web/src/pages/WebcrtPage.tsx b/web/src/pages/WebcrtPage.tsx index 4bbbc3f..3d2c0b2 100644 --- a/web/src/pages/WebcrtPage.tsx +++ b/web/src/pages/WebcrtPage.tsx @@ -1,4 +1,6 @@ import { + lazy, + Suspense, useCallback, useEffect, useMemo, @@ -10,7 +12,7 @@ import { } from "react"; import { useQuery, useQueryClient } from "@tanstack/react-query"; import { useSearchParams } from "react-router-dom"; -import { WebTerminal, type WebTerminalHandle } from "../components/WebTerminal"; +import type { WebTerminalHandle } from "../components/WebTerminal"; import { useI18n } from "../i18n"; import { useToast } from "../hooks/useToast"; import { @@ -44,6 +46,10 @@ import { type KeywordRule, } from "../utils/webcrtKeywordHighlight"; +/** xterm is large — only pull it when a session pane actually mounts. */ +const WebTerminal = lazy(() => + import("../components/WebTerminal").then((m) => ({ default: m.WebTerminal })), +); const PAGE_SIZE = 50; const SESSION_OPTS_KEY = "netx.webcrt.sessionOptions"; const LEGACY_TERM_PREFS_KEY = "netx.webcrt.termPrefs"; @@ -2385,6 +2391,13 @@ export function WebcrtPage() {
) : null} {mountTerminal ? ( + + {t("common.refreshing")} + + } + > { @@ -2500,6 +2513,7 @@ export function WebcrtPage() { } }} /> + ) : null} ) : null} diff --git a/web/src/pages/WorkbenchPage.tsx b/web/src/pages/WorkbenchPage.tsx index 0bce01c..4c5e275 100644 --- a/web/src/pages/WorkbenchPage.tsx +++ b/web/src/pages/WorkbenchPage.tsx @@ -89,15 +89,18 @@ export function WorkbenchPage() { const metricsQuery = useQuery({ queryKey: ["runtimeMetrics"], queryFn: fetchRuntimeMetrics, - refetchInterval: 5000, - staleTime: 2000, + staleTime: 10_000, + refetchInterval: 15_000, + refetchIntervalInBackground: false, }); const opsQuery = useQuery({ queryKey: ["opsTasks"], queryFn: fetchOpsTasks, - refetchInterval: 4000, - staleTime: 1500, + staleTime: 10_000, + // Share AppLayout cache; speed up only while something is active. + refetchInterval: (q) => ((q.state.data?.active ?? 0) > 0 ? 4000 : 20_000), + refetchIntervalInBackground: false, }); const visibleBySection = useMemo(() => { diff --git a/web/src/pages/network/PortTrafficPage.tsx b/web/src/pages/network/PortTrafficPage.tsx index 99e7f1e..63588ae 100644 --- a/web/src/pages/network/PortTrafficPage.tsx +++ b/web/src/pages/network/PortTrafficPage.tsx @@ -159,15 +159,25 @@ export function PortTrafficPage() { const dashQuery = useQuery({ queryKey: queryKeys.portTrafficDashboard, queryFn: fetchPortTrafficDashboard, - staleTime: 2000, - refetchInterval: POLL_MS, + staleTime: 5000, + refetchInterval: (q) => { + const d = q.state.data; + const running = Number(d?.running_device_count ?? d?.running_task_count ?? 0); + return running > 0 ? POLL_MS : 15_000; + }, + refetchIntervalInBackground: false, }); const devicesQuery = useQuery({ queryKey: queryKeys.portTrafficDevices(listPage), queryFn: () => fetchPortTrafficDevices({ page: listPage, pageSize: 10 }), - staleTime: 2000, - refetchInterval: POLL_MS, + staleTime: 5000, + refetchInterval: (q) => { + const items = q.state.data?.items || []; + const running = items.some((x) => x.status === "running" || Boolean(x.collect_running)); + return running ? POLL_MS : 15_000; + }, + refetchIntervalInBackground: false, }); const nesQuery = useQuery({ diff --git a/web/src/pages/topology/TopologyReactFlowView.tsx b/web/src/pages/topology/TopologyReactFlowView.tsx new file mode 100644 index 0000000..7aec26b --- /dev/null +++ b/web/src/pages/topology/TopologyReactFlowView.tsx @@ -0,0 +1,503 @@ +import { createContext, memo, useContext, type Dispatch, type SetStateAction } from "react"; +import { + ReactFlow, + Background, + BackgroundVariant, + Controls, + ControlButton, + MiniMap, + Handle, + Position, + ConnectionLineType, + ConnectionMode, + SelectionMode, + applyNodeChanges, + applyEdgeChanges, + type Connection, + type Edge, + type Node, + type NodeChange, + type EdgeChange, + type NodeProps, + type ReactFlowInstance, +} from "@xyflow/react"; +import "@xyflow/react/dist/style.css"; +import { WorldScatterLayer, type WorldScatterPoint } from "./WorldScatterLayer"; +import { ParallelEdge } from "./ParallelEdge"; +import { isAggregateEdgeId } from "./linkDisplay"; +import type { ToolMode, ToolModeBehavior } from "./toolMode"; +import type { TopologyViewRole, TopologyWorldTransform } from "../../types"; + +export type NeNodeData = { + label: string; + managed_ne_id: string; + ume_ne_id: string; + ne_ip: string; + vendor: string; + connect_status: string; + managed_source?: string; + kind?: "ne" | "region" | "layer"; + folder_id?: string; + view_id?: string; + role?: TopologyViewRole | string; + subtitle?: string; + node_count?: number; +}; + +export type TopoDisplayOpts = { + hideIp: boolean; + hideVendor: boolean; + hidePorts: boolean; + connectMode: boolean; + showPlaceholderBadge: boolean; + worldVisualLod: "dot" | "pin" | "full"; +}; + +const TopoDisplayContext = createContext({ + hideIp: true, + hideVendor: true, + hidePorts: true, + connectMode: false, + showPlaceholderBadge: false, + worldVisualLod: "full", +}); + +const SEP = " / "; + +function nodeIconTone(vendor: string, managedNeId: string, umeNeId = ""): string { + const hasManaged = Boolean(String(managedNeId || "").trim()); + const hasUme = Boolean(String(umeNeId || "").trim()); + if (!hasManaged && !hasUme) return "gray"; + const v = String(vendor || "").trim().toLowerCase(); + if (!v || v === "other" || v === "unknown" || v === "generic") { + return hasUme ? "zte" : "gray"; + } + if (v.includes("cisco")) return "cisco"; + if (v.includes("huawei")) return "huawei"; + if (v.includes("zte")) return "zte"; + if (v.includes("juniper")) return "juniper"; + if (v.includes("nokia") || v.includes("alcatel")) return "nokia"; + if (v.includes("ericsson")) return "ericsson"; + if (v.includes("h3c") || v.includes("comware")) return "h3c"; + if (v.includes("ruijie") || v.includes("锐捷")) return "ruijie"; + if (v.includes("mikrotik")) return "mikrotik"; + return hasUme ? "zte" : "gray"; +} + +function isPlaceholderSource(source: string | undefined, neIp: string): boolean { + const src = String(source || "").trim().toLowerCase(); + if (src === "lldp" || src === "topology") return true; + return !String(neIp || "").trim() && Boolean(src); +} + +export { isPlaceholderSource }; + +function RouterIcon() { + return ( +