feat: 设备卡片显示系统名+版本 + 项目根 version.json
- SystemInfoCollector.platform 新增 release 字段 (内核版本)
- Sentinel 卡片每台设备显示: Linux 6.12.23 | aarch64
- 数据刷新时同步更新系统信息行
- 项目根 version.json: 本地版本清单
当前版本检测:
UpdateService 每6h从 {repo}/raw/branch/{branch}/version.json 拉取
对比 base_config.yaml 的 framework.version
远程 > 本地 → 顶栏绿色按钮 + 设置页更新提示
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -47,7 +47,8 @@
|
||||
.node-card.offline { border-left:3px solid var(--error, #f44336); opacity:.7 }
|
||||
.node-card.flash { animation:card-flash .6s ease-out }
|
||||
@keyframes card-flash { 0%{background:var(--md-sys-color-surface-container-highest)} 100%{background:var(--md-sys-color-surface-container)} }
|
||||
.node-name { font-weight:600; font-size:1rem; margin-bottom:4px }
|
||||
.node-name { font-weight:600; font-size:1rem; margin-bottom:2px }
|
||||
.node-sys { font-size:.75rem; color:var(--text-dim); margin-bottom:4px }
|
||||
.node-url { font-size:.75rem; color:var(--text-dim); margin-bottom:8px; word-break:break-all }
|
||||
.node-notes { font-size:.75rem; color:var(--text-dim); font-style:italic; margin-bottom:8px }
|
||||
.metric-row { display:flex; gap:12px; margin-bottom:8px }
|
||||
@@ -135,8 +136,11 @@
|
||||
card = document.createElement('div');
|
||||
card.className = 'node-card ' + (n.online ? 'online' : 'offline');
|
||||
card.setAttribute('data-id', id);
|
||||
var plat = n.platform || {};
|
||||
var sysInfo = (plat.system||'') + (plat.release ? ' ' + plat.release : '') + (plat.machine ? ' | ' + plat.machine : '');
|
||||
card.innerHTML =
|
||||
'<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 class="metrics-body"></div>'+
|
||||
@@ -148,6 +152,13 @@
|
||||
// 更新状态样式
|
||||
card.className = 'node-card ' + (n.online ? 'online' : 'offline');
|
||||
card.querySelector('.node-name').innerHTML = (n.online?'🟢':'🔴')+' '+esc(n.name);
|
||||
var sysEl = card.querySelector('.node-sys');
|
||||
var plat = n.platform || {};
|
||||
var sysInfo = (plat.system||'') + (plat.release ? ' ' + plat.release : '') + (plat.machine ? ' | ' + plat.machine : '');
|
||||
if (sysInfo.trim()) {
|
||||
if (!sysEl) { sysEl = document.createElement('div'); sysEl.className = 'node-sys'; card.insertBefore(sysEl, card.querySelector('.node-url')); }
|
||||
sysEl.textContent = sysInfo;
|
||||
} else if (sysEl) { sysEl.remove(); }
|
||||
card.querySelector('.node-url').textContent = n.url||'';
|
||||
var notesEl = card.querySelector('.node-notes');
|
||||
if (n.notes) {
|
||||
|
||||
Reference in New Issue
Block a user