console: 分栏改独立容器,修模块间空白间距

PR #130 的共享网格行是根因:一行高度由该行最高模块决定,
任务列表撑高第 2 行后,对话(第 3 行)只能从任务列表底下开始,
派发/环境等短模块下面空出一大截;align-items:start 只让盒子
不拉伸,拉不上来下一行。

修法:App.tsx 把模块包进三个独立 .dash-col(左:任务+项目,
中:派发+对话,右:环境+Workers+技能+自动化+分诊+管理区+
API Key),栏内 flex 纵向紧贴;中屏两栏(左+中上右下)、宽屏
三栏并排;窄屏用 display:contents + 每模块 order 恢复原单列
顺序。构建产物 316093 字节,sha 与构建输出一致。
This commit is contained in:
host committed 2026-10-29 10:56:36 +08:00
1 parent e7f7edf5c2
commit e5aa5c2acb
3 files changed
+118 -93

No files matched your search

+61 -46
View File
@@ -22,10 +22,19 @@ import TriageSection from "./sections/TriageSection";
// Layout only: ONE scrollable console page in GitHub Primer style —
// a dark header bar (name + real connection status + health + quota
// + refresh stamp + anchor nav as header links), a data-cards row,
// then every module as a bordered section in order. No icon-rail
// column, no left list column, no right panel column, no view
// switching. Detail/context panels sit under their own sections
// below (detail under 对话, members under 项目, and so on).
// then every module as a bordered section. At medium/wide widths the
// sections live in three independent column wrappers (left: tasks +
// projects; middle: dispatch + conversation; right: environments +
// Workers + skills + automations + triage + admin + API key) so each
// column's modules stack tightly on their own, instead of sharing
// grid rows with the other columns — shared rows were the blank-gap
// bug (a tall task list in row 2 held the whole row tall, so the
// conversation in row 3 started far below a short dispatch box).
// At narrow width the wrappers use display:contents plus an explicit
// order per section, so the single column stacks in the original
// DOM order (dispatch, tasks, conversation, projects, …), not in
// column-group order. Detail/context panels sit under their own
// sections below (detail under 对话, members under 项目, and so on).
const NAV: Array<[string, string]> = [
["#sec-dispatch", "派发"], ["#sec-tasks", "任务"], ["#sec-conv", "对话"],
["#sec-projects", "项目"], ["#sec-env", "环境"], ["#sec-workers", "Workers"],
@@ -78,48 +87,54 @@ export default function App() {
<TopBar />
<main className="dash-page">
<DataCards />
<section id="sec-dispatch" className="dash-section">
<DispatchSection />
</section>
<section id="sec-tasks" className="dash-section card">
<h2>任务列表</h2>
<TaskListSection onNew={scrollToDispatch} />
</section>
<section id="sec-conv" className="dash-section">
<div className="card">
<h2>对话</h2>
<ConversationSection />
</div>
<TaskDetailPanel />
</section>
<section id="sec-projects" className="dash-section">
<ProjectsSection />
<MembersPanel />
</section>
<section id="sec-env" className="dash-section">
<EnvSection />
<EnvContextPanel />
</section>
<section id="sec-workers" className="dash-section">
<WorkersSection />
<HealthPanel />
</section>
<section id="sec-skills" className="dash-section">
<SkillsSection />
<SkillsToolsPanel />
</section>
<section id="sec-automations" className="dash-section">
<AutomationsSection />
</section>
<section id="sec-triage" className="dash-section">
<TriageSection />
</section>
<section id="sec-admin" className="dash-section">
<AdminSection />
</section>
<section id="sec-key" className="dash-section">
<ApiKeySection />
</section>
<div className="dash-col dash-col-left">
<section id="sec-tasks" className="dash-section card">
<h2>任务列表</h2>
<TaskListSection onNew={scrollToDispatch} />
</section>
<section id="sec-projects" className="dash-section">
<ProjectsSection />
<MembersPanel />
</section>
</div>
<div className="dash-col dash-col-mid">
<section id="sec-dispatch" className="dash-section">
<DispatchSection />
</section>
<section id="sec-conv" className="dash-section">
<div className="card">
<h2>对话</h2>
<ConversationSection />
</div>
<TaskDetailPanel />
</section>
</div>
<div className="dash-col dash-col-right">
<section id="sec-env" className="dash-section">
<EnvSection />
<EnvContextPanel />
</section>
<section id="sec-workers" className="dash-section">
<WorkersSection />
<HealthPanel />
</section>
<section id="sec-skills" className="dash-section">
<SkillsSection />
<SkillsToolsPanel />
</section>
<section id="sec-automations" className="dash-section">
<AutomationsSection />
</section>
<section id="sec-triage" className="dash-section">
<TriageSection />
</section>
<section id="sec-admin" className="dash-section">
<AdminSection />
</section>
<section id="sec-key" className="dash-section">
<ApiKeySection />
</section>
</div>
</main>
</ConsoleContext.Provider>
);