fix: 平台构建
This commit is contained in:
@@ -1783,7 +1783,7 @@ function PluginControlsSection({ serverId, instance, plugins, artifacts, session
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="operation-list" aria-label="plugin controls">
|
||||
<div className="console-record-list" aria-label="plugin controls">
|
||||
{groups.length === 0 && (
|
||||
<EmptyState title="该服务器没有可控制的插件" description="安装插件后,这里会按插件分组显示可用的日常操作。" />
|
||||
)}
|
||||
@@ -2206,17 +2206,17 @@ function HistorySection({ serverId, serverOperations, jobs, artifacts, metricHis
|
||||
{serverOperations.length === 0 ? (
|
||||
<EmptyState title="暂无操作记录" description="在本页发起启动、停止、插件控制或配置写入后,这里会显示完整的操作生命周期。" />
|
||||
) : (
|
||||
<div className="operation-list">
|
||||
<div className="console-record-list">
|
||||
{serverOperations.map((operation) => (
|
||||
<div key={operation.id} className="operation-item">
|
||||
<div className="operation-item-head">
|
||||
<div key={operation.id} className="console-record">
|
||||
<div className="console-record-head">
|
||||
<strong>{operation.intent}</strong>
|
||||
<ResultBadge
|
||||
status={operation.status}
|
||||
label={operation.status === "pending" ? "进行中" : operation.status === "succeeded" ? "成功" : "失败"}
|
||||
/>
|
||||
</div>
|
||||
<div className="operation-meta">
|
||||
<div className="console-record-meta">
|
||||
<span>
|
||||
操作 <code>{operation.id}</code>
|
||||
</span>
|
||||
@@ -2249,16 +2249,16 @@ function HistorySection({ serverId, serverOperations, jobs, artifacts, metricHis
|
||||
{jobs.length === 0 ? (
|
||||
<EmptyState title="暂无任务" description="该服务器还没有平台侧任务记录。" />
|
||||
) : (
|
||||
<div className="operation-list">
|
||||
<div className="console-record-list">
|
||||
{jobs.slice(0, 20).map((job) => (
|
||||
<div key={job.id} className="operation-item">
|
||||
<div className="operation-item-head">
|
||||
<div key={job.id} className="console-record">
|
||||
<div className="console-record-head">
|
||||
<strong>{job.capability}</strong>
|
||||
<span className={cx("status-pill", job.state === "succeeded" ? "status-active" : job.state === "failed" ? "status-error" : "status-disabled")}>
|
||||
{job.state}
|
||||
</span>
|
||||
</div>
|
||||
<div className="operation-meta">
|
||||
<div className="console-record-meta">
|
||||
<span>
|
||||
任务 <code>{job.id}</code>
|
||||
</span>
|
||||
@@ -2291,18 +2291,18 @@ function HistorySection({ serverId, serverOperations, jobs, artifacts, metricHis
|
||||
<div className="panel-header">
|
||||
<h2>持久化观测</h2>
|
||||
</div>
|
||||
<div className="operation-list">
|
||||
<div className="operation-item">
|
||||
<div className="operation-item-head"><strong>指标样本</strong><span className="status-pill status-active">{metricHistory.length} 条</span></div>
|
||||
<div className="operation-meta"><span>最新采集 {metricHistory.length > 0 ? new Date(metricHistory[metricHistory.length - 1].collectedAt).toLocaleString() : "暂无"}</span></div>
|
||||
<div className="console-record-list">
|
||||
<div className="console-record">
|
||||
<div className="console-record-head"><strong>指标样本</strong><span className="status-pill status-active">{metricHistory.length} 条</span></div>
|
||||
<div className="console-record-meta"><span>最新采集 {metricHistory.length > 0 ? new Date(metricHistory[metricHistory.length - 1].collectedAt).toLocaleString() : "暂无"}</span></div>
|
||||
</div>
|
||||
<div className="operation-item">
|
||||
<div className="operation-item-head"><strong>备份记录</strong><span className="status-pill status-active">{backups.length} 条</span></div>
|
||||
<div className="operation-meta">{backups.slice(0, 4).map((backup) => <span key={backup.id}>{backup.id} · {backup.state} · {backup.checksum.slice(0, 18)}</span>)}</div>
|
||||
<div className="console-record">
|
||||
<div className="console-record-head"><strong>备份记录</strong><span className="status-pill status-active">{backups.length} 条</span></div>
|
||||
<div className="console-record-meta">{backups.slice(0, 4).map((backup) => <span key={backup.id}>{backup.id} · {backup.state} · {backup.checksum.slice(0, 18)}</span>)}</div>
|
||||
</div>
|
||||
<div className="operation-item">
|
||||
<div className="operation-item-head"><strong>远端适配器声明</strong><span className="status-pill status-active">{remoteAdapters.length} 个</span></div>
|
||||
<div className="operation-meta">{remoteAdapters.slice(0, 4).map((adapter) => <span key={adapter.key}>{adapter.key} · {adapter.kind} · {adapter.targetKeys.join(", ")}</span>)}</div>
|
||||
<div className="console-record">
|
||||
<div className="console-record-head"><strong>远端适配器声明</strong><span className="status-pill status-active">{remoteAdapters.length} 个</span></div>
|
||||
<div className="console-record-meta">{remoteAdapters.slice(0, 4).map((adapter) => <span key={adapter.key}>{adapter.key} · {adapter.kind} · {adapter.targetKeys.join(", ")}</span>)}</div>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
@@ -2347,16 +2347,16 @@ function ArtifactDownloadPanel({ serverId, artifacts }: ArtifactDownloadPanelPro
|
||||
{artifacts.length === 0 ? (
|
||||
<EmptyState title="暂无可下载制品" description="该服务器当前没有已完成的可用制品。" />
|
||||
) : (
|
||||
<div className="operation-list">
|
||||
<div className="console-record-list">
|
||||
{artifacts.slice(0, 12).map((artifact) => {
|
||||
const itemResult = result[artifact.id];
|
||||
return (
|
||||
<div key={artifact.id} className="operation-item">
|
||||
<div className="operation-item-head">
|
||||
<div key={artifact.id} className="console-record">
|
||||
<div className="console-record-head">
|
||||
<strong>{artifact.id}</strong>
|
||||
<ResultBadge status={itemResult?.status ?? "pending"} label={itemResult?.label ?? artifact.state} />
|
||||
</div>
|
||||
<div className="operation-meta">
|
||||
<div className="console-record-meta">
|
||||
<span>服务器 {serverId}</span>
|
||||
<span>{formatBytes(artifact.sizeBytes)}</span>
|
||||
<span>{artifact.checksum}</span>
|
||||
|
||||
Reference in New Issue
Block a user