| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- PASS A1-six-backend-statuses — 六态 ALARM, WARNING, WORK_ORDER, NORMAL, OFFLINE, EMPTY 都有词条
- PASS A2-labels-match-backend — 中文标签与后端枚举逐字一致
- PASS A3-priority-from-backend — 优先级 1,2,3,4,5,6
- PASS A4-every-visual-has-shape-tone-label — 8 条词条都是 形状+色键+文字
- PASS A5-shapes-pairwise-distinct — 8 条词条用到 8 种形状:triangle, diamond, square, circle, ring, hollowSquare, hollowDiamond, cross
- PASS A6-neutral-group-split-by-shape — 中性灰 4 个状态用 4 种形状
- PASS A7-tones-are-known-keys — 色键都取自 lv1/lv2/lv3/lv4/neutral
- PASS A8-legend-covers-eight-rows — 图例 8 行(六态 + 状态未发布 + 无关联设备)
- PASS A9-unknown-shape-safe — 认不出的形状退回实心圆,不抛错也不留空
- PASS B1-unknown-status-not-guessed-as-normal — MAINTENANCE → UNKNOWN「状态未发布」
- PASS B2-missing-status-not-guessed — 没给状态时如实说「状态未发布」,不落成正常
- PASS B3-lowercase-not-coerced — 后端发的是大写枚举;小写不当成同一个状态(不猜、不归一化)
- PASS B4-unassociated-is-its-own-row — 未关联设备不借用在线态(票 05 同一立场:0/NORMAL 都算伪造)
- PASS B5-status-passed-through-not-derived — 状态原样取自后端字段,前端不做任何推导
- PASS C1-only-renderable-becomes-marker — 标记 4 · 拦下 2(共 6 个对象)
- PASS C2-blocked-kept-not-dropped — 拦下的仍在 blocked 里:MP-4, EQ-2(不上图 ≠ 不存在)
- PASS C3-marker-carries-backend-status — 标记带后端原始状态串,供排查与后续票消费
- PASS C4-by-status-counts — {"ALARM":1,"NORMAL":1,"WARNING":1,"UNASSOCIATED":1}
- PASS C5-marker-visual-matches-table — 每个标记的色键/形状/文字都能在词表里逐字对上(同一张表)
- PASS C6-coordinate-criteria-not-reinvented — 空输入安全,且准入只走 domain/coordinate.js 的 isRenderable()
- PASS C7-unknown-status-becomes-own-row — 认不出的状态自成一行,不落到真实状态上({"UNKNOWN":1})
- PASS D1-legend-matches-markers — 图例与标记逐行一致
- PASS D2-legend-counts-equal-markers — 图例合计 5 = 标记 5
- PASS D3-legend-row-for-every-used-status — 报警 2 · 工单处置 1 · 离线 1 · 无设备 1
- PASS D4-zero-count-rows-still-listed — 没出现的状态也留在图例里(形状的含义要能查到),只是计数为 0
- PASS D5-inconsistency-detected — 计数错/形状错/缺行 三类篡改都被抓到:2, 1, 2 条问题
- PASS D6-summary-matches-plan — byStatus 就是按标记算出来的,不是另算一份
- PASS E1-svg-data-url — data:image/svg+xml;charset=utf-8,%3Csvg%
- PASS E2-color-baked-in — 颜色烘焙进图片(billboard 读不到页面 CSS 变量,必须由服务层传色进来)
- PASS E3-color-is-parameter — 换颜色/换形状得到不同图片
- PASS E4-shape-markup-included — 形状片段来自 SHAPES,不另画一套
- PASS F1-no-event-level-words-in-point-status — pointStatus.js 的代码里没有事件等级词汇,也没引用 LEVEL_TAGS
- PASS F2-map-legend-is-point-status-not-event-level — 地图图例改成点位状态图例(不再是事件四级),带 data-map-legend 供走查断言
- PASS F3-no-second-palette-declaration — domain/组件层没有第二份语义色调色板
- PASS F3b-domain-has-no-palette-at-all — pointStatus.js 的代码里连调色板色值都不出现(颜色全靠调用方传)
- PASS F4-colors-read-from-tokens — 地图标记的颜色从 .cockpit-shell 的计算样式读 --lv1..--neutral
- PASS F4b-engine-and-domain-never-read-css — 读样式只发生在服务层一处(引擎与 domain 都不碰 DOM)
- PASS F5-engine-knows-shape-not-status — cesiumEngine 只认 shape/tone,不认识业务状态名
- T09 逻辑检查:38/38 项通过。
|