# Cockpit 外壳与面板布局(执行索引) Status: open Labels: wayfinder:map 本目录是 `/to-spec` + `/to-tickets` 的产物,不是 wayfinder effort:`spec.md` 是规格,`issues/01`–`23` 是实现票(01、02、06 已关闭),`issues/24`–`28` 是调研、待人工处理项与后续新增票(24 调研已关闭;25 待人工;26 watcher 崩溃已修复;**27 接入 Cesium 常驻 Viewer**,是票 03 的前置,已关闭;28 外壳填满容器已关闭)。 本 `map.md` 的唯一作用是把这个 effort 暴露给 issue tracker 面板——面板只枚举含 `map.md` 的 `.scratch//`,没有 `map.md` 的目录连同它的票都不会被列出。 `Labels: wayfinder:map` 在这里只用于让面板按**地图视图**渲染本 effort 的子票状态、进度与依赖分层;不代表本 effort 由 `/wayfinder` 驱动——推进仍走 `/implement`。 ## Destination 按 `spec.md`、`CONTEXT.md` 与 `docs/adr/0001`–`0008` 实现 `/cockpit` 外壳:单路由、四个一级模式、每个模式左右两栏共 4 个二级面板、中央地图常驻。语义已由 `.scratch/web-cockpit-decision-map/` 锁死,本 effort 不再发明 `mode`、`panelId`、相机或鉴权的含义。 ## Notes - 执行清单是 `issues/01`–`23`,按各票 `Blocked by` 的依赖顺序推进,一票一个全新上下文。 - `issues/24`(resolved)是 AFK 调研,产物在 `research/panel-field-coverage.md`,不改业务代码。 - `issues/25`(ready-for-human)是后端补契约与业务定义缺口,需要人或后端负责人处理;不阻塞 `01`–`23` 的 mock 阶段。 - `issues/26`(resolved)是 dev server watcher 的 EBUSY 崩溃修复:忽略清单须同时覆盖 `.scratch` 面板原子写与 DSH 编辑审阅临时文件。 - `issues/27`(resolved)是引擎接入票:装 `cesium` + 静态资源/`CESIUM_BASE_URL` + 服务层创建唯一 Viewer;**票 03 依赖它**(相机契约必须落在真实引擎上)。已关闭,验证证据与遗留(本工作区 `fes build` 因两个未跟踪插件缺依赖而跑不完)见票面。 - **真实启动路径是 `yarn dev`**(= `fes dev` → `.fes.js`:`layout.navigation: null`,无页头);**真实应用环境不使用 predev 启动**(维护者 2026-09-16 明确)。`yarn pre.dev` / `pre.dev.one` 是 TvT 预演站布局(`navigation: 'top'` + `isFixedHeader`,顶部多 54px 固定页头),那里出现的布局异常(如 A12 红)属环境差异。A12 证据里的 `pageHeaderH` 用来分辨这一点(见票 28)。 - **复跑走查前重启 dev server**:长跑实例可能仍给浏览器发旧模块(懒加载的 `cesiumEngine.js` 曾因此把 A15 判红一次:`widgetChrome: 1`;重启后同一份代码 20/20、`widgetChrome: 0`)。涉及引擎、懒加载模块的走查尤其要先重启。 - 相关技能:`implement`、`tdd`、`code-review`;TvT.js 侧基线是 `skills/tvt-js-plugin-builder/`。 - 验收清单就在每张票正文里,完成时勾上并同步该票的 `Status:` 行。 ## Decisions so far - [spec.md](spec.md) — 二级面板改为同屏左右两栏加标题栏展开/收起,替代 `mode/subview` 切换。 - [决策地图](../web-cockpit-decision-map/map.md) — `mode`/`panelId` 英文词典、三键相机契约、地面与管线视图合成、Cesium 集成方式、无登录页鉴权。 - [ADR 0003](../../docs/adr/0003-web-page-information-architecture.md) — 页面信息架构与 `mode`/`panelId` 词典。 - [01: Shell 与模式/面板映射](issues/01-shell-mode-panel-mapping.md) — 已关闭(第二轮):外壳铺满视口、每模式 4 面板同屏且收放真正改变高度、范围/行业接入 filterStore 且切模式不重置、一张图用临时影像铺满背景;浏览器走查 16/16 + 维护者目测确认。 - [26: Dev server 文件监视被 `.scratch` 面板原子写击穿](issues/26-devserver-watch-scratch-crash.md) — 已修复(含重开补验):`.fes.js` 的 dev server watch 忽略 `**/.scratch/**` 与 `**/.dsh-*`(Vite 默认 ignore 合并不覆盖);两个触发源——面板原子写与 DSH 编辑审阅临时文件——均实测不再击穿。 - [02: MapCanvas 常驻挂载](issues/02-mapcanvas-persistent-mount.md) — 已关闭:新增 `services/mapService.js` 持有实例生命周期(幂等挂载、尺寸上报、离开才销毁)+ 常驻宿主组件 `MapCanvas.vue`;逻辑单测 + 走查 A14 证明「切模式与收放面板都不重建」。 - [06: 驾驶舱自有静态资产与视觉占位](issues/06-cockpit-static-assets.md) — 已关闭:token 唯一来源 `styles/tokens.css` 挂 `.cockpit-shell`(不挂 `:root`,免漏插件样式)、`public/cockpit/` 自持资产、占位/图标/状态标签三件套(`PanelPlaceholder` / `icons.js`+`CockpitIcon` / `statusTones.js`+`StatusTag`,标签带文字不吃纯色);零依赖脚本 15/15 + 走查 19/19。副产:查清 A12「铺满」的 predev 环境差异(并立票 28),走查脚本加 `pageHeaderH` 与前置条件说明。 - [27: 接入 Cesium 常驻 Viewer](issues/27-cesium-viewer-integration.md) — 已关闭:`cesium@1.145.0` 固定版本(不进 federation `shared`、进 `manualChunks` 单独分包)+ `src/common/cesiumStaticPlugin.js`(dev/pre.dev 中间件与 build 拷贝四个静态目录,`pre.dev.one` 的 `copyPublicDir:false` 同样生效)+ `services/cesiumAssets.js`(`CESIUM_BASE_URL` 在 import 之前写入,取 `publicPath: './'` / qiankun 注入路径)+ `services/cesiumEngine.js`(唯一 Viewer:控件与默认相机输入全关、`baseLayer:false` 不伪造配准)+ `mapService` 持有引擎生命周期与宿主状态浮标;`yarn dev` 走查 20/20(含强制失败的兜底断言)、`pre.dev.one` 19/20(仅 A12 环境差异红)、`yarn pre.build.one` 日志证明四目录进产物。遗留:本工作区 `fes build` 被两个未跟踪插件缺依赖挡住(`@takram/three-3d-tiles-support`、`leaflet`),cesium 分包暂无产物证据。 - [28: 外壳填满所在容器,而不是硬用 100vh](issues/28-shell-fill-container.md) — 已关闭:`.cockpit-shell` 由 `height: 100vh` 改为 `absolute + inset: 0`,贴着最近的定位容器(没有定位祖先时按规范落回初始包含块=视口);氛围层同步由 `fixed` 改 `absolute`,不再盖到宿主页头那一带。零依赖脚本 7/7(旧实现复现「越界 54px + 宿主滚动条」,交付实现容器等高、底边贴合、真·视口 resize 跟随),走查 A12 仍绿。附带确立:真实启动路径是 `yarn dev`,predev 预演站不是真实应用环境。 ## Not yet specified - 甲方本地瓦片、地形与 3D Tiles 的实际交付物清单。 - 设计公司视觉终稿如何替换驾驶舱占位 token。 - 后端补契约的落地时间与责任人(见 `issues/25`)。 ## Out of scope - 登录、权限管理、工单处置等写操作。 - UE5、Pixel Streaming、Docker、国产化认证。 - CAD 转换、坐标精化、高精度模型生产。 - 重写 `issues/01`–`23`。