| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- PASS A1-four-overview-panels-match-catalog — 目录:situationSummary / infrastructureSummary / monitoringSummary / alertSettings
- PASS A2-columns-are-two-and-two — 左栏 situationSummary/infrastructureSummary · 右栏 monitoringSummary/alertSettings
- PASS A3-builders-cover-exactly-the-four — 构造器与目录逐项一致(4 个)
- PASS A4-registry-covers-all-four-modes — 已接面板共 15 块(本票把四个模式都接上了)
- PASS A5-unknown-panel-still-returns-null — 未注册的 panelId 仍回 null(调用方画占位),注册表不会假装认识它
- PASS A6-overview-does-not-claim-other-modes-panels — 本票只接总体概览那四块,不越界接其它模式的面板
- PASS B1-infrastructure-totals-and-industries — 设施 5 · 智能设备 9 · 行业 2
- PASS B1b-bigdecimal-string-is-read — lengthKm "12.4" → 12.4(字符串被认下,不是 0)
- PASS B1c-industry-label-falls-back-to-dictionary — 缺 label 的行业按码翻:DRAINAGE → 排水(不显示裸码)
- PASS B1d-overview-infrastructure-has-no-regions — `/overview/infrastructure` 不含区域分布(区域走票 17 的 base-archives,见文件头第 ② 条)
- PASS B2-monitoring-counts-and-four-status-buckets — 四态桶:在线 6 / 离线 1 / 滞后 1 / 未知 1
- PASS B2b-no-fault-bucket-is-invented — 不发明「故障」桶(后端只有 online/offline/stale/unknownOrMissing 四态)
- PASS B2c-metric-freshness-is-kept — 逐设备最近采集时间在本端点上(票 18 的 I2/BT-8 缺口在这里有值)
- PASS B2d-formal-scope-is-kept — 正式行业范围回显:GAS,WATER_SUPPLY
- PASS B3-both-families-come-from-one-payload — 一次取数同时给两族:预警 8 条 / 报警 9 条(故不需要切换)
- PASS B3b-efficiency-carries-state-alongside-value — 处置率连 `state` 一起带出("分母为 0"与"真的是 0%"必须分得开)
- PASS B3c-work-order-states-cover-all-eight-codes — 0–7 全铺(8 个码):0:1 1:0 2:0 3:0 4:0 5:2 6:0 7:0
- PASS B3d-range-type-is-echoed — 窗口回显 LAST_7_DAYS(验收第 1 条的「近 7 日」靠它声明)
- FAIL B4-regions-come-from-the-sibling-endpoint — 区域分布借票 17 的端点:
- PASS C1-situation-kpis-cover-the-acceptance-list — 跨行业 KPI:facilityCount / smartDeviceCount / deviceCount / monitoringPointCount / onlineRate / warningTotal / alarmTotal / handlingRate
- PASS C1b-situation-has-both-trend-series — 预警与报警两条趋势序列(近 7 日预警趋势 / 近 7 日报警趋势)
- PASS C1c-situation-handling-rate-is-a-link — 当前预警/报警/处置率三个读数带联动出口(验收第 5 条)
- PASS C1d-zero-denominator-is-not-zero-percent — 分母为 0 → —(不是 0.0%)
- FAIL C2-infrastructure-has-industry-and-region — 设施底数 + 行业构成 + 区域分布(验收第 2 条三项齐)
- PASS C2b-industry-rows-are-actionable — 行业行带联动动作与前端筛选键(点它写全局行业筛选)
- PASS C2c-region-gap-is-honest-when-missing — 区域取不到时如实说明它来自哪个端点,不假装有
- PASS C2d-length-and-scale-come-from-the-sibling-endpoint — 里程与规模取自票 17 的档案端点(本概览端点不给),英文规模枚举被翻成中文
- PASS C3-monitoring-shows-online-rate-and-four-buckets — 在线率 + 四态桶:onlineRate / online / offline / stale / unknownOrMissing(验收第 3 条)
- PASS C3-contract-panel-reads-its-own-section-data — 按外壳真实的调用形状(裸 section.data)喂进去,读数真的是数字而不是占位符:在线率 75.0% · 在线 6
- PASS C3b-monitoring-has-coverage-and-type-distribution — 监测覆盖 + 类型分布
- PASS C3c-fault-gap-is-declared — 「故障」缺口如实写在面板上(不发明一个故障数)
- PASS C3d-metric-freshness-row-is-present — 逐设备最近采集时间有值时才画那一行
- PASS C4-alert-settings-shows-both-families — 预警与报警两族统计同屏(验收第 4 条:保持合同名、只读展示):预警 · 工单状态分布 / 报警 · 工单状态分布
- PASS C4-contract-alert-panel-reads-its-own-section-data — 按外壳真实的调用形状喂进去,两族总数真的画出来:预警 8 条 / 报警 9 条
- PASS C4b-alert-work-order-distribution-is-eight-codes — 工单状态分布 0–7 全铺(8 个码,不是旧的七态)
- PASS C4c-alert-keeps-the-contract-name — 面板名保持合同名「预警设置」(验收第 4 条原句)
- PASS C5-failed-section-still-returns-a-complete-view — 四块在失败态都返回结构完整的视图(块在、占位说明在)
- PASS D1-three-panels-load-independently — 三块各自成功:success / success / success
- PASS D2-situation-is-composed-not-fetched — 态势总览由另外三块合成(它不自己发请求),故与预警设置同源
- FAIL D2b-situation-and-alert-share-the-same-payload — 态势总览与预警设置读同一份预警载荷(引用相同)—— 两处数字不可能对不上
- PASS D3-regions-are-merged-into-infrastructure — 区域分布并进基础设施分区(3 行)
- PASS D8-end-to-end-panels-really-draw-numbers — 经外壳真实入口逐块读数:monitoringSummary.onlineRate=75.0% · alertSettings.WARNING-total=8 · infrastructureSummary.facilityCount=5 · situationSummary.warningTotal=8
- PASS D4-one-broken-panel-does-not-cover-others — 只坏监测概览:监测 failed,基础设施 success,预警设置 success
- PASS D4b-control-all-success — 对照组:同一份代码在 success 场景下监测概览是 success(故 D4 的判红有牙)
- PASS D5-empty-is-not-failure — 空场景三块都是 empty("没有数据"与"加载失败"分得开)
- PASS D6-industry-filter-really-changes-the-numbers — 行业筛选真的重算:设备 9 → 4,正式范围 GAS
- PASS D6b-industry-filter-does-not-refetch-unfilterable-panels — 另两个端点不收行业入参,故其读数不随筛选变化(不假装生效)
- PASS D7-range-is-declared-and-echoed — 窗口 LAST_7_DAYS(不声明时后端是无界 CURRENT_BASELINE,"近 7 日"就只是句空话)
- PASS E1-metric-link-switches-mode — 点指标 → 一级模式切到 warningResponse(落到真实事件列表,那里的事件带设备编码可再跳点位)
- PASS E1b-link-does-not-fake-a-map-locate — 概览 store 不提供任何地图定位入口(本模式端点不含点位编码,定位只能伪造)
- PASS E2-industry-link-writes-the-global-filter — 点行业行 → 全局行业筛选变成 gas(真的驱动一张图与各面板)
- PASS E2b-empty-action-is-refused — 空动作被拒(不静默写一个空筛选或切到未定义模式)
- PASS F1-domain-is-pure — domain 不自己发请求、不反向依赖 service(层次不倒挂)
- PASS F2-service-does-not-build-absolute-urls — service 只给根相对路径,地址与凭据归部署层(票 04 的唯一出口)
- PASS F3-store-has-no-raw-backend-fields — store 里零后端裸字段名(字段改名归 domain)—— 与 t05 的 D1 守卫面同宽
- PASS F4-store-has-no-write-operations — 驾驶舱只读:本票不引入任何写操作
- PASS F5-renderer-does-not-know-panel-ids — 共享渲染层不认识 panelId(它只按 block.kind 与 block.action 分派)
- PASS F5b-renderer-has-no-api-paths-or-fetch — 渲染层不拼接口路径、不发请求
- PASS F6-shell-routes-overview-through-the-shared-seam — 外壳保持两处 hasPanelView 分支与既有的三态措辞(t18 的 H9 断言面)
- PASS F6b-shell-wires-overview-store-and-links — 外壳把概览接进共享接缝:左右栏各一处 @panel-action 绑定 + 取数入口 + 两条联动出口都真的接上
- PASS F6c-shell-per-panel-data-sources-are-pinned — 外壳逐块分派数据源:态势总览→situationData()、基础设施→infrastructureData()、其余→section.data(与各视图函数的期望一一对应)
- PASS F7-domain-declares-its-own-paths-nowhere — domain 里不出现接口路径(路径归 services)
- PASS F8-paths-live-in-one-place — 四个端点路径只有一处声明:/overview/infrastructure / /overview/monitoring / /overview/warning-settings / /infrastructure/base-archives
- T20 overview-panels: 60/63
|