14-frontend-real-scope-filter.md 7.1 KB

14: 前端执行票 —— real 生命周期接线 + 状态筛选/自动加载/饼图

Type: task Status: resolved Label: ready-for-agent Blocked by: 02, 04 Category: frontend-execution Assignee: agent

来源

状态

前端执行票已完成(resolved)。本次已在当前工作树的 http://localhost:8001 完成 t08 浏览器 15/15、t18 浏览器 40/40、t14 补充浏览器 7/7;逻辑回归 t08 44/44、t18 76/76。多选 OR、全局计数、饼图高亮、另有 N 台、自动分批、real 自动启动/401 分区隔离/NO_BASE_URL 不回退已验证。real transport 的受控 HTTP 响应验证不是正式后端业务联调;真实接口联调仍归票 18。

进度:100%

本票范围实施与规定验收完成。未运行 build;用户明确授权本次 dev 与浏览器走查。

范围(做什么)

  1. real 生命周期接线:外壳 real 分支照搬 mock 全部自动初始化(地图第 1 页、四模式面板、WS 直订、新鲜度 tick 全套);失败同套分区语义、严格不回退 mock、未配 baseUrl 如实报不可用;刷新调度以 #04 为唯一权威。
  2. 状态筛选与自动加载:顶部状态栏=全局组合筛选入口(八桶多选 OR、全局未筛计数、选中高亮、行常驻可点);pointStatus 多值契约;移除"加载下一页/刷新快照"按钮,右上角留 🔄 手动刷新;自动分批加载到完成;坐标汇总筛选后口径。
  3. 饼图:监测分布面板状态统计改饼图,消费全局未筛分布并高亮当前选中;面板不再自带筛选入口。
  4. 展开点位命中设备子集:只显示命中设备 + 「另有 N 台」可展开;总数/已上图口径如实。

非目标

  • 不实现后端契约(多值 pointStatus、命中设备子集、八桶计数)——这些是后端执行票(12 及后续)的工作;前端先按规格接好消费侧并如实降级。
  • 不实现真实联调(归联调基线流程)。

验收(后续执行)

零依赖逻辑闸门 +浏览器走查(data-*:状态栏多选、🔄 刷新、饼图、另有 N 台、自动分批加载完成态、失败分区 UNAVAILABLE)。

关联

  • 上游:规格 07/09、决策 02/04
  • 下游:可与 15/16 并行

Comments

2026-10-08 认领与阶段判定

  • 已认领(agent 会话执行,Assignee: agent)。本票无 needs-triage 标签、ready-for-agent、前置决策 02/04 已 resolved、规格 07/09 已发布,判定处于「可实施」阶段,直接进入实施。
  • 实施范围=票面「范围」四条:① real 生命周期接线(外壳 real 分支照搬 mock 自动初始化);② 状态筛选与自动加载(顶部状态栏全局组合筛选、pointStatus 多值、移除加载下一页/刷新快照、🔄 手动刷新、自动分批加载、坐标汇总筛选后口径);③ 监测分布饼图(消费全局未筛分布、高亮选中、面板去筛选入口);④ 展开点位命中设备子集(「另有 N 台」、总数/已上图口径)。
  • 非目标遵守:不实现后端契约(多值 pointStatus、命中设备子集、八桶计数归后端执行票 12+);真实联调归票 18。
  • 遵循仓库 AGENTS.md:实施后不运行 build/dev/浏览器走查,只做零依赖逻辑闸门的静态核验。

执行核验(接续会话)

  • 阶段判断:无 needs-triage;ready-for-agent;依赖 02/04 已关闭 → 实施阶段。认领沿正文 Assignee: agent 与 2026-10-08 评论(deck 写认领被文件沙箱拒绝,以正文为准)。
  • 现状核验(对抗式,按票面四条范围逐条对照代码事实): ① real 同构启动:domain/startupPlan.js 纯函数 + 外壳按清单执行;real 不注册 mock,失败分区 UNAVAILABLE / NO_BASE_URL,无回退 mock 路径(t04/t08 断言覆盖)。 ② 状态筛选与自动加载:filterStore 多值八桶(空=全部、白名单、toggle);mapStore 装载链 refresh 自动分批到完成(纪元号丢弃迟到链);MapCanvas 顶部状态栏八桶多选、全局未筛计数、行常驻可点;「加载下一页/刷新快照」按钮已移除,右上角 🔄 手动刷新保留(data-map-refresh)。 ③ 饼图:domain/statusPie.js + PanelBlocks pie 块(data-pie-*),消费 mapStore.statusDistribution 全局未筛分布、高亮当前选中、面板无筛选入口;分布未发布时如实说明(不伪造全零饼图)。 ④ 命中设备子集:domain/deviceLayer.js UNMATCHED 归类 + PointDetailCard「另有 N 台」展开(data-device-more-*),总数/已上图口径按快照 deviceCodes 与命中子集分列。
  • 本轮修复:① 外壳 LOAD_SHARED_SECTIONS 显式下发 config(loadSharedSections 对 mapStore 的合并式 setup 中 config: undefined 会覆盖已注入配置);② t04 硬编码地址守卫改为对代码正则(契约路径写在注释里被误判,沿 t18 code() 纪律);③ t08 G5 / t18 F3 断言对齐决策 02 的自动分批契约(旧断言停在「第 1 页等手动翻页」)。
  • 闸门:t04 通过、t08 44/44、t16 43/43、t18 76/76 全绿;未触及的 t05/t09/t15/t42/t46 等未重跑。浏览器走查按仓库 AGENTS.md 规则跳过(未获本对话明确要求)。
  • 结论:代码实施与静态闸门完成;本票暂不关闭——票面验收含浏览器走查,留待明确要求后收口;真实联调与阶段收口归票 18。

最终验收与 Resolution

  • 用户授权开启 8001 服务并优先完成本票;当前工作树 t08 浏览器 15/15、t18 浏览器 40/40 全通过,补齐旧服务证据缺口。
  • 新增 t14 补充走查,7/7:ALARM+WARNING 多选 OR、全局计数不变、饼图两个选中扇区及未选扇区变暗、有限几何、取消单桶保留另一桶、real transport 自动请求四模式与地图且 401 只使监测概览 UNAVAILABLE、缺 baseUrl 的地图/设备分区 UNAVAILABLE 且不回退 mock。
  • 补充 real 场景使用受控 HTTP 响应证明生命周期与分区隔离,不冒称真实后端业务联调;后者归票 18。
  • 对抗式走查发现并修复两处遗漏:monitoring/distribution mock 对多状态整串作单值比较,改复用 matchesStatusFilter;mapSnapshot 分区翻译 FAILED 时丢失 NO_BASE_URL 语义,改复用 sectionStateFromReason。
  • 启动时另被并行资产工作中的 manifest 相对路径错误阻断,最小修复退四级后页面恢复。public 导入警告属于资产工作独立事项,本票不冒称构建通过。
  • 回归:t08 逻辑 44/44、t18 逻辑 76/76。遵循 AGENTS.md 跳过 build;dev/浏览器因用户明确要求执行。
  • Resolution:本票前端实施与规定验收通过,关闭。后续按地图推进前端票 15/16,真实接口联调与总收口归票 18。