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

1.9 KiB
Raw Blame History

绩效页 WXML 缺少 data-member-id 导致任务详情页空白

  • 日期: 2026-03-25
  • Prompt: 绑定小燕访问葛先生任务,依然未找到任务信息
  • 影响范围: performance.wxml, task-detail.ts

根因

上一轮修复perf-to-task-detail-member-query只改了 TS 逻辑层:

  • performance.tsonCustomerTapdataset.memberId 读取值
  • task-detail.tsonLoad 支持 memberId 参数
  • task-detail.tsloadByMember 调用 fetchTaskByMember

但遗漏了 WXML 模板层——三处 bindtap 绑定都没有添加 data-member-id 属性:

  1. 新客列表 onCustomerTap — 只有 data-name
  2. 常客列表 onCustomerTap — 只有 data-name
  3. 服务记录 onRecordTap — 只有 data-customer-namedata-task-id

结果:e.currentTarget.dataset.memberId 始终为 undefined,传给 task-detail 的 URL 为 memberId=undefined,后端收到空字符串或无效值,返回 404前端显示"未找到任务信息"。

附带问题:loadByMemberthis.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-* 属性绑定了正确的数据字段。