Wave 2.1: 返工黑屏/安装进度/官方配置三层/文档深度/真机列表

老板实测 5 条修复:DiagTab Hooks 黑屏、安装三阶段进度、配置按官方字段三层分组、FR-09 中文文档、detectCliAll 接入列表页。
This commit is contained in:
总工
2026-08-25 11:57:10 +08:00
parent 01996a80fe
commit a2fd5e369b
23 changed files with 1821 additions and 198 deletions
+390
View File
@@ -1144,6 +1144,7 @@ button {
.overview .overview-mid {
grid-column: 1 / 3;
grid-row: 2;
margin-bottom: 0;
}
@@ -1153,6 +1154,7 @@ button {
.overview .env-panel {
grid-column: 3;
grid-row: 2;
margin-top: 0;
}
}
@@ -1815,3 +1817,391 @@ button {
.save-error {
color: var(--ad-danger);
}
/* ============================================================
* Wave 2.1:安装进度 / 配置校验 / 详情信息 / 目录真机状态 / 我的 CLI
* 全部颜色来自 tokens/
* ============================================================ */
/* ---------- 执行进度三阶段(安装弹窗) ---------- */
.run-body {
display: flex;
flex-direction: column;
gap: var(--ad-space-4);
}
.run-phases {
display: flex;
align-items: center;
gap: var(--ad-space-2);
}
.run-phase {
display: flex;
align-items: center;
gap: var(--ad-space-2);
color: var(--ad-text-3);
font-size: var(--ad-text-s-size);
}
.run-phase-dot {
display: inline-flex;
align-items: center;
justify-content: center;
width: 20px;
height: 20px;
border-radius: 50%;
border: 1px solid var(--ad-border);
font-size: var(--ad-text-xs-size);
}
.run-phase.done {
color: var(--ad-success);
}
.run-phase.done .run-phase-dot {
border-color: var(--ad-success);
color: var(--ad-success);
}
.run-phase.active {
color: var(--ad-primary);
}
.run-phase.active .run-phase-dot {
border-color: var(--ad-primary);
color: var(--ad-primary);
box-shadow: var(--ad-glow-primary);
}
.run-result {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: var(--ad-space-2);
padding: var(--ad-space-3) var(--ad-space-4);
border-radius: var(--ad-radius-m);
font-size: var(--ad-text-s-size);
}
.run-result.success {
color: var(--ad-success);
border: 1px solid var(--ad-border);
background: var(--ad-bg-1);
}
.run-result.failed {
color: var(--ad-danger);
border: 1px solid var(--ad-border);
background: var(--ad-bg-1);
}
.run-result-version {
color: var(--ad-text-2);
font-family: var(--ad-font-mono);
font-size: var(--ad-text-xs-size);
word-break: break-all;
}
/* ---------- 详情概览:基本信息表 + 官方链接 ---------- */
.detail-meta {
display: flex;
flex-direction: column;
gap: var(--ad-space-2);
}
.detail-meta-row {
display: flex;
align-items: center;
gap: var(--ad-space-3);
}
.detail-meta-label {
width: 88px;
flex-shrink: 0;
color: var(--ad-text-2);
font-size: var(--ad-text-s-size);
}
.detail-meta-value {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: var(--ad-space-2);
min-width: 0;
color: var(--ad-text-1);
font-size: var(--ad-text-m-size);
}
.detail-links {
display: flex;
gap: var(--ad-space-4);
}
.detail-link {
color: var(--ad-primary);
font-size: var(--ad-text-m-size);
text-decoration: none;
}
.detail-link:hover {
text-decoration: underline;
}
.detail-doc-footer {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: var(--ad-space-3);
padding-top: var(--ad-space-4);
border-top: 1px solid var(--ad-border);
}
.detail-doc-meta {
color: var(--ad-text-3);
font-size: var(--ad-text-xs-size);
}
/* ---------- 配置表单:下拉 + 官方链接 + 校验结果 ---------- */
.field-select {
width: 100%;
height: 36px;
padding: 0 var(--ad-space-3);
border: 1px solid var(--ad-border);
border-radius: var(--ad-radius-m);
background: var(--ad-bg-0);
color: var(--ad-text-1);
font-size: var(--ad-text-m-size);
outline: none;
}
.field-select:focus {
border-color: var(--ad-primary);
box-shadow: var(--ad-glow-primary);
}
.field-docs-link {
display: inline-flex;
align-items: center;
gap: 2px;
margin-left: var(--ad-space-2);
color: var(--ad-primary);
text-decoration: none;
}
.field-docs-link:hover {
text-decoration: underline;
}
.verify-ok {
display: inline-flex;
align-items: flex-start;
gap: var(--ad-space-1);
color: var(--ad-success);
font-size: var(--ad-text-xs-size);
}
.verify-fail {
display: inline-flex;
align-items: flex-start;
gap: var(--ad-space-1);
color: var(--ad-danger);
font-size: var(--ad-text-xs-size);
}
/* ---------- 目录真机版本位 ---------- */
.catalog-version {
display: inline-flex;
align-items: center;
gap: var(--ad-space-2);
}
/* ---------- 我的 CLI 列表 ---------- */
.mycli {
max-width: var(--ad-frame-max);
margin: 0 auto;
}
.mycli-list {
padding: var(--ad-space-4);
}
.mycli-row {
display: flex;
align-items: center;
gap: var(--ad-space-3);
width: 100%;
padding: var(--ad-space-3) var(--ad-space-2);
border: none;
border-bottom: 1px solid var(--ad-border);
background: none;
cursor: pointer;
text-align: left;
}
.mycli-row:last-child {
border-bottom: none;
}
.mycli-row:hover {
background: var(--ad-bg-3);
}
.mycli-row-main {
display: flex;
flex-direction: column;
gap: 2px;
min-width: 0;
}
.mycli-row-name {
color: var(--ad-text-1);
font-size: var(--ad-text-m-size);
}
.mycli-row-version {
display: inline-flex;
align-items: center;
gap: var(--ad-space-2);
color: var(--ad-text-2);
font-size: var(--ad-text-xs-size);
}
.mycli-row-path {
flex: 1;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.mycli-auth {
display: inline-flex;
align-items: center;
gap: var(--ad-space-2);
color: var(--ad-text-2);
font-size: var(--ad-text-xs-size);
white-space: nowrap;
}
.mycli-row-arrow {
color: var(--ad-text-3);
}
/* ---------- 错误边界(防黑屏) ---------- */
.crash-screen {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: var(--ad-space-4);
padding: var(--ad-space-8);
}
.crash-title {
font-size: var(--ad-text-xl-size);
font-weight: var(--ad-text-xl-weight);
}
.crash-desc {
color: var(--ad-text-2);
font-size: var(--ad-text-m-size);
}
.crash-detail {
color: var(--ad-text-3);
font-family: var(--ad-font-mono);
font-size: var(--ad-text-xs-size);
word-break: break-all;
}
/* ---------- 配置表单三层分组(授权/常用/高级) ---------- */
.config-section {
display: flex;
flex-direction: column;
gap: var(--ad-space-3);
}
.config-section-title {
font-size: var(--ad-text-m-size);
font-weight: var(--ad-text-m-weight);
color: var(--ad-text-1);
}
.auth-modes {
list-style: none;
display: flex;
flex-direction: column;
gap: var(--ad-space-2);
padding: var(--ad-space-3);
margin: 0;
border: 1px solid var(--ad-border);
border-radius: var(--ad-radius-m);
background: var(--ad-bg-1);
}
.auth-mode {
display: flex;
align-items: flex-start;
flex-wrap: wrap;
gap: var(--ad-space-2);
}
.auth-mode-name {
color: var(--ad-primary);
font-size: var(--ad-text-s-size);
white-space: nowrap;
}
.auth-mode-note {
flex: 1;
min-width: 0;
color: var(--ad-text-2);
font-size: var(--ad-text-s-size);
}
.auth-mode-cmd {
color: var(--ad-text-3);
}
.config-advanced-toggle {
display: flex;
align-items: center;
gap: var(--ad-space-2);
padding: 0;
border: none;
background: none;
cursor: pointer;
text-align: left;
}
.advanced-badge {
display: inline-flex;
align-items: center;
height: 18px;
padding: 0 var(--ad-space-2);
border-radius: var(--ad-radius-s);
background: var(--ad-attention);
color: var(--ad-bg-0);
font-size: var(--ad-text-xs-size);
}
.advanced-chevron {
color: var(--ad-text-2);
transition: transform var(--ad-dur-fast) var(--ad-ease-out);
}
.advanced-chevron.open {
transform: rotate(180deg);
}
.advanced-hint {
color: var(--ad-text-3);
font-size: var(--ad-text-xs-size);
}
.advanced-fields {
display: flex;
flex-direction: column;
gap: var(--ad-space-5);
}