What to build: 正式环境不要把一大块状态文本压在中央一张图的 3D 场景上。开发期的诊断读数 (配置状态、当前模式、引擎浮标、占位标题与实例提示)在生产形态下收起或退成底部半透明小字; 用户需要观看的颜色语义(点位状态图例、状态灯、图层控件)必须保留。
(来源:维护者 2026-09-18 明确要求 —— 「UI 上不需要那么多过于明显的 UI 文本遮盖中央一张图的 3D 场景, 当前的状态信息主要在开发中直观 debug 使用,正式环境中只需要使用半透明小字在底部显示即可, 只有颜色语义等用户需要观看的信息需要在 UI 中体现」。)
Status: resolved Labels: ready-for-agent
[data-map-legend] + 状态灯)是颜色语义,本票明确不动它。map.ui.debug
(显式布尔值优先,缺省跟随 import.meta.env.DEV)。map.ui.debug),缺省跟随构建模式:开发构建 = 调试形态,生产构建 = 干净形态。已完成(2026-09-18)。 生产构建默认就是干净形态,无需任何配置;要现场调试生产包时把
map.ui.debug 写成 true 即可。
services/cockpitConfig.js:新增 map.ui = { debug: null } 归一化(null = 跟随构建模式;脏值退回默认并记 issue)。services/mapService.js:引擎浮标两套样式 —— STATUS_STYLE(调试:顶部药丸、有边框底色、11px)
与 STATUS_STYLE_QUIET(生产:贴底 2px、无边框无底色、9.5px、rgba(186,212,224,.5)),
节点带 data-ui-mode="debug|production" 供走查与排查;isUiDebug() 读配置、缺省回落 import.meta.env.DEV。components/MapCanvas.vue:新增 uiDebug prop;生产形态收起 .map-holo__top(标题 + 图层占位)、
.map-canvas__title(占位标题)、.map-holo__hint(实例提示);摘要行加 .is-quiet(更小更淡),
图例与状态灯原样保留。CockpitShell.vue:uiDebug 计算属性(配置优先、缺省跟随构建模式),据此收起顶栏配置标签与「当前模式」读数,
并把形态下发给 MapCanvas。docs/cockpit-deployment.md 新增 2.8 界面形态:开发诊断 vs 生产干净(两种形态对照表 + 开关写法)。yarn dev @ 8001,Chrome 152 headless)t32-ui-mode-walkthrough.mjs → 9/9(同一 dev server,靠注入配置切换两种形态,不依赖构建模式):
holoTop/title/hint/configTag/modeReadout 全为 0;图例 8 行、状态灯 1 个、归位 1 个、视图按钮 2 个、
范围按钮 4 个都在;引擎状态 data-ui-mode=production、贴底 3px、无底色、9.5px、alpha 0.5;摘要行 is-quiet;uiMode=debug、顶部药丸、有底色、11px),
与票 04/09/21/29 走查依赖的选择器一致;yarn build exit 0。浮标是在 setEngineState(record,'booting') 时创建的,而那一刻配置还没加载完(map.ui.debug 拿不到),
于是永远走 dev 回落 —— 生产形态失效。修法:paintEngineState() 里比对 data-ui-mode,
配置到手后的下一次绘制就按当前形态重刷样式(也顺带覆盖了运行期改配置的情形)。
t21-view-modes-walkthrough.mjs 原来用固定 sleep(2500) 等相机到位,在连续跑多个 Chrome 的回归批次里
会误判(单独跑 10/10、批次里 8/10)。改为等 settled === true(判据容忍引擎重建空档里的 null),
并把「放到目标点」改成与外壳一致的重试调用 —— 现在批次里稳定 10/10。