# 19: 蓝湖 9 画板逐项盘点与正式切图交付(研究报告) 来源票:[19: 蓝湖 9 画板逐项盘点与正式切图交付](../issues/19-lanhu-artboard-inventory.md) 盘点时间:2026-10(本次执行) 项目:城市生命线驾驶舱(`tid=b124d42c-972b-4503-8a1e-b7c06e89e550`,`pid=93c09bcc-4f03-489f-a6e7-abcdf397f659`) ## 0. 一句话结论 > **⚠ 本节结论已被下述「2026-10-12 复查」取代,保留原文以留痕。** > > (原结论)9 个画板已逐项盘点完毕;但蓝湖侧不存在"正式切图"可供替换。设计方只导出了「光」效果图层(25 个导出标记全部是 `光`),品牌位是渐变文字(无 logo 图形)、四个功能图标在稿中是纯文字 chip、中央一张图是 AI 生成位图。因此**批次 1 的"替换为正式素材"在素材层面无解**,正确处置是按规格 12「设计稿未覆盖的现有 UI 维持现状并标记为无设计稿依据」。 ## 0.1 2026-10-12 复查:蓝湖已更新正式切图(原结论作废) 设计方随后更新了全部 9 个画板,**本报告 §2–§4 的旧版事实随之作废**,复查结果如下: | 项目 | 旧版(2026-09-30 导出) | 新版(2026-10-12) | | --- | --- | --- | | 画板版本 | v2 | **v3 / v4**(`last_version_num` 2→3,Desktop-2 为 4) | | 正式切图标记 | 27 个(全部名为「光」) | **71 个** | | 切图文件 | 54 个 | **142 个**(PNG+SVG 成对) | | 位图填充 | 含 AI 生成中央底图(5 份副本) | **全部移除**(各画板 `images=0`) | | DDS 自动切图标记 | 653 个 | **全部清零** | 新版新增的正式切图按语义分四类:**品牌标题底板**(`nav/title-bg` 90×34)、**面板内业务图标**(网格/水滴/火焰/消防栓/无线信号/时钟/对勾/雨云/水波/警告三角/盾牌/立方体/楼宇等 15×15–48×48)、**面板与结构装饰**(面板底、标题线、分隔线、状态点)、**KPI 模块**(`Group 5054–5057` 123×57,内含 28×36 双层水滴母版 + 内芯)。 已据新版**重做批次 1**(票 14):五枚与驾驶舱语义 key 对应的切图已入库并登记 `formal`;`icon.blank` 仍无设计稿对应物。新版数据与归档见 `research/raw-v2/` 与 `design-archive-v2/`(71 张 PNG + sha256 索引)。 **仍然成立的一条**:新版中中央一张图的四个 chip(管线图层/监测设备/事件定位/应急资源)**依旧是纯文字**,本批图标取自面板内语义相同的设计图标,按语义对应关系映射(详见票 14 映射表)。 ## 1. 盘点方法与可复现路径 不依赖人工点击,全部经只读接口 + 公开 CDN 完成(浏览器仅用于取接口响应,登录态为用户既有会话): | 步骤 | 来源 | 说明 | | --- | --- | --- | | 画板清单 | `GET /api/project/images?project_id=&team_id=` | 9 个画板的 id / 名称 / 封面 / 尺寸 | | 画板详情 | `GET /api/project/image?dds_status=1&image_id=&team_id=` | 每个画板的 `versions[0].json_url`(最新版) | | 图层与样式全量 | ``(`alipic.lanhuapp.com/FigmaJSON.json`,公开可下载) | 完整图层树:尺寸、字体、颜色、矢量路径、导出标记、图片填充 | | 资产下载 | `assets[]` 与图片填充的 `imageUrl` | 见 §4 归档 | 原始 JSON 9 份(合计约 6.2 MB)在 `research/raw/desktop-0N.json`;分析脚本 `analyze-figma-json.mjs`、`batch-analyze.mjs`、`classify-artboards.mjs`、`extract-assets.mjs`、`download-assets.mjs`、`probe-*.mjs`。 > 说明:`/api/project/image` 的重放被扩展拦下(请求头 `session-id` 被脱敏,不提供、不绕过),因此采用「逐画板导航详情页 → 从捕获中读响应」的等价只读路径。全程未提取任何凭据。 ## 2. 九个画板清单 画板命名无语义(`Desktop - 2` … `Desktop - 10`,无 `Desktop - 1`),下表「推断模式」由内容(顶部模式 chip、面板标题、KPI 文案)判定,**属推断而非设计方标注**。 | 画板 | 尺寸(px) | 节点数 | 导出标记 | 字体族数 | 图片填充 | 推断内容 | | --- | --- | --- | --- | --- | --- | --- | | Desktop - 2 | 1440×974 | 534 | 75(全 DDS) | 22 | 4 | 预警处置(当前预警 · 事件与设备定位) | | Desktop - 3 | 1440×1155 | 537 | 76 | 21 | 4 | 预警处置(长稿/滚动变体) | | Desktop - 4 | 1440×751 | 307 | 61 | 22 | 3 | 业务模式 + 设备筛选/事件详情(面板态) | | Desktop - 5 | 1440×941 | 432 | 64 | 20 | 4 | 运行监测(监测概览 · 规模/类型/在线率) | | Desktop - 6 | 1440×751 | 201 | 27 | 15 | 3 | 总体概览(品牌标题 + KPI + 中央一张图) | | Desktop - 7 | 1440×1049 | 397 | 71 | 19 | 4 | 基础设施(基础档案 · 设施与监测设备) | | Desktop - 8 | 1440×974 | 640 | 84 | 32 | 8 | 预警处置变体(含设备缩略图) | | Desktop - 9 | 1440×974 | 897 | 98 | 38 | 11 | 监测点位详情弹窗(`Dialog - 监测点位详情`) | | Desktop - 10 | 1440×974 | 874 | 97 | 39 | 9 | 监测点位详情弹窗(另一态) | **设计基准:全部 9 张均为 1440 宽**(高 751–1155)。这与现有 `tokens.css` 的 1920 基准(`--u: clamp(1px, 0.0521vw, 2px)` 在 1920 时为 1px)不一致 → 归**视觉差异**,交票 15 处理(不得因此改结构)。 ## 3. 三分类结论(票 02 口径) ### 3.1 可直接运行时资源 —— 仅 13 个唯一位图,且多为临时/AI 素材 | 资产 | 尺寸 | 说明 | | --- | --- | --- | | `ChatGPT Image Sep 23, 2026, 02_10_19 PM 2` | 1440×893 / 1588×1090 | **AI 生成的中央底图**(设计稿自带底图本身即 AI 图,非正式影像) | | `光`(发光效果) | 221×58 / 153×40 / 489×128 | 设计方唯一标记导出的素材(PNG+SVG 成对) | | `image 110`(设备缩略图占位) | 145×82 | 设备卡缩略图占位图 | | `Rectangle 34624250` | 137×105 | 详情弹窗内一处图片位 | ### 3.2 需加工设计源 —— 矢量可无损重建,但没有现成切图 - **653 个图层**带蓝湖 DDS 标记(可为任意图层生成切图),但**设计方未按语义命名/标记导出**;真正被标记 `hasExportImage` 的只有 **25 个,且全部名为 `光`**。 - 面板内的小图标(6×6 / 9×9 / 12×12 / 15×15 / 18×18 矢量)存在,但均为未命名矢量图层,需按语义逐项导出或重建。 - **位置符号母版存在**:`Container/Panel/Group 5054/Frame`(42×42)内含 `Vector 28×36`(外层)+ `Vector 22×28`(内层)+ `Vector 9×12`(内芯)三层矢量,与票 05「双层水滴徽标」结构吻合 → 批次 3 可无损重建(矢量路径在 JSON 中),尺寸基准需按 1440 设计稿重新核对。 ### 3.3 仅参考标注 颜色、字号、间距、布局、文案、KPI 数值(1,284 / 638 / 96.8% / 14 / 08 / 82%)——数据一律以实际后端为准(规格 12)。 ## 4. 设计归档 `design-archive/` 保留 **59 个文件**(下载 63、按内容去重 4;`index.json` 含每个文件的来源画板、图层路径、尺寸、URL、本地名、字节数与 sha256,被去重项记在 `dropped[]`): - 图片填充 13 个唯一 URL(AI 底图 5 份副本去重后保留最高分辨率 1588×1090 一份、3 个光效 PNG、设备缩略图、矩形图); - 项目级切片 50 个文件(PNG/SVG 成对,对应 25 个 `光` 导出图层;同尺寸 PNG 跨画板内容一致)。 > 去重理由:同一 AI 生成底图在多个画板中各存一份(视觉相同、字节不同),5 份合计约 18 MB,不宜原样入库。归档与运行时资源分离:本目录**不进入** `public/cockpit`,不入 manifest。 ## 5. 字体清单(→ 票 17 / 票 06) | 字体族 | 出现次数 | 授权判定 | | --- | --- | --- | | **Noto Sans SC** | 913 | 开源(OFL),**已在票 06 白名单** → 与设计稿一致,可直接接入 | | Rajdhani | 163 | Google Fonts(OFL),需按票 06 归档许可证文本后入白名单 | | Share Tech Mono | 134 | Google Fonts(OFL),同上 | | PingFang TC / MO / HK / SC | 54 / 21 / 18 / 6 | **Apple 系统字体,不可 Web 嵌入** → 只能作回退栈(票 06 已锁) | | Alimama FangYuanTi VF | 18 | 阿里妈妈方圆体,免费商用但**需授权证据**方可内置 | 结论:设计稿正文字体即 `Noto Sans SC`(白名单内),数字/等宽用 `Rajdhani` / `Share Tech Mono`;Apple 系字体须回退到系统栈。 ## 6. 色板(→ 票 15) 全稿出现频次前 40 色(完整表见 `research/raw/inventory-detail.json`),与现有 token 的关键差异: | 语义 | 现有 token | 设计稿主值 | 差异 | | --- | --- | --- | --- | | 主色 | `--cyan #4fd8ff` | `#01abea` / `#00b8ff` / `#33b3ed` | 设计更偏蓝、饱和度更高 | | 报警 | `--lv1 #ff4d5e` | `#ff3b52` / `#f0152f` / `#970b1c` | 设计有深浅两级红 | | 预警 | `--lv2 #ffa63d` | `#ffb020` | 接近 | | 正常 | `--lv4 #35e39a` | `#27d17a` / `#42de90` | 设计偏绿更深 | | 底色 | `--bg-0 #01060d` | `#030919` / `#02091b` / `#001448` / `#001f5c` | 设计用半透明深蓝叠层 | | 文字 | `--text #e6f5ff` | `#d7ecff` / `#88b7e8` / `#5680b0` | 设计有三级文字蓝 | | 新增 | — | `#a970ff` / `#8f8cfc` / `#9469f2`(紫)、`#b9e8ff` / `#80bcff` / `#c1d5ff`(浅蓝) | 现有 token 无对应槽位 | ## 7. 语义映射候选(图元 → 语义 key) | 设计稿图元 | 候选语义 key | 备注 | | --- | --- | --- | | 品牌标题(渐变文字 337×27/29) | `brand.title`(**非图标**) | 无 logo 图形 → 驾驶舱 `icon.brand` 无对应物 | | 图层 chip 文字(管线图层/监测设备/事件定位/应急资源,49×18) | `map.layer.*.label` | chip 内**只有文字**,无图标 | | `Group 5054/Frame` 三层矢量 | `marker.point.master` / `marker.point.inner` | 双层水滴母版候选(批次 3) | | `光` 221×58 / 153×40 / 489×128 | `fx.glow.*` | 唯一正式导出素材 | | AI 底图 | `map.basemap.placeholder` | AI 生成,非正式影像 | | `image 110` 145×82 | `device.thumbnail.placeholder` | 占位 | ## 8. 对各执行票的影响 - **票 14(批次 1 品牌/图标)**:设计稿**未覆盖**品牌位图形与四个功能图标(无 logo、chip 纯文字)→ 按规格 12 维持现状并标记「无设计稿依据」;票 06 缺口清单的 6 条应改记为「设计稿未覆盖」而非「正式素材未交付」。若要新增 logo/图标,属**新增设计需求**,需设计方确认(非素材替换)。 - **票 15(批次 2 token)**:可直接消费 §6 色板与 §2 的 1440 基准;紫/浅蓝为新增语义槽位候选。 - **票 16(批次 3 位置符号)**:设计稿有双层母版矢量(28×36/22×28/9×12),可无损重建;无彩色状态切图(符合票 05「单色可着色」裁定)。 - **票 17(批次 4 字体)**:正文即白名单内 `Noto Sans SC`;`Rajdhani`/`Share Tech Mono` 需补许可证文本;`Alimama FangYuanTi VF` 需授权证据。 - **票 18(批次 5 装饰)**:装饰基本可由 CSS/SVG 复现(矩形/椭圆/渐变 + 光效位图),仅「光」三张进 manifest 候选。 ## 9. 需要设计方/维护者确认的项 1. 品牌位是否要新增 logo 图形(现设计稿无)——决定批次 1 的走向。 2. 四个图层 chip 是否需要图标(现为纯文字)。 3. `Rajdhani` / `Share Tech Mono` / `Alimama FangYuanTi VF` 的授权证据(票 06 白名单准入)。 4. 位置符号母版(28×36/22×28/9×12)是否即最终形态,以及 1440 基准下的尺寸换算。 5. 设计稿底图为 AI 生成图,是否需要正式影像/瓦片(与票 21 关系)。 ## 10. 限制 - 画板与模式/面板的对应是**内容推断**,非设计方标注;9 张画板名无语义。 - 未逐层导出 653 个 DDS 标记图层(蓝湖需另一接口/人工导出);本次只归档了 25 个设计方导出图层与全部图片填充。 - 未运行 build/dev/浏览器 `/cockpit` 走查(`AGENTS.md`)。