更新: 97 个文件 - 2026-03-17 02:30:01

这个提交包含在:
hao
2026-03-17 02:30:01 -07:00
父节点 4e3b4bf107
当前提交 f95f14d3d8
修改 97 个文件,包含 3298 行新增1193 行删除

查看文件

@@ -4,7 +4,7 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>授权攻防实验工作台</title>
<link rel="stylesheet" href="./assets/styles.css">
<link rel="stylesheet" href="/assets/styles.css">
</head>
<body>
<div class="grid-bg" aria-hidden="true"></div>
@@ -16,7 +16,7 @@
<div class="hero-top">
<div class="hero-copy">
<div class="hero-eyebrow">
<svg class="icon"><use href="./assets/icons.svg#spark"></use></svg>
<svg class="icon"><use href="/assets/icons.svg#spark"></use></svg>
<span>授权攻防实验工作台</span>
</div>
<h1>本地攻防实证工作台</h1>
@@ -28,7 +28,7 @@
<div class="hero-actions">
<button id="refreshDashboard" class="button button-primary" type="button">
<svg class="icon"><use href="./assets/icons.svg#refresh"></use></svg>
<svg class="icon"><use href="/assets/icons.svg#refresh"></use></svg>
<span>立即刷新</span>
</button>
<label class="toggle-card">
@@ -39,27 +39,27 @@
</span>
</label>
<div id="syncState" class="sync-state">
<svg class="icon icon-sync"><use href="./assets/icons.svg#sync"></use></svg>
<svg class="icon icon-sync"><use href="/assets/icons.svg#sync"></use></svg>
<div>
<strong>启动中</strong>
<span>正在载入本地生成数据</span>
</div>
</div>
<div class="hero-links">
<a class="button button-secondary" href="./docs/project-features.html" target="_blank" rel="noreferrer">
<svg class="icon"><use href="./assets/icons.svg#docs"></use></svg>
<a class="button button-secondary" href="/docs/project-features.html" target="_blank" rel="noreferrer">
<svg class="icon"><use href="/assets/icons.svg#docs"></use></svg>
<span>功能文档</span>
</a>
<a class="button button-secondary" href="./docs/frontend-dashboard-design.html" target="_blank" rel="noreferrer">
<svg class="icon"><use href="./assets/icons.svg#playbook"></use></svg>
<a class="button button-secondary" href="/docs/frontend-dashboard-design.html" target="_blank" rel="noreferrer">
<svg class="icon"><use href="/assets/icons.svg#playbook"></use></svg>
<span>前端设计</span>
</a>
<a class="button button-secondary" href="./docs/architecture-library.html" target="_blank" rel="noreferrer">
<svg class="icon"><use href="./assets/icons.svg#systems"></use></svg>
<a class="button button-secondary" href="/docs/architecture-library.html" target="_blank" rel="noreferrer">
<svg class="icon"><use href="/assets/icons.svg#systems"></use></svg>
<span>架构镜像</span>
</a>
<a class="button button-secondary" href="./legacy/index.html" target="_blank" rel="noreferrer">
<svg class="icon"><use href="./assets/icons.svg#legacy"></use></svg>
<a class="button button-secondary" href="/legacy/index.html" target="_blank" rel="noreferrer">
<svg class="icon"><use href="/assets/icons.svg#legacy"></use></svg>
<span>旧版工作台</span>
</a>
</div>
@@ -67,85 +67,16 @@
</div>
<div id="metricCards" class="metrics-row"></div>
<nav id="sectionNav" class="section-nav" aria-label="工作台板块导航"></nav>
<div id="topMenus" class="top-menus" aria-label="顶部筛选与分类菜单"></div>
</header>
<main class="main-container">
<aside class="sidebar">
<section class="sidebar-section">
<div class="section-header">
<span>
<svg class="icon"><use href="./assets/icons.svg#filter"></use></svg>
筛选器
</span>
<span id="runCount" class="section-badge">0 条</span>
</div>
<div class="filter-group">
<label class="field">
<span>搜索</span>
<div class="search-box">
<svg class="icon"><use href="./assets/icons.svg#search"></use></svg>
<input id="searchInput" type="text" placeholder="搜索 run id、advisory、标题、概要">
</div>
</label>
<label class="field">
<span>系统</span>
<select id="systemFilter" class="filter-select">
<option value="">全部系统</option>
</select>
</label>
<label class="field">
<span>状态</span>
<select id="statusFilter" class="filter-select">
<option value="">全部状态</option>
</select>
</label>
<label class="field">
<span>Profile</span>
<select id="profileFilter" class="filter-select">
<option value="">全部复现档案</option>
</select>
</label>
</div>
</section>
<section class="sidebar-section">
<div class="section-header">
<span>
<svg class="icon"><use href="./assets/icons.svg#systems"></use></svg>
系统概览
</span>
</div>
<div id="systemStats" class="system-stats"></div>
</section>
<section class="sidebar-section">
<div class="section-header">
<span>
<svg class="icon"><use href="./assets/icons.svg#failure"></use></svg>
最近失败
</span>
</div>
<div id="recentFailures" class="failure-list"></div>
</section>
<section class="sidebar-section sidebar-section-fill">
<div class="section-header">
<span>
<svg class="icon"><use href="./assets/icons.svg#queue"></use></svg>
运行队列
</span>
</div>
<div id="runQueue" class="run-list"></div>
</section>
</aside>
<aside id="sidebar" class="sidebar"></aside>
<section id="detailWorkspace" class="workspace">
<div class="workspace-empty">
<svg class="icon icon-xl"><use href="./assets/icons.svg#shield"></use></svg>
<svg class="icon icon-xl"><use href="/assets/icons.svg#shield"></use></svg>
<h2>选择一个运行</h2>
<p>从左侧队列选择 run,即可查看时间线、证据、日志、来源、原始 JSON 和当前架构库。</p>
</div>
@@ -155,19 +86,19 @@
<footer class="dashboard-footer">
<div class="footer-left">
<span class="footer-note">
<svg class="icon"><use href="./assets/icons.svg#source"></use></svg>
<svg class="icon"><use href="/assets/icons.svg#source"></use></svg>
当前 UI 壳层来自本地化 Lovart 模板副本,运行期不依赖任何远端 HTML、字体或图标 CDN。
</span>
</div>
<div class="footer-links">
<a href="./docs/design-source.html" target="_blank" rel="noreferrer">设计来源</a>
<a href="./assets/design-source.json" target="_blank" rel="noreferrer">Manifest JSON</a>
<a href="./architecture.json" target="_blank" rel="noreferrer">架构 JSON</a>
<a href="./summary.json" target="_blank" rel="noreferrer">摘要 JSON</a>
<a href="/docs/design-source.html" target="_blank" rel="noreferrer">设计来源</a>
<a href="/assets/design-source.json" target="_blank" rel="noreferrer">Manifest JSON</a>
<a href="/architecture.json" target="_blank" rel="noreferrer">架构 JSON</a>
<a href="/summary.json" target="_blank" rel="noreferrer">摘要 JSON</a>
</div>
</footer>
</div>
<script src="./assets/app.js"></script>
<script src="/assets/app.js"></script>
</body>
</html>