Files
Neo-ZQYY/docs/audit/changes/2026-03-27__board-finance-double-format-fix.md
Neo 14a12342b5 chore(audit): 补追 96 份未入仓审计孤本 — 覆盖 2026-02-26 ~ 2026-04-08
这些审计记录原本堆积在 docs/audit/changes/changes/ 嵌套误产物目录下(由开发机迁移
79d3c2e 前后的不明批量操作产生)。由于同期 .gitignore 屏蔽了 docs/audit/ 全目录,
它们从未入过 git 任何分支 history。删除即永久丢失。

按 docs/specs/audit-gap-recovery/tasks.md 阶段 1 执行,将全部 96 份 D 类孤本
(主目录无同名、git history 亦无记录)复制到 docs/audit/changes/ 主目录入仓。

涵盖主题: P1-P18 全栈集成 / 多模块累积变更 / ETL bug 修复 / 业务日切 /
   召回与任务引擎改造 / 租户管理与审批 / 董事会财务 / 客户与助教详情 /
   DDL 基线合并 / Kiro 到 Claude Code 迁移

阶段 2(B 类内容漂移 1 份)和阶段 4(嵌套目录删除)独立推进。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 06:35:42 +08:00

54 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 变更审计记录board-finance 双重格式化修复
| 字段 | 值 |
|------|-----|
| 日期 | 2026-03-27 19:07:51 |
| Prompt-ID | P20260327-190751 |
## 操作摘要
修复 board-finance.ts 中的双重格式化 bugTS 层 `_loadData()``formatMoney()` 把数字格式化为字符串(如 `"¥543,047"`WXML 中 WXS `fmt.money()` 再处理该字符串得到 NaN。移除 TS 层所有 `formatMoney()` 调用,金额字段直接传原始数字(`?? 0`),格式化统一由 WXS 完成。同时包含权限守卫添加、区域筛选扩展、AI 洞察字段、预估规则等多项集成改动。
## 改动方案
TS 层 `_loadData()` 中移除所有 `formatMoney()` 调用,金额字段直接传原始数字(`?? 0`)。百分比字段(`discountRate``balanceRate`)也直接传原始小数。助教时薪字段不再拼接 `'¥' + val + '/h'`,直接传数字。格式化统一由 WXML 中的 WXS 函数完成。
移除了 `import { formatMoney }` 导入(文件内不再使用)。
## 文件清单
| 文件 | 改动类型 |
|------|----------|
| `apps/miniprogram/miniprogram/pages/board-finance/board-finance.ts` | 逻辑修复 |
## 本次对话文件变更
新增文件:
- `docs/audit/changes/2026-03-27__board-finance-double-format-fix.md`
- `docs/audit/prompt_logs/prompt_log_20260327_190751.md`
- `docs/audit/session_logs/2026-03/27/16_ecccf230_185956/main_01_ec27502d.md`
- `docs/audit/session_logs/2026-03/27/16_ecccf230_185956/sub_01_9802833d.md`
## 改动注解
### `apps/miniprogram/miniprogram/pages/board-finance/board-finance.ts`
- 变更类型:修改
- 原始原因:财务看板全部 6 个板块金额显示为 NaN根因是 TS 层 `formatMoney()` 预格式化后 WXS 再次调用数值方法导致双重格式化
- 思路分析遵循「TS 与 WXS 格式化互斥」原则TS 层只传原始数字(`?? 0` 防 null所有格式化交给 WXML 中的 WXS 函数。同时本次集成了多项之前的改动:添加 `checkPageAccess` 权限守卫、`getVisibleBoardTabs` 动态看板 tab、区域筛选从 7 项扩展到 9 项(对齐后端 `AreaFilterEnum`)、新增 `isCurrentMonth` 预估标记和 `aiInsights` AI 洞察字段、overview/assistant/gift 等板块数据从 mock 替换为真实 API 绑定
- 修改结果:财务看板 6 个板块金额/百分比正常显示,筛选联动正常,权限守卫生效,区域筛选完整覆盖所有区域类型
## 风险评估
- 低风险:仅移除 TS 层格式化WXS 层格式化逻辑不变
- 前提WXML 中所有金额字段已使用 `fmt.money()` 等 WXS 函数,百分比/时薪字段有对应 WXS 处理
## 回滚
恢复 `formatMoney` 导入,将所有 `?? 0` 改回 `formatMoney(...)` 调用,百分比字段恢复 `* 100 + '%'`,时薪恢复 `'¥' + val + '/h'`
## 验证
1. 打开财务看板页,确认 6 个板块金额显示正常(非 NaN
2. 切换时间/区域筛选,确认数据刷新后金额仍正常
3. 开启环比开关,确认对比数据显示正常