#!/usr/bin/env node /** * 管理端响应式契约守卫(admin-web) * * 为什么需要它: * 2026-09-23 渲染态实测(Edge 无头 + CDP 取计算样式/DOM 文本)发现数据统计页 * **漏斗卡恒显示 0**,而正下方同一张卡里的汇总表却显示 12846 / 9217 / 8462 / 3812 * —— 同一个页面、同一个数据源,两处互相矛盾。 * * 根因不是取数失败(控制台 0 错误、网络 0 失败):这三组是 * const funnelStages = [ { value: 0, ... } ] // 普通数组,非响应式 * funnelStages[0].value = userData.totalRegistered // 直接改元素 * 而模板读的就是同一个数组 —— **非响应式写入不触发重渲染**,Vue 看不到变化。 * 对比之下,凡走 `ref` 的值(汇总表、V11 区块、日程)全部正常。 * * 这类缺陷的可怕之处: * - 源码里完全合法(无 TS 报错、无 lint 报错、构建通过); * - 19 个既有守卫全绿(都是源码结构断言,看不出「渲染后没更新」); * - 只有**真跑起来看渲染结果**才暴露 —— 即「全绿 ≠ 有效」的又一例。 * 所以必须把它变成可执行断言:**非响应式声明 + 被当状态写 + 出现在模板里 = 失败**。 * * 三项检查: * 1) 非响应式状态(核心)—— 普通 `const x = [...]` / `= {}` 若在