feat(web): topbar/nav cleanup batch (items 10-13)
Item 10: remove the disabled decorative topbar search input (each page has its own working search); CSS rule and media-query reference removed. Item 11: menu/title renames — 服务器 -> 节点管理, 客户与订阅 -> 用户订阅, 转发与节点 -> 入站&出站, 设置与运维 -> 设置 (nav, TITLES/breadcrumb and cross-references synced); the chains page add button is now 添加入站 and its count reads N 个入站; the 安装与命令 page is merged into 设置 (commandsHTML block between the settings grid and the jobs table) and the page itself is removed from nav, PAGES, TITLES, load() and the view map — an old #commands hash now lands on the SPA's standard overview fallback. Item 12: remove the system page's 最近活动 panel (rendering and its audit label map plus orphaned CSS); backend audit records untouched. Item 13: the settings jobs table gets the w-jobs treatment — ID, status and time cells never wrap, compact row padding, and the error column is capped at 22% width so an empty error column no longer balloons. Also fixes a class collision from the item-8 batch: the exit-mode segmented control is renamed .seg -> .segctl so it no longer draws a border box around the system page info-bar segments. Golden re-captured: the only diff is the served index HTML inside errors.badSubscription, audited character by character as exactly these renames and removals.
This commit is contained in:
+9
-13
@@ -65,7 +65,6 @@ input,select,textarea{font-family:var(--font);color:var(--text)}
|
||||
.crumb{color:var(--text-3);font-size:13px;white-space:nowrap}
|
||||
.crumb b{color:var(--text);font-weight:600;font-size:15px}
|
||||
.topbar .sp{flex:1}
|
||||
.top-search{background:var(--card);border:1px solid var(--border);border-radius:6px;color:var(--text-2);padding:5px 12px;font-size:13px;width:230px}
|
||||
.theme-btn{border:1px solid var(--border);background:var(--card);color:var(--text-2);border-radius:6px;padding:5px 11px;font-size:12.5px;cursor:pointer;white-space:nowrap}
|
||||
.theme-btn:hover{border-color:var(--primary);color:var(--primary-text)}
|
||||
.content{padding:24px;width:100%}
|
||||
@@ -137,13 +136,6 @@ select.search{width:auto}
|
||||
.stop-up-a{stop-color:var(--primary);stop-opacity:.26}
|
||||
.stop-up-b{stop-color:var(--primary);stop-opacity:0}
|
||||
.notice{border:1px solid var(--orange);background:var(--orange-soft);color:var(--orange-text);border-radius:6px;padding:8px 12px;font-size:13px;margin-bottom:16px}
|
||||
.activity-list{display:flex;flex-direction:column}
|
||||
.activity-list .event{display:flex;align-items:center;gap:10px;padding:7px 16px;border-bottom:1px solid var(--border-soft);font-size:13px}
|
||||
.activity-list .event:last-child{border-bottom:none}
|
||||
.activity-list .event b{font-weight:500}
|
||||
.activity-list .event small{color:var(--text-3)}
|
||||
.activity-list .event time{margin-left:auto;color:var(--text-3);font-size:12px;white-space:nowrap}
|
||||
.event-dot{width:7px;height:7px;border-radius:50%;background:var(--primary);flex:none}
|
||||
|
||||
/* ---------- 表格通用 ---------- */
|
||||
.table-wrap{overflow-x:auto}
|
||||
@@ -152,6 +144,9 @@ table{width:100%;border-collapse:collapse}
|
||||
table.w-servers{min-width:1390px}
|
||||
table.w-customers{min-width:1120px}
|
||||
table.w-nodes{min-width:1180px}
|
||||
table.w-jobs td{white-space:nowrap;padding-top:5px;padding-bottom:5px}
|
||||
table.w-jobs th:last-child{width:22%}
|
||||
table.w-jobs td:last-child{white-space:normal;min-width:120px;word-break:break-word}
|
||||
thead th{text-align:left;font-size:12.5px;font-weight:600;color:var(--text-2);letter-spacing:.3px;padding:7px 12px;border-bottom:1px solid var(--border-soft);background:var(--th-bg);white-space:nowrap}
|
||||
thead th .sarr{color:var(--text-3);font-size:10px;margin-left:3px}
|
||||
thead th.ctr,tbody td.ctr{text-align:center}
|
||||
@@ -322,9 +317,9 @@ label>input:focus,label>select:focus,label>textarea:focus{border-color:var(--pri
|
||||
.mono{font-family:var(--mono);font-size:12.5px;word-break:break-all}
|
||||
|
||||
/* 页签 */
|
||||
.seg{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}
|
||||
.seg button{padding:6px 16px;background:var(--card);border:none;color:var(--text-2);cursor:pointer;font:inherit;font-size:13px}
|
||||
.seg button.active{background:var(--primary);color:#fff}
|
||||
.segctl{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden}
|
||||
.segctl button{padding:6px 16px;background:var(--card);border:none;color:var(--text-2);cursor:pointer;font:inherit;font-size:13px}
|
||||
.segctl button.active{background:var(--primary);color:#fff}
|
||||
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border-soft);margin-bottom:14px}
|
||||
.tabs button{border:none;background:transparent;padding:7px 14px;font-size:13.5px;color:var(--text-2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
|
||||
.tabs button.active{color:var(--primary-text);border-bottom-color:var(--primary);font-weight:500}
|
||||
@@ -379,7 +374,8 @@ label>input:focus,label>select:focus,label>textarea:focus{border-color:var(--pri
|
||||
.warn-note{border:1px solid var(--orange);background:var(--orange-soft);color:var(--orange-text);border-radius:6px;padding:8px 12px;font-size:13px}
|
||||
|
||||
/* 命令页 / 运维页 */
|
||||
.command-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
|
||||
.command-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:16px}
|
||||
.command-grid .panel{margin-bottom:0}
|
||||
.command-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border-soft)}
|
||||
.command-item:last-child{border-bottom:none}
|
||||
.command-item>div{flex:1;min-width:0}
|
||||
@@ -406,4 +402,4 @@ label>input:focus,label>select:focus,label>textarea:focus{border-color:var(--pri
|
||||
.toast.error{border-left-color:var(--red)}
|
||||
|
||||
@media (max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.mid-grid{grid-template-columns:1fr}.info-bar{flex-direction:column;gap:14px}.info-bar .seg{padding:0}.info-bar .seg+.seg{border-left:none}.stats{grid-template-columns:repeat(2,1fr)}.stats.six{grid-template-columns:repeat(3,1fr)}}
|
||||
@media (max-width:760px){.sider{display:none}.form-grid{grid-template-columns:1fr}.top-search{display:none}.content{padding:8px}}
|
||||
@media (max-width:760px){.sider{display:none}.form-grid{grid-template-columns:1fr}.content{padding:8px}}
|
||||
|
||||
Reference in New Issue
Block a user