189 lines
38 KiB
HTML
189 lines
38 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<script src="./support.js"></script>
|
|
</head>
|
|
<body>
|
|
<x-dc>
|
|
<helmet>
|
|
<link rel="stylesheet" href="_ds/industry-22c874fd-9888-4e99-8234-d60d39b3d719/styles.css">
|
|
<script src="_ds/industry-22c874fd-9888-4e99-8234-d60d39b3d719/_ds_bundle.js"></script>
|
|
<style>
|
|
body{margin:0;background:#f2f2f3;min-width:1280px}
|
|
*{scrollbar-width:thin;scrollbar-color:var(--color-accent-300) transparent}
|
|
a{color:#5980a6}a:hover{color:#416180}
|
|
@keyframes omIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
|
|
@keyframes omScan{to{background-position:28px 0}}
|
|
@keyframes omDraw{to{stroke-dashoffset:0}}
|
|
@keyframes omGrow{from{width:0}}
|
|
@keyframes omPulse{0%,100%{opacity:1}50%{opacity:.3}}
|
|
</style>
|
|
</helmet>
|
|
<dc-import name="ConsoleNav" active="assets" hint-size="100%,92px"></dc-import>
|
|
<div data-screen-label="资产中心" style="max-width:1400px;margin:0 auto;padding:22px 24px 64px;font-family:var(--font-body);animation:omIn .5s cubic-bezier(.2,.7,.2,1) both">
|
|
<div style="display:flex;align-items:flex-end;gap:16px;margin-bottom:18px">
|
|
<div>
|
|
<div style="font-size:10px;letter-spacing:.18em;color:var(--color-accent-700);font-weight:500">07 · ASSETS</div>
|
|
<h2 style="margin:2px 0 0;font-size:30px">资产中心</h2>
|
|
<div class="text-muted" style="font-size:12.5px;margin-top:2px">登记 · 绑定 · 禁用 · 审计 — 任何破坏性任务必须绑定允许的 DUT</div>
|
|
</div>
|
|
<span style="margin-left:auto"></span>
|
|
<button class="btn btn-primary" onClick="{{ openReg }}" style="gap:7px">
|
|
<svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg>
|
|
登记资产
|
|
</button>
|
|
</div>
|
|
|
|
<div class="seg" style="background:var(--color-bg);margin-bottom:16px">
|
|
<label class="seg-opt"><input type="radio" name="atab" checked="{{ tHost }}" onChange="{{ setHost }}"><span>测试主机 6</span></label>
|
|
<label class="seg-opt"><input type="radio" name="atab" checked="{{ tDut }}" onChange="{{ setDut }}"><span>DUT 8</span></label>
|
|
<label class="seg-opt"><input type="radio" name="atab" checked="{{ tFw }}" onChange="{{ setFw }}"><span>固件包 6</span></label>
|
|
<label class="seg-opt"><input type="radio" name="atab" checked="{{ tTool }}" onChange="{{ setTool }}"><span>工具连接器 9</span></label>
|
|
<label class="seg-opt"><input type="radio" name="atab" checked="{{ tOob }}" onChange="{{ setOob }}"><span>带外控制器 6</span></label>
|
|
</div>
|
|
|
|
<sc-if value="{{ tHost }}" hint-placeholder-val="{{ false }}">
|
|
<div class="card blueprint" style-hover="border-color:var(--color-accent-400);box-shadow:var(--shadow-sm)" style="transition:border-color .15s ease,box-shadow .15s ease;padding:14px 16px;gap:8px;animation:omIn .35s cubic-bezier(.2,.7,.2,1) both" data-screen-label="资产·主机">
|
|
<i class="corner tl"></i><i class="corner tr"></i><i class="corner bl"></i><i class="corner br"></i>
|
|
<table class="table">
|
|
<thead><tr><th>主机</th><th>平台 / OS</th><th>BIOS</th><th>Agent</th><th>心跳</th><th>带外配对</th><th>绑定工位</th><th>状态</th><th></th></tr></thead>
|
|
<tbody>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">HOST-A01</td><td style="font-size:12.5px">x86 台式 · Win11 22631</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">F26b</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">1.4.2</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-accent-700)">2s</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">OOB-01</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">WS-01</td><td><span class="tag tag-accent">运行中</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">审计</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">HOST-A02</td><td style="font-size:12.5px">x86 台式 · Win11 22631</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">F26b</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">1.4.2</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-accent-700)">1s</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">OOB-02</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">WS-02</td><td><span class="tag tag-accent">运行中</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">审计</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">HOST-L02</td><td style="font-size:12.5px">2U 服务器 · Ubuntu 22.04 · 6.5.0-41</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">2.1a</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">1.4.2</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:#8a2e22">丢失 1m+</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">OOB-03</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">WS-03</td><td><span style="font-size:10.5px;padding:3px 9px;background:var(--color-accent-200);color:var(--color-accent-800);animation:omPulse 1.2s infinite">恢复中 L3</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">审计</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">HOST-L01</td><td style="font-size:12.5px">2U 服务器 · Ubuntu 22.04 · 6.5.0-41</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">2.1a</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">1.4.2</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-accent-700)">3s</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">OOB-04</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">WS-04</td><td><span class="tag tag-outline">空闲</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">审计</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">HOST-A03</td><td style="font-size:12.5px">x86 台式 · Win11 22631</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">F26b</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">1.4.2</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-accent-700)">2s</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">OOB-05</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">WS-05</td><td><span class="tag tag-accent">已预约</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">审计</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700;color:var(--color-neutral-600)">HOST-W02</td><td style="font-size:12.5px;color:var(--color-neutral-600)">x86 台式 · Win10 19045</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">1.8c</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">1.3.9</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">—</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">OOB-06 升级中</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">WS-06</td><td><span style="font-size:10.5px;padding:3px 9px;border:1px solid var(--color-divider);color:var(--color-neutral-600);background:repeating-linear-gradient(135deg,rgba(29,31,32,.10) 0 2px,transparent 2px 5px)">维护</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">审计</button></td></tr>
|
|
</tbody>
|
|
</table>
|
|
<div style="font-size:11px;color:var(--color-neutral-600)">主机镜像:golden-image-win11-v7 / ubuntu2204-v4 · 组策略固化(禁用快速启动/自动更新/睡眠劫持) · Agent 自愈:本地看门狗 + 双进程互监,崩溃 10s 内拉起且证据不丢</div>
|
|
</div>
|
|
</sc-if>
|
|
|
|
<sc-if value="{{ tDut }}" hint-placeholder-val="{{ true }}">
|
|
<div class="card blueprint" style-hover="border-color:var(--color-accent-400);box-shadow:var(--shadow-sm)" style="transition:border-color .15s ease,box-shadow .15s ease;padding:14px 16px;gap:8px;animation:omIn .35s cubic-bezier(.2,.7,.2,1) both" data-screen-label="资产·DUT">
|
|
<i class="corner tl"></i><i class="corner tr"></i><i class="corner bl"></i><i class="corner br"></i>
|
|
<table class="table">
|
|
<thead><tr><th>序列号</th><th>型号 / 形态</th><th>当前固件</th><th style="width:130px">P/E 磨损</th><th>允许动作</th><th>绑定</th><th>生命周期</th><th></th></tr></thead>
|
|
<tbody>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">SAMPLE-001</td><td style="font-size:12.5px">NV-E1T92 · 1.92TB U.2</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">FW_3.3.0-rc2 · slot2</td><td><div style="display:flex;align-items:center;gap:7px"><div style="flex:1;height:5px;border:1px solid var(--color-divider)"><div style="height:100%;width:23%;background:var(--color-accent)"></div></div><span style="font-family:ui-monospace,Menlo,monospace;font-size:10px">23%</span></div></td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;background:var(--color-accent-800);color:#f2f2f3;padding:2px 7px">破坏写</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 7px">刷写</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">WS-01 · 运行中</td><td><span class="tag tag-outline">测试专用</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">履历</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">SAMPLE-002</td><td style="font-size:12.5px">NV-E1T92 · 1.92TB U.2</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">FW_3.3.0-rc2 · slot2</td><td><div style="display:flex;align-items:center;gap:7px"><div style="flex:1;height:5px;border:1px solid var(--color-divider)"><div style="height:100%;width:31%;background:var(--color-accent)"></div></div><span style="font-family:ui-monospace,Menlo,monospace;font-size:10px">31%</span></div></td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;background:var(--color-accent-800);color:#f2f2f3;padding:2px 7px">破坏写</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 7px">刷写</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">WS-03 · 冻结</td><td><span class="tag tag-outline">测试专用</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">履历</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">SAMPLE-003</td><td style="font-size:12.5px">NV-E960 · 960GB M.2</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">FW_3.2.1 · slot1</td><td><div style="display:flex;align-items:center;gap:7px"><div style="flex:1;height:5px;border:1px solid var(--color-divider)"><div style="height:100%;width:8%;background:var(--color-accent)"></div></div><span style="font-family:ui-monospace,Menlo,monospace;font-size:10px">8%</span></div></td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;background:var(--color-accent-800);color:#f2f2f3;padding:2px 7px">破坏写</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 7px">刷写</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">未绑定</td><td><span class="tag tag-outline">测试专用</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">履历</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">SAMPLE-004</td><td style="font-size:12.5px">NV-E1T92 · 1.92TB U.2</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">FW_3.2.1 · slot1</td><td><div style="display:flex;align-items:center;gap:7px"><div style="flex:1;height:5px;border:1px solid var(--color-divider)"><div style="height:100%;width:67%;background:var(--color-accent-700)"></div></div><span style="font-family:ui-monospace,Menlo,monospace;font-size:10px">67%</span></div></td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;background:var(--color-accent-800);color:#f2f2f3;padding:2px 7px">破坏写</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">WS-02 · 运行中</td><td><span class="tag tag-outline">测试专用</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">履历</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">SAMPLE-005</td><td style="font-size:12.5px">NV-E1T92 · 1.92TB U.2</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">FW_3.1.9 · slot1</td><td><div style="display:flex;align-items:center;gap:7px"><div style="flex:1;height:5px;border:1px solid var(--color-divider)"><div style="height:100%;width:89%;background:#b03d2e"></div></div><span style="font-family:ui-monospace,Menlo,monospace;font-size:10px;color:#8a2e22">89%</span></div></td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 7px;color:var(--color-neutral-600)">只读</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">未绑定</td><td><span style="font-size:10.5px;padding:2px 9px;border:1px solid #b03d2e;color:#8a2e22">寿命预警</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">履历</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">SAMPLE-006</td><td style="font-size:12.5px">NV-E1T92 · 1.92TB U.2</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">FW_3.2.1 · slot1</td><td><div style="display:flex;align-items:center;gap:7px"><div style="flex:1;height:5px;border:1px solid var(--color-divider)"><div style="height:100%;width:12%;background:var(--color-accent)"></div></div><span style="font-family:ui-monospace,Menlo,monospace;font-size:10px">12%</span></div></td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;background:var(--color-accent-800);color:#f2f2f3;padding:2px 7px">破坏写</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 7px">刷写</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">WS-05 · 已预约</td><td><span class="tag tag-outline">测试专用</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">履历</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">SAMPLE-007</td><td style="font-size:12.5px">NV-E3T84 · 3.84TB U.2 工程样</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">FW_3.3.0-rc3 · slot2</td><td><div style="display:flex;align-items:center;gap:7px"><div style="flex:1;height:5px;border:1px solid var(--color-divider)"><div style="height:100%;width:4%;background:var(--color-accent)"></div></div><span style="font-family:ui-monospace,Menlo,monospace;font-size:10px">4%</span></div></td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 7px">刷写</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 7px;color:var(--color-neutral-600)">只读</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">收货检验中</td><td><span class="tag tag-neutral">入库检</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">履历</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700;color:var(--color-neutral-500)">SAMPLE-000</td><td style="font-size:12.5px;color:var(--color-neutral-500)">NV-E960 · 960GB M.2</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-neutral-500)">—</td><td><div style="display:flex;align-items:center;gap:7px"><div style="flex:1;height:5px;border:1px solid var(--color-divider);background:repeating-linear-gradient(135deg,rgba(29,31,32,.10) 0 2px,transparent 2px 5px)"></div><span style="font-family:ui-monospace,Menlo,monospace;font-size:10px;color:var(--color-neutral-500)">100%</span></div></td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px dashed var(--color-neutral-400);padding:2px 7px;color:var(--color-neutral-500)">禁用</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-neutral-500)">—</td><td><span class="tag tag-neutral">已退役</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">履历</button></td></tr>
|
|
</tbody>
|
|
</table>
|
|
<div style="font-size:11px;color:var(--color-neutral-600)">危险任务需序列号 + BDF/设备路径 + 允许标签三信号一致才执行 · 命中系统盘立即拒绝</div>
|
|
</div>
|
|
</sc-if>
|
|
|
|
<sc-if value="{{ tFw }}" hint-placeholder-val="{{ false }}">
|
|
<div class="card blueprint" style-hover="border-color:var(--color-accent-400);box-shadow:var(--shadow-sm)" style="transition:border-color .15s ease,box-shadow .15s ease;padding:14px 16px;gap:8px;animation:omIn .35s cubic-bezier(.2,.7,.2,1) both" data-screen-label="资产·固件">
|
|
<i class="corner tl"></i><i class="corner tr"></i><i class="corner bl"></i><i class="corner br"></i>
|
|
<table class="table">
|
|
<thead><tr><th>版本</th><th>SHA256</th><th>来源</th><th>兼容型号</th><th>刷写工具</th><th>审批</th><th></th></tr></thead>
|
|
<tbody>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">FW_3.3.0-rc3</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">9f2c…41aa</td><td style="font-size:12.5px">固件组 CI #4471</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">NV-E1T92 / E3T84</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">vendor_flash 2.4</td><td><span style="font-size:10.5px;padding:2px 9px;border:1px solid #b03d2e;color:#8a2e22">待审批</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">审批</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">FW_3.3.0-rc2</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">7d18…c930</td><td style="font-size:12.5px">固件组 CI #4402</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">NV-E1T92</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">vendor_flash 2.4</td><td><span class="tag tag-accent">已审批</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">详情</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">FW_3.3.0-rc1</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">55ab…0f77</td><td style="font-size:12.5px">固件组 CI #4359</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">NV-E1T92</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">vendor_flash 2.4</td><td><span class="tag tag-neutral">已归档</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">详情</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">FW_3.2.1</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">4bd1…08ce</td><td style="font-size:12.5px">发布库 · 量产基线</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">NV-E1T92 / E960</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">vendor_flash 2.4</td><td><span class="tag tag-accent">已审批 · 基线</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">详情</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">FW_3.1.9</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">e0c2…7b14</td><td style="font-size:12.5px">发布库</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">NV-E1T92 / E960</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">vendor_flash 2.3</td><td><span class="tag tag-neutral">已归档</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">详情</button></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">FW_2.9.4-eng</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">1a9d…3c58</td><td style="font-size:12.5px">工程调试版</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">NV-E3T84</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">vendor_flash 2.4</td><td><span style="font-size:10.5px;padding:2px 9px;border:1px dashed var(--color-neutral-500);color:var(--color-neutral-700)">仅实验工位</span></td><td><button class="btn btn-ghost" style="font-size:11.5px">详情</button></td></tr>
|
|
</tbody>
|
|
</table>
|
|
<div style="font-size:11px;color:var(--color-neutral-600)">固件哈希在登记与刷写前双重校验 · 刷写命令只能来自签名模板</div>
|
|
</div>
|
|
</sc-if>
|
|
|
|
<sc-if value="{{ tTool }}" hint-placeholder-val="{{ false }}">
|
|
<div class="card blueprint" style-hover="border-color:var(--color-accent-400);box-shadow:var(--shadow-sm)" style="transition:border-color .15s ease,box-shadow .15s ease;padding:14px 16px;gap:8px;animation:omIn .35s cubic-bezier(.2,.7,.2,1) both" data-screen-label="资产·工具连接器">
|
|
<i class="corner tl"></i><i class="corner tr"></i><i class="corner bl"></i><i class="corner br"></i>
|
|
<table class="table">
|
|
<thead><tr><th>连接器</th><th>接入方式</th><th>版本</th><th>risk_level</th><th>healthcheck</th><th>复用</th><th></th></tr></thead>
|
|
<tbody>
|
|
<tr><td style="font-size:13px;font-weight:500">nvme-cli</td><td><span class="tag tag-neutral">CLI</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">2.9.1 · conn 1.2</td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 7px;color:var(--color-neutral-600)">只读+管理</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-accent-700)">✓ 4m 前</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">3 客户</td><td><button class="btn btn-ghost" style="font-size:11.5px">配置</button></td></tr>
|
|
<tr><td style="font-size:13px;font-weight:500">fio</td><td><span class="tag tag-neutral">CLI</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">3.36 · conn 1.4</td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;background:var(--color-neutral-200);padding:2px 7px">写入</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-accent-700)">✓ 4m 前</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">3 客户</td><td><button class="btn btn-ghost" style="font-size:11.5px">配置</button></td></tr>
|
|
<tr><td style="font-size:13px;font-weight:500">vendor_flash(私有刷写)</td><td><span class="tag tag-neutral">CLI</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">2.4 · conn 0.9</td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;background:var(--color-accent-800);color:#f2f2f3;padding:2px 7px">固件更新</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-accent-700)">✓ 12m 前</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">本客户</td><td><button class="btn btn-ghost" style="font-size:11.5px">配置</button></td></tr>
|
|
<tr style="background:#f7e9e6">
|
|
<td style="font-size:13px;font-weight:500">MPTool 量产工具</td><td><span style="font-size:10.5px;padding:2px 9px;border:1px solid #b03d2e;color:#8a2e22">GUI-wrap</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">5.1 · pywinauto 0.3</td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid #b03d2e;color:#8a2e22;padding:2px 7px">格式化+刷写</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:#8a2e22">受控例外</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">本客户</td><td><button class="btn btn-ghost" style="font-size:11.5px">风险预案</button></td></tr>
|
|
<tr><td style="font-size:13px;font-weight:500">smartctl</td><td><span class="tag tag-neutral">CLI</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">7.4 · conn 1.1</td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 7px;color:var(--color-neutral-600)">只读</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-accent-700)">✓ 4m 前</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">3 客户</td><td><button class="btn btn-ghost" style="font-size:11.5px">配置</button></td></tr>
|
|
<tr><td style="font-size:13px;font-weight:500">PyNVMe3 执行器</td><td><span class="tag tag-accent">Python API</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">24.6 · conn 0.7β</td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;background:var(--color-neutral-200);padding:2px 7px">写入</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-accent-700)">✓ 1h 前</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">2 客户</td><td><button class="btn btn-ghost" style="font-size:11.5px">配置</button></td></tr>
|
|
<tr><td style="font-size:13px;font-weight:500">SANBlaze REST 桥</td><td><span class="tag tag-accent">REST API</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">10.5 · conn 0.5β</td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;background:var(--color-neutral-200);padding:2px 7px">写入+注错</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-neutral-500)">未接入设备</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">1 客户</td><td><button class="btn btn-ghost" style="font-size:11.5px">配置</button></td></tr>
|
|
<tr><td style="font-size:13px;font-weight:500">blktrace 采集</td><td><span class="tag tag-neutral">CLI</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">1.3 · conn 1.0</td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 7px;color:var(--color-neutral-600)">只读</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-accent-700)">✓ 4m 前</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">2 客户</td><td><button class="btn btn-ghost" style="font-size:11.5px">配置</button></td></tr>
|
|
<tr><td style="font-size:13px;font-weight:500">私有日志抓取 log_dump</td><td><span class="tag tag-neutral">CLI</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">1.8 · conn 0.9</td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 7px;color:var(--color-neutral-600)">只读</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-accent-700)">✓ 9m 前</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">本客户</td><td><button class="btn btn-ghost" style="font-size:11.5px">配置</button></td></tr>
|
|
</tbody>
|
|
</table>
|
|
<div style="font-size:11px;color:var(--color-neutral-600)">连接器接口:discover / precheck / execute / collect / cancel / health / normalize_result · 输入输出受 JSON Schema 约束 · 复用率目标 >60%</div>
|
|
</div>
|
|
</sc-if>
|
|
|
|
<sc-if value="{{ tOob }}" hint-placeholder-val="{{ false }}">
|
|
<div class="card blueprint" style-hover="border-color:var(--color-accent-400);box-shadow:var(--shadow-sm)" style="transition:border-color .15s ease,box-shadow .15s ease;padding:14px 16px;gap:8px;animation:omIn .35s cubic-bezier(.2,.7,.2,1) both" data-screen-label="资产·带外控制器">
|
|
<i class="corner tl"></i><i class="corner tr"></i><i class="corner bl"></i><i class="corner br"></i>
|
|
<table class="table">
|
|
<thead><tr><th>控制器</th><th>硬件</th><th>固件</th><th>通道能力</th><th>独立心跳</th><th>配对主机</th><th>状态</th></tr></thead>
|
|
<tbody>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">OOB-01</td><td style="font-size:12.5px">RPi 5 + 光耦 ATX 板</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">oob-agent 0.9.4</td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">PWR</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">RST</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">HDMI</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">温度</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-accent-700)">1s</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">HOST-A01</td><td><span class="tag tag-accent">在线</span></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">OOB-02</td><td style="font-size:12.5px">RPi 5 + 光耦 ATX 板</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">oob-agent 0.9.4</td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">PWR</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">RST</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">温度</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-accent-700)">1s</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">HOST-A02</td><td><span class="tag tag-accent">在线</span></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">OOB-03</td><td style="font-size:12.5px">JetKVM + ATX 扩展</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">adapter 0.4</td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">PWR</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">RST</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">KVM画面</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-accent-700)">1s</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">HOST-L02</td><td><span style="font-size:10.5px;padding:3px 9px;background:var(--color-accent-200);color:var(--color-accent-800);animation:omPulse 1.2s infinite">执行 L3</span></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">OOB-04</td><td style="font-size:12.5px">PiKVM v4 + ATX</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">adapter 0.4</td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">PWR</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">RST</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">KVM画面</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">串口</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-accent-700)">2s</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">HOST-L01</td><td><span class="tag tag-accent">在线</span></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700">OOB-05</td><td style="font-size:12.5px">RPi CM4 工业载板</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">oob-agent 0.9.4</td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">PWR</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">RST</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">AC</span> <span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px solid var(--color-divider);padding:2px 6px">温度</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--color-accent-700)">1s</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">HOST-A03</td><td><span class="tag tag-accent">在线</span></td></tr>
|
|
<tr><td style="font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:700;color:var(--color-neutral-600)">OOB-06</td><td style="font-size:12.5px;color:var(--color-neutral-600)">RPi 5 + 光耦 ATX 板</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">0.9.4 → 0.9.5</td><td><span style="font-family:ui-monospace,Menlo,monospace;font-size:9.5px;border:1px dashed var(--color-neutral-400);padding:2px 6px;color:var(--color-neutral-500)">升级中</span></td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">—</td><td style="font-family:ui-monospace,Menlo,monospace;font-size:11px">HOST-W02</td><td><span style="font-size:10.5px;padding:3px 9px;border:1px solid var(--color-divider);color:var(--color-neutral-600);background:repeating-linear-gradient(135deg,rgba(29,31,32,.10) 0 2px,transparent 2px 5px)">维护</span></td></tr>
|
|
</tbody>
|
|
</table>
|
|
<div style="font-size:11px;color:var(--color-neutral-600)">带外控制器走独立网络与独立心跳,用于区分主机崩溃与网络故障 · 兼容任意商品 KVM/PDU 作执行器</div>
|
|
</div>
|
|
</sc-if>
|
|
|
|
<sc-if value="{{ regOpen }}" hint-placeholder-val="{{ false }}">
|
|
<div class="dialog-backdrop" style="z-index:60;animation:omIn .22s ease both">
|
|
<div class="dialog blueprint elev-lg" style="background:var(--color-bg)">
|
|
<i class="corner tl"></i><i class="corner tr"></i><i class="corner bl"></i><i class="corner br"></i>
|
|
<span class="dialog-title">登记 DUT</span>
|
|
<div style="display:flex;flex-direction:column;gap:10px">
|
|
<div class="field"><label>序列号(将与 BDF/设备路径交叉校验)</label><input class="input" placeholder="S6XN…"></div>
|
|
<div style="display:grid;grid-template-columns:1fr 1fr;gap:10px">
|
|
<div class="field"><label>型号</label><select class="input"><option>NV-E1T92</option><option>NV-E3T84</option><option>NV-E960</option></select></div>
|
|
<div class="field"><label>生命周期</label><select class="input"><option>测试专用</option><option>入库检</option><option>只读观察</option></select></div>
|
|
</div>
|
|
<div class="field"><label>允许动作</label>
|
|
<div style="display:flex;gap:14px;font-size:13px;padding-top:2px">
|
|
<label style="display:flex;gap:6px;align-items:center;cursor:pointer"><input type="checkbox" checked style="accent-color:#5980a6">破坏性写入</label>
|
|
<label style="display:flex;gap:6px;align-items:center;cursor:pointer"><input type="checkbox" checked style="accent-color:#5980a6">固件刷写</label>
|
|
<label style="display:flex;gap:6px;align-items:center;cursor:pointer"><input type="checkbox" style="accent-color:#5980a6">格式化/Sanitize</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="dialog-actions">
|
|
<button class="btn btn-secondary" onClick="{{ closeReg }}">取消</button>
|
|
<button class="btn btn-primary" onClick="{{ closeReg }}">登记并生成资产标签</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</sc-if>
|
|
</div>
|
|
</x-dc>
|
|
<script type="text/x-dc" data-dc-script data-props="{"$preview":{"width":1440,"height":820}}">
|
|
class Component extends DCLogic {
|
|
state = { tab: 'dut', regOpen: false };
|
|
renderVals() {
|
|
const t = this.state.tab;
|
|
const set = v => () => this.setState({ tab: v });
|
|
return {
|
|
tHost: t === 'host', tDut: t === 'dut', tFw: t === 'fw', tTool: t === 'tool', tOob: t === 'oob',
|
|
setHost: set('host'), setDut: set('dut'), setFw: set('fw'), setTool: set('tool'), setOob: set('oob'),
|
|
regOpen: this.state.regOpen,
|
|
openReg: () => this.setState({ regOpen: true }),
|
|
closeReg: () => this.setState({ regOpen: false })
|
|
};
|
|
}
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|