Add files via upload

This commit is contained in:
公明 authored and GitHub committed 2026-07-09 16:47:00 +08:00
1 parent e092f6c590
commit 878cf158b0
8 files changed
+536 -54

No files matched your search

+35 -9
View File
@@ -468,9 +468,26 @@
<div class="dashboard-grid">
<div class="dashboard-main">
<section class="dashboard-section dashboard-section-chart">
<div class="dashboard-section-header">
<div class="dashboard-section-header dashboard-section-header--severity">
<h3 class="dashboard-section-title" data-i18n="dashboard.severityDistribution">漏洞严重程度分布</h3>
<a class="dashboard-section-link" onclick="switchPage('vulnerabilities')" data-i18n="dashboard.viewAll">查看全部 →</a>
<div class="dashboard-section-actions">
<div class="dashboard-severity-status-filter" id="dashboard-severity-status-filter" data-value="">
<button type="button" class="dashboard-severity-status-filter-btn" id="dashboard-severity-status-filter-btn" aria-haspopup="listbox" aria-expanded="false" aria-controls="dashboard-severity-status-filter-menu" data-i18n="dashboard.statusFilter" data-i18n-attr="title" data-i18n-skip-text="true" title="状态筛选" onclick="toggleDashboardSeverityStatusFilterMenu(event)">
<span class="dashboard-severity-status-filter-dot" aria-hidden="true"></span>
<span class="dashboard-severity-status-filter-text" id="dashboard-severity-status-filter-text" data-i18n="dashboard.allStatuses">全部状态</span>
<span class="dashboard-severity-status-filter-caret" aria-hidden="true"></span>
</button>
<div class="dashboard-severity-status-filter-menu" id="dashboard-severity-status-filter-menu" role="listbox" aria-labelledby="dashboard-severity-status-filter-btn" hidden>
<button type="button" class="dashboard-severity-status-filter-option" role="option" data-status="" onclick="selectDashboardSeverityStatusFilter('', event)"><span data-i18n="dashboard.allStatuses">全部状态</span></button>
<button type="button" class="dashboard-severity-status-filter-option" role="option" data-status="open" onclick="selectDashboardSeverityStatusFilter('open', event)"><span data-i18n="dashboard.statusOpen">待处理</span></button>
<button type="button" class="dashboard-severity-status-filter-option" role="option" data-status="confirmed" onclick="selectDashboardSeverityStatusFilter('confirmed', event)"><span data-i18n="dashboard.statusConfirmed">已确认</span></button>
<button type="button" class="dashboard-severity-status-filter-option" role="option" data-status="fixed" onclick="selectDashboardSeverityStatusFilter('fixed', event)"><span data-i18n="dashboard.statusFixed">已修复</span></button>
<button type="button" class="dashboard-severity-status-filter-option" role="option" data-status="ignored" onclick="selectDashboardSeverityStatusFilter('ignored', event)"><span data-i18n="dashboard.statusIgnored">已忽略</span></button>
<button type="button" class="dashboard-severity-status-filter-option" role="option" data-status="false_positive" onclick="selectDashboardSeverityStatusFilter('false_positive', event)"><span data-i18n="dashboard.statusFalsePositive">误报</span></button>
</div>
</div>
<a class="dashboard-section-link" onclick="openDashboardSeverityVulnerabilities()" data-i18n="dashboard.viewAll">查看全部 →</a>
</div>
</div>
<div class="dashboard-severity-wrap">
<!-- 风险概览卡:填充 donut 左侧留白;提供「结论性」洞察(风险等级/加权分/待处理计数/最新时间),
@@ -558,7 +575,7 @@
<!-- 处置状态 + 修复进度(利用 by_status 数据,避免下半部分留白) -->
<div class="dashboard-severity-status">
<div class="dashboard-severity-status-grid">
<div class="dashboard-severity-status-cell s-open" role="button" tabindex="0" onclick="switchPage('vulnerabilities')" onkeydown="if(event.key==='Enter'||event.key===' ') { event.preventDefault(); switchPage('vulnerabilities'); }">
<div class="dashboard-severity-status-cell s-open" role="button" tabindex="0" onclick="navigateToVulnerabilitiesWithFilter({status:'open'})" onkeydown="if(event.key==='Enter'||event.key===' ') { event.preventDefault(); navigateToVulnerabilitiesWithFilter({status:'open'}); }">
<span class="dashboard-severity-status-icon" aria-hidden="true">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
</span>
@@ -567,7 +584,7 @@
<span class="dashboard-severity-status-label" data-i18n="dashboard.statusOpen">待处理</span>
</div>
</div>
<div class="dashboard-severity-status-cell s-confirmed" role="button" tabindex="0" onclick="switchPage('vulnerabilities')" onkeydown="if(event.key==='Enter'||event.key===' ') { event.preventDefault(); switchPage('vulnerabilities'); }">
<div class="dashboard-severity-status-cell s-confirmed" role="button" tabindex="0" onclick="navigateToVulnerabilitiesWithFilter({status:'confirmed'})" onkeydown="if(event.key==='Enter'||event.key===' ') { event.preventDefault(); navigateToVulnerabilitiesWithFilter({status:'confirmed'}); }">
<span class="dashboard-severity-status-icon" aria-hidden="true">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><polyline points="22 4 12 14.01 9 11.01"/></svg>
</span>
@@ -576,7 +593,7 @@
<span class="dashboard-severity-status-label" data-i18n="dashboard.statusConfirmed">已确认</span>
</div>
</div>
<div class="dashboard-severity-status-cell s-fixed" role="button" tabindex="0" onclick="switchPage('vulnerabilities')" onkeydown="if(event.key==='Enter'||event.key===' ') { event.preventDefault(); switchPage('vulnerabilities'); }">
<div class="dashboard-severity-status-cell s-fixed" role="button" tabindex="0" onclick="navigateToVulnerabilitiesWithFilter({status:'fixed'})" onkeydown="if(event.key==='Enter'||event.key===' ') { event.preventDefault(); navigateToVulnerabilitiesWithFilter({status:'fixed'}); }">
<span class="dashboard-severity-status-icon" aria-hidden="true">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><polyline points="9 12 11 14 15 10"/></svg>
</span>
@@ -585,7 +602,16 @@
<span class="dashboard-severity-status-label" data-i18n="dashboard.statusFixed">已修复</span>
</div>
</div>
<div class="dashboard-severity-status-cell s-fp" role="button" tabindex="0" onclick="switchPage('vulnerabilities')" onkeydown="if(event.key==='Enter'||event.key===' ') { event.preventDefault(); switchPage('vulnerabilities'); }">
<div class="dashboard-severity-status-cell s-ignored" role="button" tabindex="0" onclick="navigateToVulnerabilitiesWithFilter({status:'ignored'})" onkeydown="if(event.key==='Enter'||event.key===' ') { event.preventDefault(); navigateToVulnerabilitiesWithFilter({status:'ignored'}); }">
<span class="dashboard-severity-status-icon" aria-hidden="true">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4l16 16"/><path d="M10.58 10.58A3 3 0 0 0 12 15a3 3 0 0 0 2.12-.88"/><path d="M9.88 4.24A9.77 9.77 0 0 1 12 4c7 0 10 8 10 8a18.5 18.5 0 0 1-2.5 3.66"/><path d="M6.61 6.61C3.98 8.38 2 12 2 12s3 8 10 8a9.86 9.86 0 0 0 5.39-1.61"/></svg>
</span>
<div class="dashboard-severity-status-text">
<span class="dashboard-severity-status-value" id="dashboard-status-ignored">0</span>
<span class="dashboard-severity-status-label" data-i18n="dashboard.statusIgnored">已忽略</span>
</div>
</div>
<div class="dashboard-severity-status-cell s-fp" role="button" tabindex="0" onclick="navigateToVulnerabilitiesWithFilter({status:'false_positive'})" onkeydown="if(event.key==='Enter'||event.key===' ') { event.preventDefault(); navigateToVulnerabilitiesWithFilter({status:'false_positive'}); }">
<span class="dashboard-severity-status-icon" aria-hidden="true">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="4.93" y1="4.93" x2="19.07" y2="19.07"/></svg>
</span>
@@ -1978,8 +2004,8 @@
<option value="open" data-i18n="vulnerabilityPage.statusOpen">待处理</option>
<option value="confirmed" data-i18n="vulnerabilityPage.statusConfirmed">已确认</option>
<option value="fixed" data-i18n="vulnerabilityPage.statusFixed">已修复</option>
<option value="false_positive" data-i18n="vulnerabilityPage.statusFalsePositive">误报</option>
<option value="ignored" data-i18n="vulnerabilityPage.statusIgnored">已忽略</option>
<option value="false_positive" data-i18n="vulnerabilityPage.statusFalsePositive">误报</option>
</select>
</label>
</div>
@@ -2178,8 +2204,8 @@
<option value="open" data-i18n="vulnerabilityPage.statusOpen">待处理</option>
<option value="confirmed" data-i18n="vulnerabilityPage.statusConfirmed">已确认</option>
<option value="fixed" data-i18n="vulnerabilityPage.statusFixed">已修复</option>
<option value="false_positive" data-i18n="vulnerabilityPage.statusFalsePositive">误报</option>
<option value="ignored" data-i18n="vulnerabilityPage.statusIgnored">已忽略</option>
<option value="false_positive" data-i18n="vulnerabilityPage.statusFalsePositive">误报</option>
</select>
</label>
<div class="vulnerability-filter-actions">
@@ -4983,8 +5009,8 @@
<option value="open" data-i18n="vulnerabilityModal.statusOpen">待处理</option>
<option value="confirmed" data-i18n="vulnerabilityModal.statusConfirmed">已确认</option>
<option value="fixed" data-i18n="vulnerabilityModal.statusFixed">已修复</option>
<option value="false_positive" data-i18n="vulnerabilityModal.statusFalsePositive">误报</option>
<option value="ignored" data-i18n="vulnerabilityModal.statusIgnored">已忽略</option>
<option value="false_positive" data-i18n="vulnerabilityModal.statusFalsePositive">误报</option>
</select>
</div>
<div class="form-group">