Align cutover monitor UI with network task management.

Use the same list, create-task modal, and detail tabs pattern as business monitor.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-09-18 17:00:07 +08:00
parent 920aa322f3
commit 335c3fcbeb
3 changed files with 853 additions and 460 deletions

View file

@ -452,8 +452,10 @@ const en = {
hint: "Separate from business compare: baseline drift, expect set, dual-device verdict. Reuses collect tasks and port mappings.",
hintPort:
"Metric focus: port status (interface_brief / admin·phy·prot). Baseline → pick ports → evaluate board.",
createProject: "New cutover project",
projectName: "Project name",
create: "Create task",
createHint: "Pick old/new business-monitor tasks; optional port mapping and baseline batches.",
createProject: "Create task",
projectName: "Task name",
oldTask: "Old-device collect task",
newTask: "New-device collect task",
portMapping: "Port mapping",
@ -462,9 +464,31 @@ const en = {
needProjectFields: "Enter a name and pick old/new collect tasks",
needExpectPorts: "Select at least one expected port for this batch",
needBaselineFirst: "Save an old baseline batch first to list ports",
projectCreated: "Project created",
projects: "Projects",
emptyProjects: "No cutover projects yet",
needBizStateTasks: "No business-monitor tasks yet. Create one first:",
projectCreated: "Task created",
projects: "Tasks",
empty: "No cutover tasks yet.",
emptyProjects: "No cutover tasks yet",
listFilterPh: "Filter name / NE / IP / status",
kpiProjects: "Tasks",
kpiActive: "Active",
detail: "Detail",
cancel: "Close",
colName: "Task",
colPair: "Old → New",
colBaseline: "Baseline",
colCreated: "Created",
colActions: "Actions",
baselineSet: "Set",
baselineUnset: "Unset",
statusActive: "Active",
statusDone: "Done",
statusPaused: "Paused",
statusPending: "Pending",
statusReview: "Review",
tabSetup: "Baseline",
tabBatches: "Batches",
tabBoard: "Board",
saveBaseline: "Save baseline / mapping",
baselineSaved: "Baseline saved",
pickExpectPorts: "Expected ports (from old baseline)",
@ -510,10 +534,10 @@ const en = {
enableHighfreq: "Enable high-freq port collect",
highfreqHint:
"Creates/reuses biz-state tasks with interface_brief only on old/new NEs. Add BGP etc. later on the same tasks in Business monitor.",
highfreqReady: "High-freq port collect tasks ready and bound to this project",
highfreqReady: "High-freq port collect tasks ready and bound to this task",
collectNow: "Collect old+new now",
collectTriggered: "Collect triggered",
openBizState: "Open business state",
openBizState: "Open business monitor",
boundTasks: "Bound collect tasks",
acceptTitle: "Batch acceptance summary",
acceptPassed: "Batch acceptance passed",
@ -521,7 +545,7 @@ const en = {
acceptPassedShort: "Passed",
acceptFailedShort: "Failed",
acceptCarryHint: "Failure does not block the next batch; red tickets stay until resolved.",
openRedHint: "{{n}} open red ticket(s) on this project (carry allowed)",
openRedHint: "{{n}} open red ticket(s) on this task (carry allowed)",
redTitle: "Red tickets",
redOpen: "open",
resolveRed: "Resolve",

View file

@ -449,19 +449,43 @@ const zh = {
title: "割接监控",
hint: "与业务对比独立:相对基线漂移 + 本批预期 + 老/新双端判定。复用采集任务与端口映射。",
hintPort: "当前监控项:端口状态(interface_brief / admin·phy·prot)。选基线 → 勾选本批端口 → 判定看板。",
createProject: "新建割接项目",
projectName: "项目名称",
create: "创建任务",
createHint: "选择老/新设备的业务监控任务,可选端口映射与基线批次。",
createProject: "创建任务",
projectName: "任务名称",
oldTask: "老设备采集任务",
newTask: "新设备采集任务",
portMapping: "端口映射",
oldBaseline: "老设备基线批次",
newBaseline: "新设备基线批次(可选)",
needProjectFields: "请填写项目名并选择老/新采集任务",
needProjectFields: "请填写任务名并选择老/新采集任务",
needExpectPorts: "请先勾选本批预期迁移的端口",
needBaselineFirst: "请先保存老设备基线批次,才能列出端口",
projectCreated: "项目已创建",
projects: "项目",
emptyProjects: "暂无割接项目",
needBizStateTasks: "尚无业务监控任务,请先创建:",
projectCreated: "任务已创建",
projects: "任务",
empty: "暂无割接任务。",
emptyProjects: "暂无割接任务",
listFilterPh: "筛选任务名 / 网元 / IP / 状态",
kpiProjects: "任务数",
kpiActive: "进行中",
detail: "详情",
cancel: "关闭",
colName: "任务",
colPair: "老 → 新",
colBaseline: "基线",
colCreated: "创建时间",
colActions: "操作",
baselineSet: "已设",
baselineUnset: "未设",
statusActive: "进行中",
statusDone: "已完成",
statusPaused: "已暂停",
statusPending: "待开始",
statusReview: "验收中",
tabSetup: "基线配置",
tabBatches: "割接批次",
tabBoard: "判定看板",
saveBaseline: "保存基线/映射",
baselineSaved: "基线已保存",
pickExpectPorts: "本批预期端口(来自老基线)",
@ -507,7 +531,7 @@ const zh = {
enableHighfreq: "开启高频端口采集",
highfreqHint:
"在业务监控下为老/新设备各建(或复用)仅含 interface_brief 的任务并周期采集;后续要加 BGP 等直接去业务监控勾选即可。",
highfreqReady: "高频端口采集任务已就绪(已绑定到本项目)",
highfreqReady: "高频端口采集任务已就绪(已绑定到本任务)",
collectNow: "立即采集老+新",
collectTriggered: "已触发采集",
openBizState: "打开业务监控",
@ -518,7 +542,7 @@ const zh = {
acceptPassedShort: "通过",
acceptFailedShort: "未通过",
acceptCarryHint: "验收不过不拦截:可新建下一批继续;红单保留留痕,可手动关闭。",
openRedHint: "项目仍有 {{n}} 条未关闭红单(带红继续)",
openRedHint: "任务仍有 {{n}} 条未关闭红单(带红继续)",
redTitle: "红单留痕",
redOpen: "未关闭",
resolveRed: "关闭",

File diff suppressed because it is too large Load diff