这些审计记录原本堆积在 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>
41 lines
1.9 KiB
Markdown
41 lines
1.9 KiB
Markdown
# 绩效页 WXML 缺少 data-member-id 导致任务详情页空白
|
||
|
||
- 日期: 2026-03-25
|
||
- Prompt: 绑定小燕访问葛先生任务,依然未找到任务信息
|
||
- 影响范围: `performance.wxml`, `task-detail.ts`
|
||
|
||
## 根因
|
||
|
||
上一轮修复(perf-to-task-detail-member-query)只改了 TS 逻辑层:
|
||
- `performance.ts` 的 `onCustomerTap` 从 `dataset.memberId` 读取值
|
||
- `task-detail.ts` 的 `onLoad` 支持 `memberId` 参数
|
||
- `task-detail.ts` 的 `loadByMember` 调用 `fetchTaskByMember`
|
||
|
||
但遗漏了 WXML 模板层——三处 `bindtap` 绑定都没有添加 `data-member-id` 属性:
|
||
1. 新客列表 `onCustomerTap` — 只有 `data-name`
|
||
2. 常客列表 `onCustomerTap` — 只有 `data-name`
|
||
3. 服务记录 `onRecordTap` — 只有 `data-customer-name` 和 `data-task-id`
|
||
|
||
结果:`e.currentTarget.dataset.memberId` 始终为 `undefined`,传给 task-detail 的 URL 为
|
||
`memberId=undefined`,后端收到空字符串或无效值,返回 404,前端显示"未找到任务信息"。
|
||
|
||
附带问题:`loadByMember` 中 `this.loadData()` 未 await,导致 finally 中 `wx.hideLoading()`
|
||
与 loadData 内部的 showLoading/hideLoading 产生竞态。
|
||
|
||
## 修复
|
||
|
||
1. `performance.wxml`: 三处 bindtap 添加 `data-member-id="{{item.memberId}}"` / `data-member-id="{{rec.memberId}}"`
|
||
2. `task-detail.ts`: `loadByMember` 移除冗余的 showLoading/hideLoading,添加 `await this.loadData()`
|
||
|
||
## 验证
|
||
|
||
- 后端 `get_task_by_member(2799207363643141, 8778, 2790685415443269)` 返回 task_id=210
|
||
- Pydantic 序列化成功,JSON 输出 `id=210, customerName=葛先生`
|
||
- getDiagnostics 三个文件零错误
|
||
|
||
## 教训
|
||
|
||
TS 逻辑层改了 `dataset.xxx` 读取,必须同步检查 WXML 模板中对应的 `data-xxx` 属性是否存在。
|
||
这是「跨页面跳转必须传可查询 ID」规则的延伸:不仅要在 TS 中传 ID,还要确保 WXML 模板中
|
||
`data-*` 属性绑定了正确的数据字段。
|