fix: 横版显式3列结构 col-left/col-mid/col-right + 底行时间

This commit is contained in:
qinglong
2026-06-14 08:10:42 +08:00
parent c0b4966086
commit b81f8024ae
+24 -16
View File
@@ -56,12 +56,14 @@
.node-notes { font-size:.75rem; color:var(--text-dim); font-style:italic; margin-bottom:8px } .node-notes { font-size:.75rem; color:var(--text-dim); font-style:italic; margin-bottom:8px }
/* 横版布局 — 左中右三列 */ /* 横版布局 — 左中右三列 */
#sentinel-grid.layout-row { display:flex;flex-direction:column;gap:12px } #sentinel-grid.layout-row { display:flex;flex-direction:column;gap:12px }
#sentinel-grid.layout-row .node-card { display:grid;grid-template-columns:220px 1fr 180px;gap:16px;align-items:start } #sentinel-grid.layout-row .node-card { display:grid;grid-template-columns:220px 1fr 180px;gap:12px 16px;align-items:start }
#sentinel-grid.layout-row .row-extra { display:contents } #sentinel-grid.layout-row .col-left { min-width:0 }
#sentinel-grid.layout-row .col-mid { min-width:0 }
#sentinel-grid.layout-row .col-right { display:flex;flex-direction:column;gap:8px }
#sentinel-grid.layout-row .col-chart { display:flex;flex-direction:column;gap:4px } #sentinel-grid.layout-row .col-chart { display:flex;flex-direction:column;gap:4px }
#sentinel-grid.layout-row .col-chart canvas { border-radius:4px;background:var(--md-sys-color-surface-container-lowest) } #sentinel-grid.layout-row .col-chart canvas { border-radius:4px;background:var(--md-sys-color-surface-container-lowest) }
#sentinel-grid.layout-row .col-info { text-align:right } #sentinel-grid.layout-row .col-info { text-align:right }
#sentinel-grid.layout-row .node-time { grid-column:1/-1 } #sentinel-grid.layout-row .node-time { grid-column:1/-1;margin-top:8px }
#sentinel-grid.layout-row .metric-bar { display:none } #sentinel-grid.layout-row .metric-bar { display:none }
.metric-row { display:flex; gap:12px; margin-bottom:8px } .metric-row { display:flex; gap:12px; margin-bottom:8px }
.metric { flex:1 } .metric { flex:1 }
@@ -177,7 +179,25 @@
card.setAttribute('data-id', id); card.setAttribute('data-id', id);
var plat = n.platform || {}; var plat = n.platform || {};
var sysInfo = (plat.system||'') + (plat.release ? ' ' + plat.release : '') + (plat.machine ? ' | ' + plat.machine : ''); var sysInfo = (plat.system||'') + (plat.release ? ' ' + plat.release : '') + (plat.machine ? ' | ' + plat.machine : '');
// 两种模式用同一套 DOM, CSS 控制布局 if (isRow) {
card.innerHTML =
'<div class="col-left">'+
'<div class="node-name">'+(n.online?'🟢':'🔴')+' '+esc(n.name)+'</div>'+
(sysInfo.trim() ? '<div class="node-sys">'+esc(sysInfo)+'</div>' : '')+
'<div class="node-url">'+esc(n.url||'')+'</div>'+
(n.notes ? '<div class="node-notes">📝 '+esc(n.notes)+'</div>' : '')+
'</div>'+
'<div class="col-mid"><div class="metrics-body"></div></div>'+
'<div class="col-right">'+
'<div class="col-chart">'+
'<canvas id="'+id+'-cpu" width="160" height="50"></canvas>'+
'<canvas id="'+id+'-mem" width="160" height="50"></canvas>'+
'<canvas id="'+id+'-net" width="160" height="50"></canvas>'+
'</div>'+
'<div class="col-info"></div>'+
'</div>'+
'<div class="node-time"></div>';
} else {
card.innerHTML = card.innerHTML =
'<div class="node-name">'+(n.online?'🟢':'🔴')+' '+esc(n.name)+'</div>'+ '<div class="node-name">'+(n.online?'🟢':'🔴')+' '+esc(n.name)+'</div>'+
(sysInfo.trim() ? '<div class="node-sys">'+esc(sysInfo)+'</div>' : '')+ (sysInfo.trim() ? '<div class="node-sys">'+esc(sysInfo)+'</div>' : '')+
@@ -185,18 +205,6 @@
(n.notes ? '<div class="node-notes">📝 '+esc(n.notes)+'</div>' : '')+ (n.notes ? '<div class="node-notes">📝 '+esc(n.notes)+'</div>' : '')+
'<div class="metrics-body"></div>'+ '<div class="metrics-body"></div>'+
'<div class="node-time"></div>'; '<div class="node-time"></div>';
if (isRow) {
// 横版: 额外加折线图 canvas + 右侧信息区
var rowExtra = document.createElement('div');
rowExtra.className = 'row-extra';
rowExtra.innerHTML =
'<div class="col-chart">'+
'<canvas id="'+id+'-cpu" width="160" height="50"></canvas>'+
'<canvas id="'+id+'-mem" width="160" height="50"></canvas>'+
'<canvas id="'+id+'-net" width="160" height="50"></canvas>'+
'</div>'+
'<div class="col-info"></div>';
card.appendChild(rowExtra);
} }
grid.appendChild(card); grid.appendChild(card);
_cardCache[id] = card; _cardCache[id] = card;