Add cutover-compare nav group and monitor templates.

Move biz monitor/compare/migration under Cutover compare, split compare templates into their own page, and add monitor-template CRUD that overlays compare templates.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-09-18 20:09:26 +08:00
parent f3a8f80822
commit 202196a197
13 changed files with 812 additions and 36 deletions

View file

@ -144,6 +144,7 @@ const en = {
nav: {
detail: "Network details",
tasks: "Monitoring tasks",
cutoverCompare: "Cutover compare",
topologyMgmt: "Topology management",
devices: "Device list",
topology: "Topology",
@ -159,6 +160,8 @@ const en = {
bizState: "Business monitor",
bizCompare: "Business compare",
bizMigration: "Cutover monitor",
compareTemplates: "Compare templates",
monitorTemplates: "Monitor templates",
},
collapseNav: "Collapse sidebar",
expandNav: "Expand sidebar",
@ -568,6 +571,40 @@ const en = {
colStatus: "Status",
verdictUnfinished: "Unfinished",
},
bizMonitorTpl: {
title: "Monitor templates",
hint: "Reference a compare template for HOW-to-compare, then add dual-device / baseline rules for cutover monitor.",
create: "New monitor template",
edit: "Edit",
save: "Save",
cancel: "Close",
created: "Created",
saved: "Saved",
deleted: "Deleted",
confirmDelete: "Delete this monitor template?",
delete: "Delete",
empty: "No monitor templates yet.",
listFilterPh: "Filter name / compare template / note",
kpiTotal: "Templates",
colName: "Name",
colCompare: "Compare template",
colCollect: "HF collect metrics",
colNote: "Note",
colActions: "Actions",
needName: "Name is required",
defaultsInvalid: "Invalid defaults JSON",
overridesInvalid: "Invalid sheet_overrides JSON",
formHint: "Compare template owns alignment & field rules; this page owns dual verdict + optional HF collect subset.",
compareHint: "From Compare templates; create/edit sheets there first if needed.",
pickCompare: "Pick compare template…",
openCompare: "Manage compare templates",
collectAll: "All sheets",
collectPh: "interface_brief, bgp_peer (empty = all)",
collectHint: "Comma-separated metric_id; empty uses every sheet on the compare template.",
defaults: "defaults (JSON)",
overrides: "sheet_overrides (JSON)",
overridesHint: "Optional per-metric status_fields / success patterns; empty array uses global defaults.",
},
portTraffic: {
title: "Port traffic",
create: "Monitor device",

View file

@ -144,6 +144,7 @@ const zh = {
nav: {
detail: "网络详情",
tasks: "监控任务",
cutoverCompare: "割接对比",
topologyMgmt: "拓扑管理",
devices: "设备列表",
topology: "拓扑信息",
@ -159,6 +160,8 @@ const zh = {
bizState: "业务监控",
bizCompare: "业务对比",
bizMigration: "割接监控",
compareTemplates: "对比模板",
monitorTemplates: "监控模板",
},
collapseNav: "折叠侧栏",
expandNav: "展开侧栏",
@ -565,6 +568,40 @@ const zh = {
colStatus: "状态",
verdictUnfinished: "未完成",
},
bizMonitorTpl: {
title: "监控模板",
hint: "引用对比模板定义「如何比」,再叠加双端迁移/基线判定规则。供割接监控选用。",
create: "新建监控模板",
edit: "编辑",
save: "保存",
cancel: "关闭",
created: "已创建",
saved: "已保存",
deleted: "已删除",
confirmDelete: "删除该监控模板?",
delete: "删除",
empty: "暂无监控模板。",
listFilterPh: "筛选名称 / 对比模板 / 备注",
kpiTotal: "模板数",
colName: "名称",
colCompare: "对比模板",
colCollect: "高频采集项",
colNote: "备注",
colActions: "操作",
needName: "请填写名称",
defaultsInvalid: "defaults JSON 无效",
overridesInvalid: "sheet_overrides JSON 无效",
formHint: "对比模板决定对齐与字段规则;本页配置双端判定与可选高频采集子集。",
compareHint: "来自「对比模板」;可先去那边新建或编辑 sheets。",
pickCompare: "选择对比模板…",
openCompare: "管理对比模板",
collectAll: "模板全量",
collectPh: "interface_brief, bgp_peer(空=全量)",
collectHint: "逗号分隔 metric_id;留空表示使用对比模板全部 sheets。",
defaults: "defaults(JSON)",
overrides: "sheet_overrides(JSON)",
overridesHint: "可按 metric 声明 status_fields / success 模式;空数组则用全局 defaults。",
},
portTraffic: {
title: "端口流量监控",
create: "添加设备监控",