Commit Graph

11 Commits

Author SHA1 Message Date
selfrelease 3f005779ae fix: 统一卡片高度 - PersonCard 和 WithSpouse 卡片均设 min-h-[177px]
PersonCard(无配偶)原高 177px,WithSpouse(有配偶)原高 153px,
同行混排时高度不齐导致错行感。两种卡片统一最小高度 177px,
WithSpouse 内容区域垂直居中。
2026-07-16 16:13:46 +08:00
selfrelease b4536c52ef fix: 连线位置偏移修复 - 改用 offsetLeft/offsetTop 替代 getBoundingClientRect
根因: getBoundingClientRect 返回屏幕坐标(受 scale 影响),
初始定位过程中 scale 从 1→0.45 变化时,连线在中间状态计算,
导致坐标与最终布局不匹配。

修复: 使用 offsetLeft/offsetTop 遍历 offsetParent 链获取本地坐标,
完全不受 CSS transform/scale 影响,消除 scale 依赖。
2026-07-16 16:03:40 +08:00
selfrelease ce06674cba perf: 传统族谱视图全面优化
P0 性能优化:
- 连线计算用 requestAnimationFrame + useLayoutEffect 替代 7个 setTimeout 轮询
- 节点注册改为批量 ref 模式,消除 N 次 setState 重渲染
- 初始定位用 useLayoutEffect + 双 rAF 替代 600ms setTimeout
- 高亮定位用三 rAF 替代 1000ms setTimeout
- 使用 ResizeObserver 替代 window.resize 监听

P1 视觉优化:
- 连线从 div 改为 SVG path 绘制,清晰且支持动画
- 背景纹理图从 transparenttextures.com 本地化到 public/
- 添加骨架屏 loading 状态替代 return null

P2 代码质量:
- 移除 page.tsx 中 5 处 console.log
- 移除 family-node.tsx 中 3 处 console.log
- 消除 handleD3MemberClick 中的直接 DOM 操作(createElement/innerHTML)
- parseName 提取为模块级函数,避免每次渲染重建

P3 增强:
- 缩放范围从 0.1~2 调整为 0.15~3
- 工具栏显示当前缩放比例
- SVG 连线添加 transition 动画
2026-07-16 15:45:24 +08:00
freedakgmail e9b1641509 0.6.0.2 2025-12-10 10:19:29 +08:00
freedakgmail dd2f67073b 0.5.0.2 2025-11-30 22:04:36 +08:00
freedakgmail 89f1e061d4 0.3.0.5 2025-11-30 13:09:52 +08:00
freedakgmail fd9c064749 0.3.0.0 2025-11-30 09:16:43 +08:00
freedakgmail d22f1fb889 0.2.0.1 2025-11-29 21:56:05 +08:00
freedakgmail dca082e0a3 0.2.0.0 2025-11-29 21:23:45 +08:00
freedakgmail e44dd0bd95 0.0.8.0 2025-11-23 18:03:04 +08:00
freedakgmail e92884ae53 0.0.1.0 2025-11-23 03:07:39 +08:00