v3.17.41 重构阶段3b/4a · 数据服务迁移
v3.17.41 重构阶段 3b/4a · 数据服务迁移
依据 docs/重构计划-2026-09-11.md 推进(S4.1 + S3.1c)。
| 改动 | 说明 |
|---|---|
src/lib/dataService.js |
新增 Vue 侧数据刷新唯一入口:拉取日历/待办/提醒/记账数据 → 写入 Pinia store → 触发纯重渲染钩子 → 过渡期继续发布 window 镜像(经典层兼容) |
calendarStore |
不再从 window.allData 灌数据;syncFromWindow() 改为直接从原生桥重新拉取 |
| 刷新钩子 | __refreshCalendarGrid / __refreshStats 改为纯重渲染(不再隐式读 window 镜像;保存后 store 自身状态已最新) |
| 设置页 | 6 处 window.refreshAllData 调用改走 dataService.refreshAllData()(同步/下载/导入/恢复路径全覆盖) |
| 诊断出口 | 新增 window.__dataService.refreshAllData(),便于排查"同步后不刷新"类问题 |
验证(agent-browser 实测)
- 冷启动:Pinia
daysData有数据、Vue 网格正常渲染、0 错误 - 保存链路:打卡 → 状态写入 → store 与界面同步更新(纯 tick 刷新)
dataService.refreshAllData()端到端:before/after 数据一致、单元格状态正确、0 错误
死壳审计结论(决定阶段 4 策略)
.app 死壳 59 个 id 中 48 个仍被经典脚本引用 → 删除 DOM 必须与经典渲染层删除同批进行,已记入计划 §9。
下一步
经典渲染层分模块退役 → 同批删除 .app 死壳 → 收窄 shims.js → 阶段 5 收尾。