19-lanhu-artboard-inventory.md 12 KB

19: 蓝湖 9 画板逐项盘点与正式切图交付(研究报告)

来源票:19: 蓝湖 9 画板逐项盘点与正式切图交付 盘点时间: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=<pid>&team_id=<tid> 9 个画板的 id / 名称 / 封面 / 尺寸
画板详情 GET /api/project/image?dds_status=1&image_id=<id>&team_id=<tid> 每个画板的 versions[0].json_url(最新版)
图层与样式全量 <json_url>(alipic.lanhuapp.com/FigmaJSON<md5>.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)。