- services/pve.go: 导入 db 包,DB -> db.DB
- handlers/pve.go: 重写为 Gin 风格(原为标准库 net/http)
- go.mod/go.sum: go mod tidy 更新依赖
- web/dist: 重新构建前端包含 PVEHosts 页面
[金渐层/K2.6-code-preview🐾]
2 lines
6.8 KiB
CSS
2 lines
6.8 KiB
CSS
.detail-header[data-v-8622dedd]{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px}.header-left[data-v-8622dedd]{display:flex;align-items:center;gap:12px}.host-title[data-v-8622dedd]{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:700}.status-badge[data-v-8622dedd]{font-size:11px;padding:2px 8px;border-radius:999px;font-weight:600}.status-badge.online[data-v-8622dedd]{background:#22c55e1f;color:#15803d}.status-badge.offline[data-v-8622dedd]{background:#ef44441a;color:#b91c1c}html.dark .status-badge.online[data-v-8622dedd]{background:#34d39926;color:#34d399}html.dark .status-badge.offline[data-v-8622dedd]{background:#f8717126;color:#f87171}.host-subtitle[data-v-8622dedd]{margin-top:4px;font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.host-subtitle span+span[data-v-8622dedd]:before{content:"·";margin-right:8px;color:var(--text-muted)}.detail-grid[data-v-8622dedd]{display:grid;grid-template-columns:1fr 1fr;gap:16px}.detail-grid>.card[data-v-8622dedd]{margin-bottom:0}@media (max-width: 900px){.detail-grid[data-v-8622dedd]{grid-template-columns:1fr}}.info-list[data-v-8622dedd]{display:flex;flex-direction:column;gap:10px}.info-item[data-v-8622dedd]{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:var(--surface-hover);border-radius:8px;font-size:13px;transition:background .2s ease}.info-label[data-v-8622dedd]{color:var(--text-secondary)}.info-value[data-v-8622dedd]{font-weight:500;color:var(--text)}.text-muted[data-v-8622dedd]{color:var(--text-muted)}.status-pills[data-v-8622dedd]{display:flex;flex-direction:column;gap:10px}.status-pill[data-v-8622dedd]{display:flex;align-items:center;gap:12px;padding:12px;background:var(--surface-hover);border-radius:10px;transition:background .2s ease}.sp-icon[data-v-8622dedd]{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff;flex-shrink:0}.sp-icon.cpu[data-v-8622dedd]{background:linear-gradient(135deg,#3b82f6,#60a5fa)}.sp-icon.mem[data-v-8622dedd]{background:linear-gradient(135deg,#22c55e,#4ade80)}.sp-icon.disk[data-v-8622dedd]{background:linear-gradient(135deg,#f59e0b,#fbbf24)}.sp-info[data-v-8622dedd]{flex:1;min-width:0}.sp-title[data-v-8622dedd]{font-size:12px;color:var(--text-secondary);margin-bottom:6px}.sp-bar[data-v-8622dedd]{height:5px;background:var(--border-strong);border-radius:3px;overflow:hidden}.sp-fill[data-v-8622dedd]{height:100%;border-radius:3px;background:#3b82f6;transition:width .3s ease}.sp-num[data-v-8622dedd]{font-size:14px;font-weight:700;color:var(--text);min-width:36px;text-align:right}.status-pill.disk-multi[data-v-8622dedd]{flex-wrap:wrap}.multi-disk-info[data-v-8622dedd]{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0;max-height:220px;overflow-y:auto}.detail-disk-item[data-v-8622dedd]{display:flex;align-items:center;gap:10px;font-size:12px}.dd-mount[data-v-8622dedd]{min-width:50px;color:var(--text-secondary);font-weight:500}.dd-bar-wrap[data-v-8622dedd]{flex:1;min-width:80px}.dd-bar[data-v-8622dedd]{height:5px;background:var(--border-strong);border-radius:3px;overflow:hidden}.dd-fill[data-v-8622dedd]{height:100%;border-radius:3px}.dd-val[data-v-8622dedd]{white-space:nowrap;color:var(--text-secondary)}.dd-pct[data-v-8622dedd]{min-width:32px;text-align:right;font-weight:700;color:var(--text)}.uptime-line[data-v-8622dedd]{margin-top:14px;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);padding:8px 10px;background:var(--surface-hover);border-radius:8px;transition:background .2s ease}.sync-actions[data-v-8622dedd]{margin-bottom:10px}.ssh-actions[data-v-8622dedd]{margin-bottom:12px}.ssh-result[data-v-8622dedd]{background:var(--surface-hover);border-radius:10px;padding:12px;transition:background .2s ease}.result-grid[data-v-8622dedd]{display:grid;grid-template-columns:1fr 1fr;gap:10px}.result-item[data-v-8622dedd]{display:flex;flex-direction:column;gap:2px}.result-item.full[data-v-8622dedd]{grid-column:1 / -1}.rl[data-v-8622dedd]{font-size:11px;color:var(--text-muted)}.rv[data-v-8622dedd]{font-size:13px;color:var(--text);font-weight:500}.service-list[data-v-8622dedd],.rel-list[data-v-8622dedd]{display:flex;flex-direction:column;gap:10px}.service-row[data-v-8622dedd]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--surface-hover);border-radius:10px;flex-wrap:wrap;transition:background .2s ease}.service-main[data-v-8622dedd]{display:flex;align-items:center;gap:10px}.service-name[data-v-8622dedd]{font-weight:600;font-size:14px}.service-port[data-v-8622dedd]{font-size:12px;color:var(--text-muted);background:var(--surface);padding:1px 6px;border-radius:4px;border:1px solid var(--border)}.service-target[data-v-8622dedd]{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--primary)}.target-note[data-v-8622dedd]{color:var(--text-muted)}.service-note[data-v-8622dedd]{font-size:12px;color:var(--text-secondary);flex:1 1 100%}.service-actions[data-v-8622dedd]{display:flex;gap:6px}.rel-row[data-v-8622dedd]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--surface-hover);border-radius:10px;flex-wrap:wrap;transition:background .2s ease}.rel-arrow[data-v-8622dedd]{display:flex;align-items:center;gap:8px;font-size:14px}.rel-host[data-v-8622dedd]{font-weight:600}.rel-meta[data-v-8622dedd]{display:flex;align-items:center;gap:8px;font-size:12px}.rel-port[data-v-8622dedd]{background:var(--surface);padding:1px 6px;border-radius:4px;border:1px solid var(--border);color:var(--text-secondary)}.rel-note[data-v-8622dedd]{color:var(--text-muted)}.rel-actions[data-v-8622dedd]{display:flex;gap:6px}.offline-stats[data-v-8622dedd]{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:16px}.stat-box[data-v-8622dedd]{background:var(--surface-hover);border-radius:10px;padding:12px;text-align:center}.stat-num[data-v-8622dedd]{font-size:20px;font-weight:700;color:var(--text)}.stat-reason[data-v-8622dedd]{font-size:13px;font-weight:600;color:var(--danger);word-break:break-all}.stat-label[data-v-8622dedd]{font-size:12px;color:var(--text-muted);margin-top:4px}.offline-logs[data-v-8622dedd]{background:var(--surface-hover);border-radius:10px;padding:12px}.log-title[data-v-8622dedd]{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:10px}.log-row[data-v-8622dedd]{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--border);font-size:12px}.log-row[data-v-8622dedd]:last-child{border-bottom:none}.log-time[data-v-8622dedd]{color:var(--text-muted);min-width:140px}.log-reason[data-v-8622dedd]{flex:1;color:var(--text-secondary)}.log-dur[data-v-8622dedd]{color:var(--text);font-weight:500}.log-dur.pending[data-v-8622dedd]{color:var(--warning)}
|