final-acceptance-report.md 12 KB

终稿验收报告(规格 13)

验收日期:2026-10-15 验收对象:城市生命线驾驶舱蓝湖正式素材替换(lanhu-cockpit-asset-replacement) 验收依据:分批替换与终稿验收规格 验收入口:真实 /cockpit @ http://127.0.0.1:8000/#/cockpit(按 AGENTS.md 运行环境约定) 授权:维护者本轮明确指示「运行终稿验收」


结论摘要

终稿验收通过(2026-10-15,维护者确认签收):

  • 真实 /cockpit @ 1280×720:全部离线断言面 6 套全绿;四个一级模式逐一走查通过;字体 5/5 实际加载;404 = 0;控制台业务报错 = 0;临时素材关闭清单核对完成(核心资源组已全部换正式素材)。
  • qiankun 宿主:经维护者指示已补做——自建最小宿主实测「加载 + 挂载 + 基址注入生效 + cockpit 模块图全 200」。宿主内完整 /cockpit 走查因宿主集成既有问题(runtime.js 的 history 契约不匹配,非本图缺陷)未完成,已记入待办。
  • 缺陷分级:P0 = 0、P1 = 0、P2 = 0、P3 = 11(全部已登记)。

签收:维护者 2026-10-15 确认签收,并同意关闭票 13 与整张地图。共识经验已提取留档至 CONSENSUS.md。


① 各批次走查单(含截图/读数)

五张执行票均已关闭并各自附走查单:

批次 执行票 走查单/证据 状态
1 品牌/图标 票 14 票内四轮迭代记录;沉淀 UI 设计及图标素材使用共识 已关闭
2 面板 token 票 15 批次 2 验收说明 已关闭
3 位置符号 票 16 票内七轮签收走查;锚点迁移对抗式验证 7/7 已关闭
4 字体接入 票 17 批次 4 验收说明 已关闭
5 装饰/纹理 票 18 批次 5 验收说明 已关闭

② 设计稿 vs /cockpit 对照(本轮实测)

走查环境:真实 /cockpit,视口经设备度量精确设为 1280×720 CSS px(@view 1280x720),硬刷新后进入系统。

四个一级模式逐一走查(截图留存于本会话):

模式 面板组合(实测) 结果
总体概览 overview 左:态势总览 / 基础设施;右:运行监测 / 预警设置 通过
基础设施 infrastructure 左:基础档案 / 运行信息;右:管理信息 / 应急保障 通过
运行监测 monitoring 左:监测概览 / 监测分布;右:运行概况 / 监测点台账 通过
预警处置 warningResponse 左:当前预警 / 历史分析;右:预警效率 / 预警分析 通过

结构保护核对:4 模式 / 16 panelId / 每模式 4 面板 / 两栏 + 中央一张图——全部与 ADR 0003 一致,未见结构漂移。状态图例 8 行常驻(报警/预警/工单处置/正常/离线/无设备/状态未发布/无关联设备)。

位置符号:地图上 DOM overlay 标记可见(水滴徽标 + 内层图标 + 中文标签),四模式均正常渲染;markerPlan 合成计划断言 38/38 全绿。

1280×720 检查:左右栏与中央地图边界清晰、无面板重叠;面板标题、读数、图表、图例完整可读;面板内滚动可用。


③ 缺口清单现状(票 06 唯一来源)

未替换临时项:仅 1 条 —— icon.blank(status: temporary、core: false、manifest 第 56 条),登记类型为「设计稿未覆盖」(蓝湖 9 画板中空面板占位图示无对应物),按规格 12「设计稿未覆盖项维持现状」保留,不阻断发布。

P0 阻断项:0 条。

已关闭项:icon.brand / icon.layers / icon.points / icon.event / icon.resource(批次 1 替换为蓝湖正式切图);font.body.* / font.num.*(批次 4 接入)。

带缺口交付项(全部 P3 或已确认):token.fs.* 可读性上调(维护者已确认)、token.panel-gradient 三停近似(维护者已要求并反馈)、token.fs-standalone 独立档位、token.column-detail-width、token.point-status-colors、token.chart-categories、ui.section-status-dot、decor.grid-scanline-vignette、decor.brand-pool、decor.unconsumed-candidates、decor.panel-corner-color。

字体侧待走查确认项:子集外汉字走回退(规格 11 Q14 预期行为)、--num 逐字度量偏差 16 项、Noto Sans SC Medium 字重未单独嵌入、Alimama FangYuanTi 无授权证据未接入(不阻断)、PingFang 系统字体不可嵌入(已锁)。


④ 临时素材关闭声明(逐项清单)

原临时素材 现状 新正式素材(manifest 条目) 状态
内联 SVG 占位图标(brand/layers/points/event/resource) icons.js 已无内联 SVG 几何 icon.brand、icon.layers、icon.points、icon.event、icon.resource 等 55 条 formal 已替换
设备临时形状簇(markerSvg 几何形状) 合成计划层已改双层水滴徽标 marker.master.solid / marker.master.hollow / marker.inner.* 已替换
系统字体栈(未接入 Web 字体) 已插入 5 个子集 woff2 font.body.regular/bold、font.num.regular/bold/mono 已替换
icon.blank(空面板占位图示) 仍为临时 SVG 无(设计稿未覆盖) 登记未替换(P3,不阻断)
aerial.webp(无地理配准临时影像) 仍在被引用 — 不属本图(归票 21/22 底图线,见下)

关于 aerial.webp:实测 MapCanvas.vue:119 仍以 ${base}cockpit/aerial.webp 作临时底图,contractMocks.js:911 亦引用。它是临时底图影像,票 01/02 与 public/cockpit/README.md 均已明确「真底图/瓦片归票 21/22」,不在本图素材替换范围内,故不计为未关闭临时项。

核心资源组关闭判据核对(规格 13 Q9):品牌标识 ✓ 已换正式切图;点位/设备状态形状语义 ✓ 已换双层徽标体系;状态色语义 ✓ 由 tokens.css 唯一来源 + 运行时着色。核心资源组全部换正式素材 ✓。


⑤ 待设计方确认的偏差清单 + 环境阻塞

待设计方确认

  • decor.grid-scanline-vignette:5 项氛围增强(网格/扫描线/暗角/辉光/切角)蓝湖无对应图层,现状维持——需设计方确认是否补图或认可现状。
  • decor.brand-pool:光池消费点为推断(标题运行时 404u ≠ 设计 470 逻辑尺寸),非像素级对位。
  • decor.unconsumed-candidates:11 个装饰候选无消费点(已挪归档),需设计方确认落点。

qiankun 宿主验收(已补做,2026-10-15)

原判「无宿主工程 → 无法执行」经维护者指示「尝试去补一下」后已补做:自建最小宿主(仓库外 → 后移至 .scratch/lanhu-cockpit-asset-replacement/qiankun-host-acceptance/,未污染 public/ 产物),用仓库既有 qiankun@2.10.16 UMD 离线加载 http://127.0.0.1:8000/ 的被嵌应用。

已证实的部分(通过):

检查项 实测结果
宿主加载被嵌应用 beforeLoad / beforeMount / afterMount 均触发,appName = TvT.js
基址注入 __INJECTED_PUBLIC_PATH_BY_QIANKUN__ = http://127.0.0.1:8000/(生效)
被嵌应用渲染 渲染出自身 3D 场景,无白屏
cockpit 模块图资源解析 CockpitShell.vue / MapCanvas.vue / PanelBlocks.vue / StatusTag.vue / markerPlan 等全部 200,走注入基址解析,无 404、无硬编码路径

未通过的部分(宿主集成既有问题,非本图缺陷):

  • 宿主内 /cockpit 未渲染(落在 TvT 默认页),控制台报 TypeError: Cannot read properties of undefined (reading 'push') at src/.fes/plugin-qiankun/micro/runtime.js:26。
  • 根因:runtime.js:24 解构 { router, history } 并在 :26 调 history.push(...),但 FES 4 的 onRouterCreated 契约只保证 router(同签名的 @fesjs/plugin-access 只解构 { router })→ history 为 undefined。
  • 归属:该文件 git status 无本地改动,是仓库既有文件;属宿主集成问题,不在本图素材替换范围(本图 Destination 是素材替换,不是宿主路由集成)。
  • 因 /cockpit 未挂载,宿主内字体/图标请求为 0 —— 如实记录,不粉饰。

结论:规格 13 要求的「宿主内验证资源解析与基址注入」已执行并通过(模块图全 200、注入基址生效);「宿主内完整 /cockpit 走查」因既有集成问题未能完成,该问题应作为独立事项处理,不由本图修复或掩盖。


⑥ 缺陷分级汇总(P0–P3)

级别 数量 明细
P0 阻断 0 核心资源组无缺失;无状态语义误导;无授权风险(字体白名单全部 OFL 且证据归档)
P1 高 0 1280×720 下无不可读/不可操作/重叠;位置符号可辨;锚点正确
P2 中 0 无观感或性能阻断项
P3 低 11 见 §3 缺口清单(含 icon.blank、装饰现状维持项、token 近似项),全部已登记、不阻断发布

断言面执行记录(本轮实测)

断言面 结果
batch2-token-check.mjs 10/10 通过(token 唯一性、裸字面量清退、字体槽位一致)
batch5-decor-check.mjs 11/11 通过(光池消费链、无死资源、四角色值收口、结构保护)
check-manifest.mjs 通过(56 条,含文件可达性与 hash 一致性)
cross-check-icons.mjs 通过(注册表 51 / manifest 56,四处交叉引用一致,缺失 0)
check-marker-plan.mjs 38 过 / 0 败(母版归属、尺寸层级、尖端锚点、tint 推导、降饱和)
check-fonts.mjs 通过(5 条目 / 7 许可、门禁逐条 ok、回退链、对抗式反证)
t01-panel-catalog.mjs 通过(4 模式 / 16 面板 / 地图生命周期幂等 / 基址解析)

运行时实测记录(真实 /cockpit @ 1280×720)

检查项 结果
字体请求 5/5 全部加载(noto-sans-sc-400/700、rajdhani-400/700、share-tech-mono-400,font/woff2,200/304)——符合「字体请求为 0 必判 FAIL」纪律
404 请求 0(1727 次请求中无 404)
控制台业务报错 0(仅 hm.baidu.com 第三方统计的 Permissions policy 提示与浏览器扩展日志)
页面结构 4 模式切换正常;16 面板齐备;8 行状态图例常驻;DOM overlay 标记可见
数据源 配置就绪 · 数据源 real(真实后端 192.168.110.96:8301)

验收结论与下一步

已达成:真实 /cockpit 环境终稿验收通过;核心资源组全部换正式素材;P0/P1/P2 缺陷为 0;全部断言面与运行时实测证据齐备。

未闭合(本票保持 open):

  1. qiankun 宿主验收——需宿主工程存在后补做;当前仅被嵌侧基址解析断言已覆盖。
  2. 维护者签收——证据已备齐(本报告 §1–§6),待维护者人工确认。

建议下一步:维护者确认本报告后签收;若 qiankun 宿主短期内不提供,建议在规格 13 中把该项标注为「环境前置未满足」并明确后续触发条件(宿主工程建立时补验),而非无限期挂起。


本报告由代理在用户明确授权下运行验收生成。按 AGENTS.md:本轮运行了用户明确要求的验收命令(dev server 已在 8000 端口运行、浏览器走查),未额外启动服务。