diff --git a/docs/evidence/bugfix/2026-07-14-counter-topup-detail.md b/docs/evidence/bugfix/2026-07-14-counter-topup-detail.md new file mode 100644 index 0000000..b214325 --- /dev/null +++ b/docs/evidence/bugfix/2026-07-14-counter-topup-detail.md @@ -0,0 +1,74 @@ +# 柜台收费预存款详情修复验证 + +## 根因 + +柜台收费页面的预存款展示行使用支付记录 ID,但“详情”按钮统一调用账单详情接口 `/business/charge/get`。支付记录 ID 被误作账单 ID 后,接口无法返回对应预存业务数据,账单详情弹窗中的字段全部显示为 `--`。 + +## 修复 + +- 按 `displayChargeType` 分流普通账单与预存款详情。 +- 预存款不再调用账单详情接口,改用专用弹窗展示客户、支付和余额快照。 +- 历史预存记录保留 `lastDeposit`、`deposit`、预存金额、收费时间和收费方式。 +- 刚办理成功的预存优先使用重新查询到的持久化记录;查询未恢复记录时使用成功响应降级展示。 +- 普通账单继续使用原 `/business/charge/get` 详情链路。 +- 金额或余额为 `0` 时显示 `0.00`,仅空值显示 `--`。 + +## TDD 证据 + +### RED + +命令: + +```bash +node --test tests/operatingCharges/counterChargingPersistentTopup.test.mjs +``` + +结果:退出码 `1`,共 7 个测试,原有 4 个通过,新增 3 个失败。失败分别证明缺少预存款详情分流、专用字段与余额映射、零值格式化。 + +### GREEN + +命令: + +```bash +node --test tests/operatingCharges/counterChargingPersistentTopup.test.mjs +``` + +结果:退出码 `0`,7/7 通过。 + +## 回归验证 + +### 柜台收费既有测试 + +```bash +pnpm test:counter-charging +``` + +结果:退出码 `0`,4/4 通过。 + +### 组合测试 + +```bash +node --test tests/operatingCharges/counterChargingPersistentTopup.test.mjs tests/operatingCharges/counterChargingInventory.test.mjs +``` + +结果:退出码 `0`,11/11 通过。 + +### 前端构建 + +```bash +NODE_OPTIONS=--max-old-space-size=8192 pnpm build:dev +``` + +结果:退出码 `0`,输出 `Build successful. Please see dist directory`。构建过程中存在项目既有的 SVG symbolId 和 Rollup 注释警告,但未导致构建失败。 + +## 代码基线 + +- 前端分支:`fix/counter-topup-detail` +- RED 测试提交:`2aeecaa8` +- 余额快照提交:`83142c72` +- 专用详情实现提交:`c6941001` +- 验证日期:2026-07-14 + +## 约束 + +按用户要求,未运行 `vue-tsc`、`pnpm ts:check` 或任何会调用 `vue-tsc` 的命令。