Files
Neo-ZQYY/docs/audit/changes/2026-03-25__perf-wxml-missing-member-id.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

41 lines
1.9 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.
# 绩效页 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-*` 属性绑定了正确的数据字段。