feat(台账): 删房产/房产税六列 + 免租分两种类型 + 台账改批量暂存编辑
列模型 36 → 31:删 AD~AI(房产六列,RETIRED_TAX_COLS),新增 AK「免租类型」(显示位置插在 L 之后)。
rentfree 重写为两类型:首N月免租 = [I, I+L月);每年8-9月免租 = 合约期 [I,J] 内每个自然年 8-9 月整月(跨年裁剪,J 按含当日)。hit() 按时点、overlaps() 按账单期间交集(年度类型必需)。
账单按免租数据跳过:rent_preview 对每行与每份单据标 rentfree,汇总新增 rentfree_count / rentfree_rows。
台账编辑改批量暂存:改格先高亮暂存(不再逐格弹窗),「保存全部」一次确认后单次 PUT /api/tables/{key}/cells 落盘(带 428 闸门),可在修改记录里整批撤销。
迁移 tools/migrate_rentfree_type.py(幂等):删 6 列 / 165 存量值 → 按代码重建 31 列 → 回填 302/303/315「首N月免租」。
修渲染真 bug:renderGrid() 末尾补 renderPendBar()(否则保存成功后待保存条不消失)。
验证:单测 219 项全绿;UI 回归 ui_verify 1~9 全绿(新增 ui_verify9.py 39 项 + ui_verify_runner.py 沙箱跑需连服务的脚本)。
Showing
tools/ui_verify9.py
0 → 100644
tools/ui_verify_runner.py
0 → 100644