• wenwen.tang's avatar
    feat(电费): 核对改按行粒度 + 台账按账期汇总 + 楼层总表登记 · 3aa94d82
    wenwen.tang authored
    一、核对粒度:房间 → 行
    核对从「按房间」改为「按行」,行键 = `单元|类目`(如 `302室|照明`),
    于是可以只核照明、或只核空调,也可只核一部分行。
    
    - service: `blank_verify()` 增 rows/scope;新增 `_row_keys()` / `_checked_rows()`
      (旧 `units` 自动按整室展开,向后兼容)
    - `verify_summary()` 的 `ok` 由「全勾完」改为「已点过确认核对」,
      新增 `partial`(done 且仍有未勾行)
    - `set_verify()` 确认时把勾选快照存进 `verify.scope`;之后进度保存若勾选集合
      少于 scope 就**自动撤销确认**,防止改完数据还挂着「已核对」
    - 归一化时 `units` 置空只留 `rows`,否则行级取消勾选会被派生 units 抵消
    - `period_summary()` 改行并集:一行算已核对 ⇔ 含它的每张批次都勾了它
    
    二、批次台账:按账期汇总、入口收敛
    - 列表按账期(月)汇总成一行,默认折叠,点汇总头展开该账期批次
    - 移除列表里的「重新编辑 / 核对」,统一进批次详情
    - 详情页展示是否核对状态;部分核对发送前二次提醒
    
    三、核对模式的列显示
    - 12 个可显隐列 + 持久化 `localStorage['rentos_vcols']`;「核对」列不可隐藏
    - 修:`[hidden]` 被 `.colpick-menu{display:flex}` 顶掉导致菜单收不回来
    - 修:`bindVCols()` 每次重渲染往 document 挂新监听导致无限累积
    - 开关状态提到模块级 `VCOLS_OPEN`,支持再点按钮/×/点外部/Esc 四种收起方式
    
    四、新增:楼层电费总表(3F/6F/7F)
    - `rentos/masters.py`:每层拆 公共/套内/空调总,按 用量×电价×系数 算金额
    - 口径:**只记账,不出单、不发送**,随批次存档并支持导出
    - 接入 `GET /api/masters`、`ingest_elec(masters=…)`、`reingest_elec(masters=…)`
    3aa94d82
app.js 161 KB