From ce06674cba74ec71bc9c4159454884f000415ab5 Mon Sep 17 00:00:00 2001 From: selfrelease Date: Thu, 16 Jul 2026 15:45:24 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=A0=E7=BB=9F=E6=97=8F=E8=B0=B1?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E5=85=A8=E9=9D=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 动画 --- app/tree/page.tsx | 250 ++++++++++--------------- components/tree/family-node.tsx | 3 - components/tree/tree-layout.tsx | 320 ++++++++++++-------------------- public/rice-paper.png | Bin 0 -> 131654 bytes tsconfig.tsbuildinfo | 2 +- 5 files changed, 212 insertions(+), 363 deletions(-) create mode 100644 public/rice-paper.png diff --git a/app/tree/page.tsx b/app/tree/page.tsx index 29a8e127..617eb3c0 100644 --- a/app/tree/page.tsx +++ b/app/tree/page.tsx @@ -17,7 +17,7 @@ import { import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog" import { Badge } from "@/components/ui/badge" import { ZoomIn, ZoomOut, Move, Download, LayoutGrid, ChevronDown, Users, Network, Loader2, Maximize2, FileText } from "lucide-react" -import { useState, useRef, useEffect, useCallback } from "react" +import { useState, useRef, useEffect, useCallback, useLayoutEffect } from "react" import { useRouter, useSearchParams } from "next/navigation" import { MemberNameWithStatus } from "@/components/member-name-with-status" import { RelationshipPathDisplay } from "@/components/relationship-path-display" @@ -119,72 +119,67 @@ export default function TreePage() { const containerRef = useRef(null) const d3ChartRef = useRef(null) - // 传统族谱初始定位到始祖并自适应缩放(如果有高亮成员则跳过) - useEffect(() => { + // 传统族谱初始定位到始祖并自适应缩放(使用 useLayoutEffect + rAF 替代 600ms setTimeout) + useLayoutEffect(() => { if (viewMode !== 'traditional' || hasInitialPositioned || !treeData.rootId) return - // 如果有高亮成员,跳过初始定位,让高亮定位逻辑处理 if (highlightedMemberId) { setHasInitialPositioned(true) return } - // 找到始祖成员:优先使用标记为 isFounder 的成员,否则使用 rootId 对应的成员 const founderMember = Object.values(treeData.members).find(m => m.isFounder === true) || treeData.members[treeData.rootId] if (!founderMember) return - // 延迟执行,等待 DOM 渲染完成 - const timer = setTimeout(() => { - if (!containerRef.current) return - - // 查找树内容容器(包含 TreeLayout 的 div) - const treeContent = containerRef.current.querySelector('div[style*="transform"]') as HTMLElement - if (!treeContent) return - - // 查找始祖节点的 DOM 元素 - const founderNode = containerRef.current.querySelector(`[data-member-id="${founderMember.id}"]`) as HTMLElement - if (!founderNode) return - - const containerRect = containerRef.current.getBoundingClientRect() - const treeRect = treeContent.getBoundingClientRect() - - // 计算树的实际尺寸(当前缩放为1) - const treeWidth = treeRect.width - const treeHeight = treeRect.height - - // 计算适合容器的缩放比例,留出一些边距 - const padding = 40 - const scaleX = (containerRect.width - padding * 2) / treeWidth - const scaleY = (containerRect.height - padding * 2) / treeHeight - const fitScale = Math.min(scaleX, scaleY, 1) // 最大不超过1 - const newScale = Math.max(fitScale, 0.2) // 最小0.2 - - // 先设置缩放 - setScale(newScale) - - // 延迟计算位置(等待缩放生效) - setTimeout(() => { + // 双 rAF 确保浏览器完成布局后再计算(~32ms vs 之前 600ms) + let raf2 = 0 + const raf1 = requestAnimationFrame(() => { + raf2 = requestAnimationFrame(() => { if (!containerRef.current) return - const updatedFounderNode = containerRef.current.querySelector(`[data-member-id="${founderMember.id}"]`) as HTMLElement - if (!updatedFounderNode) return + const treeContent = containerRef.current.querySelector('div[style*="transform"]') as HTMLElement + if (!treeContent) return - const updatedContainerRect = containerRef.current.getBoundingClientRect() - const updatedNodeRect = updatedFounderNode.getBoundingClientRect() + const founderNode = containerRef.current.querySelector(`[data-member-id="${founderMember.id}"]`) as HTMLElement + if (!founderNode) return - // 计算始祖节点相对于容器中心的偏移 - const containerCenterX = updatedContainerRect.width / 2 - const nodeCenterX = updatedNodeRect.left - updatedContainerRect.left + updatedNodeRect.width / 2 + const containerRect = containerRef.current.getBoundingClientRect() + const treeRect = treeContent.getBoundingClientRect() - // 计算需要的 x 偏移量使始祖居中 - const offsetX = containerCenterX - nodeCenterX + const treeWidth = treeRect.width + const treeHeight = treeRect.height - setPosition({ x: offsetX, y: 0 }) - setHasInitialPositioned(true) - }, 100) - }, 500) + const padding = 40 + const scaleX = (containerRect.width - padding * 2) / treeWidth + const scaleY = (containerRect.height - padding * 2) / treeHeight + const fitScale = Math.min(scaleX, scaleY, 1) + const newScale = Math.max(fitScale, 0.15) + + setScale(newScale) + + // 下一帧计算居中位置 + requestAnimationFrame(() => { + if (!containerRef.current) return + const updatedFounderNode = containerRef.current.querySelector(`[data-member-id="${founderMember.id}"]`) as HTMLElement + if (!updatedFounderNode) return + + const updatedContainerRect = containerRef.current.getBoundingClientRect() + const updatedNodeRect = updatedFounderNode.getBoundingClientRect() + + const containerCenterX = updatedContainerRect.width / 2 + const nodeCenterX = updatedNodeRect.left - updatedContainerRect.left + updatedNodeRect.width / 2 + const offsetX = containerCenterX - nodeCenterX + + setPosition({ x: offsetX, y: 0 }) + setHasInitialPositioned(true) + }) + }) + }) - return () => clearTimeout(timer) + return () => { + cancelAnimationFrame(raf1) + if (raf2) cancelAnimationFrame(raf2) + } }, [viewMode, treeData.rootId, treeData.members, hasInitialPositioned, highlightedMemberId]) // 切换视图模式时重置初始定位状态和缩放位置 @@ -194,51 +189,43 @@ export default function TreePage() { setPosition({ x: 0, y: 0 }) }, [viewMode]) - // 当有高亮成员时,定位到该成员并居中显示,设置 scale 为 1.0 - useEffect(() => { + // 当有高亮成员时,定位到该成员并居中显示(使用 rAF 替代 1000ms setTimeout) + useLayoutEffect(() => { if (viewMode !== 'traditional' || !highlightedMemberId) return - // 第一步:重置位置和缩放为初始状态 setScale(1) setPosition({ x: 0, y: 0 }) - // 延迟执行,等待 DOM 完全渲染(需要足够长的时间让树完全展开) - const timer = setTimeout(() => { - if (!containerRef.current) { - return - } - - // 查找高亮成员的 DOM 元素 - const highlightedNode = containerRef.current.querySelector(`[data-member-id="${highlightedMemberId}"]`) as HTMLElement - if (!highlightedNode) { - return - } - - const containerRect = containerRef.current.getBoundingClientRect() - const nodeRect = highlightedNode.getBoundingClientRect() - - // 计算容器中心 - const containerCenterX = containerRect.width / 2 - const containerCenterY = containerRect.height / 2 - - // 此时 position 已经是 {x:0, y:0},所以节点位置就是相对于原点的位置 - // 我们需要计算让节点居中的偏移量 - const nodeCenterX = nodeRect.left - containerRect.left + nodeRect.width / 2 - const nodeCenterY = nodeRect.top - containerRect.top + nodeRect.height / 2 - - // 计算偏移量 - const offsetX = containerCenterX - nodeCenterX - const offsetY = containerCenterY - nodeCenterY - - setPosition({ x: offsetX, y: offsetY }) - - // 30秒后清除高亮状态 - setTimeout(() => { - setHighlightedMemberId(null) - }, 30000) - }, 1000) // 增加到1秒,确保DOM完全渲染 + let raf2 = 0 + let raf3 = 0 + const raf1 = requestAnimationFrame(() => { + raf2 = requestAnimationFrame(() => { + raf3 = requestAnimationFrame(() => { + if (!containerRef.current) return + + const highlightedNode = containerRef.current.querySelector(`[data-member-id="${highlightedMemberId}"]`) as HTMLElement + if (!highlightedNode) return + + const containerRect = containerRef.current.getBoundingClientRect() + const nodeRect = highlightedNode.getBoundingClientRect() + + const containerCenterX = containerRect.width / 2 + const containerCenterY = containerRect.height / 2 + const nodeCenterX = nodeRect.left - containerRect.left + nodeRect.width / 2 + const nodeCenterY = nodeRect.top - containerRect.top + nodeRect.height / 2 + + setPosition({ x: containerCenterX - nodeCenterX, y: containerCenterY - nodeCenterY }) + + setTimeout(() => setHighlightedMemberId(null), 30000) + }) + }) + }) - return () => clearTimeout(timer) + return () => { + cancelAnimationFrame(raf1) + if (raf2) cancelAnimationFrame(raf2) + if (raf3) cancelAnimationFrame(raf3) + } }, [viewMode, highlightedMemberId, setHighlightedMemberId]) // 传统族谱自适应视图函数 @@ -362,7 +349,7 @@ export default function TreePage() { const handleWheel = (e: WheelEvent) => { e.preventDefault() const delta = e.deltaY > 0 ? -0.1 : 0.1 - setScale((s) => Math.min(Math.max(s + delta, 0.1), 2)) + setScale((s) => Math.min(Math.max(s + delta, 0.15), 3)) } // 计算两指间距离 @@ -401,7 +388,7 @@ export default function TreePage() { } else if (e.touches.length === 2 && touchStartRef.current.distance) { const newDistance = getTouchDistance(e.touches) const scaleFactor = newDistance / touchStartRef.current.distance - setScale(s => Math.min(Math.max(s * scaleFactor, 0.1), 2)) + setScale(s => Math.min(Math.max(s * scaleFactor, 0.15), 3)) touchStartRef.current.distance = newDistance } } @@ -515,74 +502,18 @@ export default function TreePage() { } } - // 使用useCallback创建稳定的回调,通过ref访问最新的relationMode + // 使用useCallback创建稳定的回调,通过ref访问最新的relationMode(移除直接 DOM 操作) const handleD3MemberClick = useCallback((id: string) => { - console.log('D3 onMemberClick triggered:', id, 'relationMode:', relationModeRef.current) if (relationModeRef.current) { - console.log('Calling handleMemberClick, current selected:', selectedMembersRef.current) - - // 直接操作 DOM 来显示选中标记 - // D3 图表的节点在 SVG 的 foreignObject 中,需要特殊查询 - // 注意:配偶没有独立的节点,需要在配偶区域显示选中标记 - const updateSelectionMark = (memberId: string, selected: boolean) => { - // 首先尝试查找主成员节点 - let nodeElement = document.querySelector(`[data-member-id="${memberId}"]`) as HTMLElement - let isSpouse = false - - // 如果找不到,可能是配偶,尝试查找配偶区域 - if (!nodeElement) { - const spouseArea = document.querySelector(`[data-spouse-id="${memberId}"]`) as HTMLElement - if (spouseArea) { - nodeElement = spouseArea - isSpouse = true - } - } - - if (!nodeElement) { - console.log('Node element not found for:', memberId) - return - } - console.log('Updating selection mark for:', memberId, 'isSpouse:', isSpouse, 'selected:', selected) - - if (selected) { - // 只添加打钩标记,不改变边框和背景 - if (!nodeElement.querySelector('.selection-mark')) { - const checkMark = document.createElement('div') - checkMark.className = 'selection-mark' - if (isSpouse) { - // 配偶区域打钩位置(右边) - checkMark.style.cssText = 'position: absolute; top: -6px; right: -6px; z-index: 20;' - nodeElement.style.position = 'relative' - } else { - // 主成员打钩位置(左边) - checkMark.style.cssText = 'position: absolute; top: 6px; left: 6px; z-index: 20;' - } - checkMark.innerHTML = `` - nodeElement.appendChild(checkMark) - } - } else { - // 移除选中标记 - const mark = nodeElement.querySelector('.selection-mark') - if (mark) mark.remove() - } - } - - // 直接处理选择逻辑 if (selectedMembersRef.current.length === 0) { - // 选择第一个成员 - updateSelectionMark(id, true) setSelectedMembers([id]) } else if (selectedMembersRef.current.length === 1) { const [firstId] = selectedMembersRef.current if (firstId === id) { - // 点击同一个成员,取消选择 - updateSelectionMark(id, false) setSelectedMembers([]) return } - // 选择第二个成员,显示选中标记 - updateSelectionMark(id, true) setSelectedMembers([firstId, id]) const result = calculateRelationship(firstId, id) @@ -596,16 +527,12 @@ export default function TreePage() { }) setShowRelationDialog(true) - // 延迟清除选中状态 setTimeout(() => { - // 清除所有选中标记 - document.querySelectorAll('.selection-mark').forEach(mark => mark.remove()) setSelectedMembers([]) setRelationMode(false) }, 300) } } else { - console.log('Navigating to member detail') const params = new URLSearchParams(window.location.search) router.push(`/members/${id}?${params.toString()}`) } @@ -745,7 +672,17 @@ export default function TreePage() { // 未登录时不渲染内容(已在 useEffect 中重定向) if (status === 'loading' || !session) { - return null + return ( +
+ +
+
+ + 加载中... +
+
+
+ ) } // Handle root not found @@ -838,12 +775,13 @@ export default function TreePage() {
{/* Toolbar - 移动端底部横向,桌面端左侧纵向 */}
- - + {Math.round(scale * 100)}% @@ -862,7 +800,7 @@ export default function TreePage() { {/* Tree Canvas */}
{ - console.log('Navigating to:', url) window.location.href = url }, 100) } @@ -205,7 +203,6 @@ function PersonCard({ const handleConfirmAddParent = () => { if (pendingRelationType) { const url = buildAddUrl(pendingRelationType) - console.log('Confirmed add parent, navigating to:', url) setTimeout(() => { window.location.href = url }, 100) diff --git a/components/tree/tree-layout.tsx b/components/tree/tree-layout.tsx index 6420a148..c7995f70 100644 --- a/components/tree/tree-layout.tsx +++ b/components/tree/tree-layout.tsx @@ -5,7 +5,7 @@ import { FamilyNode } from "./family-node" import { TreeNode } from "./tree-node" import { AddRelationDialog, type RelationType } from "./add-relation-dialog" import { useFamily } from "@/context/family-context" -import { useEffect, useRef, useState, useCallback, useMemo, memo } from "react" +import { useEffect, useRef, useState, useCallback, useMemo, memo, useLayoutEffect } from "react" import { useRouter } from "next/navigation" import { permissions } from "@/lib/permissions" @@ -26,6 +26,33 @@ interface Connection { type: 'vertical' | 'horizontal' } +/** 常见复姓列表 */ +const COMPOUND_SURNAMES = [ + '欧阳', '太史', '端木', '上官', '司马', '东方', '独孤', '南宫', '万俟', '闻人', + '夏侯', '诸葛', '尉迟', '公羊', '赫连', '澹台', '皇甫', '宗政', '濮阳', '公冶', + '太叔', '申屠', '公孙', '慕容', '仲孙', '钟离', '长孙', '宇文', '司徒', '鲜于', + '司空', '闾丘', '子车', '亓官', '司寇', '巫马', '公西', '颛孙', '壤驷', '公良', + '漆雕', '乐正', '宰父', '谷梁', '拓跋', '夹谷', '轩辕', '令狐', '段干', '百里', + '呼延', '东郭', '南门', '羊舌', '微生', '公户', '公玉', '公仪', '梁丘', '公仲', + '公上', '公门', '公山', '公坚', '左丘', '公伯', '西门', '公祖', '第五', '公乘', + '贯丘', '公皙', '南荣', '东里', '东宫', '仲长', '子书', '子桑', '即墨', '达奚', '褚师' +] + +/** 将全名分解为姓和名(模块级函数,避免每次渲染重建) */ +function parseName(fullName: string): { surname: string; givenName: string } { + const name = fullName.trim() + if (!name) return { surname: '', givenName: '' } + for (const compound of COMPOUND_SURNAMES) { + if (name.startsWith(compound) && name.length > compound.length) { + return { surname: compound, givenName: name.slice(compound.length) } + } + } + if (name.length >= 2) { + return { surname: name.charAt(0), givenName: name.slice(1) } + } + return { surname: name, givenName: '' } +} + export function TreeLayout({ rootId, onSelectMember, @@ -52,9 +79,6 @@ export function TreeLayout({ const VERTICAL_GAP = 48 // 3rem = 48px const CONNECTOR_HEIGHT = 48 // 连接线垂直高度 - // 节点注册计数,用于触发连线重新计算 - const [nodeRegisteredCount, setNodeRegisteredCount] = useState(0) - // 折叠状态管理:存储被折叠的节点ID const [collapsedNodes, setCollapsedNodes] = useState>(() => new Set()) @@ -80,12 +104,10 @@ export function TreeLayout({ } }, [expandAll, onExpandAllChange]) - // 处理节点 ref 注册 + // 节点 ref 注册(批量模式,不再触发 N 次 setState) const handleNodeRef = useCallback((memberId: string, el: HTMLDivElement | null) => { if (el) { nodeRefs.current.set(memberId, el) - // 触发连线重新计算 - setNodeRegisteredCount(prev => prev + 1) } else { nodeRefs.current.delete(memberId) } @@ -128,161 +150,101 @@ export function TreeLayout({ return checkHidden(nodeId) }, [getMember, collapsedNodes]) - // 计算所有连线位置 + // 计算所有连线位置(使用 requestAnimationFrame 批量计算,避免 layout thrashing) + const rafIdRef = useRef(null) const calculateConnections = useCallback(() => { - const newConnections: Connection[] = [] - const containerRect = containerRef.current?.getBoundingClientRect() - if (!containerRect) { - return + if (rafIdRef.current !== null) { + cancelAnimationFrame(rafIdRef.current) } + rafIdRef.current = requestAnimationFrame(() => { + rafIdRef.current = null + const newConnections: Connection[] = [] + const containerRect = containerRef.current?.getBoundingClientRect() + if (!containerRect || nodeRefs.current.size === 0) return - // 检查是否有足够的节点已注册 - if (nodeRefs.current.size === 0) { - return - } + nodeRefs.current.forEach((nodeElement, nodeId) => { + const member = getMember(nodeId) + if (!member || !member.childrenIds || member.childrenIds.length === 0) return + if (collapsedNodes.has(nodeId)) return + if (isNodeHiddenByCollapse(nodeId)) return + if (!document.body.contains(nodeElement)) return + const parentRect = nodeElement.getBoundingClientRect() + if (parentRect.width === 0 || parentRect.height === 0) return - let processedCount = 0 - let skippedNoChildren = 0 - let skippedCollapsed = 0 - let skippedHidden = 0 - let skippedNotInDom = 0 - let skippedZeroSize = 0 + const parentCenterX = (parentRect.left + parentRect.width / 2 - containerRect.left) / scale + const parentBottomY = (parentRect.bottom - containerRect.top) / scale - nodeRefs.current.forEach((nodeElement, nodeId) => { - const member = getMember(nodeId) - if (!member || !member.childrenIds || member.childrenIds.length === 0) { - skippedNoChildren++ - return - } - - // 如果该节点被折叠,不绘制到子节点的连线 - if (collapsedNodes.has(nodeId)) { - skippedCollapsed++ - return - } - - // 如果该节点被祖先折叠隐藏,跳过 - if (isNodeHiddenByCollapse(nodeId)) { - skippedHidden++ - return - } - - // 检查元素是否仍在 DOM 中且可见 - if (!document.body.contains(nodeElement)) { - skippedNotInDom++ - return - } - const parentRect = nodeElement.getBoundingClientRect() - // 如果元素不可见(宽高为0),跳过 - if (parentRect.width === 0 || parentRect.height === 0) { - skippedZeroSize++ - return - } - - processedCount++ + const childPositions = member.childrenIds + .map(childId => { + const childElement = nodeRefs.current.get(childId) + if (!childElement || !document.body.contains(childElement)) return null + const childRect = childElement.getBoundingClientRect() + if (childRect.width === 0 || childRect.height === 0) return null + return { + id: childId, + centerX: (childRect.left + childRect.width / 2 - containerRect.left) / scale, + topY: (childRect.top - containerRect.top) / scale + } + }) + .filter(Boolean) as Array<{ id: string; centerX: number; topY: number }> - // 考虑缩放因素:getBoundingClientRect 返回的是缩放后的尺寸 - // 需要除以 scale 来获取实际的逻辑位置 - const parentCenterX = (parentRect.left + parentRect.width / 2 - containerRect.left) / scale - const parentBottomY = (parentRect.bottom - containerRect.top) / scale + if (childPositions.length === 0) return - // 获取所有子节点的位置 - const childPositions = member.childrenIds - .map(childId => { - const childElement = nodeRefs.current.get(childId) - if (!childElement) return null - // 检查子元素是否仍在 DOM 中 - if (!document.body.contains(childElement)) return null - const childRect = childElement.getBoundingClientRect() - // 如果子元素不可见,跳过 - if (childRect.width === 0 || childRect.height === 0) return null - return { - id: childId, - centerX: (childRect.left + childRect.width / 2 - containerRect.left) / scale, - topY: (childRect.top - containerRect.top) / scale - } - }) - .filter(Boolean) as Array<{ id: string; centerX: number; topY: number }> - - if (childPositions.length === 0) return - - // 父节点到水平线的垂直连线 - const verticalLineY = parentBottomY + CONNECTOR_HEIGHT / 2 - newConnections.push({ - from: { x: parentCenterX, y: parentBottomY }, - to: { x: parentCenterX, y: verticalLineY }, - type: 'vertical' - }) - - // 如果有多个子节点,绘制水平连线 - if (childPositions.length > 1) { - const leftmostX = Math.min(...childPositions.map(p => p.centerX)) - const rightmostX = Math.max(...childPositions.map(p => p.centerX)) - + const verticalLineY = parentBottomY + CONNECTOR_HEIGHT / 2 newConnections.push({ - from: { x: leftmostX, y: verticalLineY }, - to: { x: rightmostX, y: verticalLineY }, - type: 'horizontal' - }) - } - - // 每个子节点的垂直连线 - childPositions.forEach(child => { - newConnections.push({ - from: { x: child.centerX, y: verticalLineY }, - to: { x: child.centerX, y: child.topY }, + from: { x: parentCenterX, y: parentBottomY }, + to: { x: parentCenterX, y: verticalLineY }, type: 'vertical' }) - }) - }) - setConnections(newConnections) + if (childPositions.length > 1) { + const leftmostX = Math.min(...childPositions.map(p => p.centerX)) + const rightmostX = Math.max(...childPositions.map(p => p.centerX)) + newConnections.push({ + from: { x: leftmostX, y: verticalLineY }, + to: { x: rightmostX, y: verticalLineY }, + type: 'horizontal' + }) + } + + childPositions.forEach(child => { + newConnections.push({ + from: { x: child.centerX, y: verticalLineY }, + to: { x: child.centerX, y: child.topY }, + type: 'vertical' + }) + }) + }) + + setConnections(newConnections) + }) }, [getMember, collapsedNodes, isNodeHiddenByCollapse, scale]) - // 折叠状态变化时重新计算连线 - useEffect(() => { - // 多次延迟计算,等待 DOM 完全更新 - const timers: NodeJS.Timeout[] = [] - timers.push(setTimeout(calculateConnections, 50)) - timers.push(setTimeout(calculateConnections, 150)) - timers.push(setTimeout(calculateConnections, 300)) - timers.push(setTimeout(calculateConnections, 500)) - timers.push(setTimeout(calculateConnections, 1000)) - return () => timers.forEach(timer => clearTimeout(timer)) - }, [collapsedNodes, calculateConnections]) - - // 缩放变化时重新计算连线 - useEffect(() => { + // 使用 useLayoutEffect 在 DOM 更新后立即计算连线(替代 7 个 setTimeout) + useLayoutEffect(() => { calculateConnections() - }, [scale, calculateConnections]) + // 双 rAF 确保浏览器完成布局后再计算 + const raf2 = requestAnimationFrame(() => calculateConnections()) + return () => cancelAnimationFrame(raf2) + }, [calculateConnections, treeData, collapsedNodes]) - // 节点注册变化时重新计算连线(防抖) + // 使用 ResizeObserver 监听容器尺寸变化(替代 window.resize) useEffect(() => { - if (nodeRegisteredCount === 0) return - const timer = setTimeout(calculateConnections, 100) - return () => clearTimeout(timer) - }, [nodeRegisteredCount, calculateConnections]) + const container = containerRef.current + if (!container) return + const observer = new ResizeObserver(() => calculateConnections()) + observer.observe(container) + return () => observer.disconnect() + }, [calculateConnections]) + // 清理 rAF useEffect(() => { - // 多次尝试计算,确保 DOM 完全渲染 - // 对于大型族谱(100+人),需要更长的延迟 - const timers: NodeJS.Timeout[] = [] - timers.push(setTimeout(calculateConnections, 100)) - timers.push(setTimeout(calculateConnections, 300)) - timers.push(setTimeout(calculateConnections, 500)) - timers.push(setTimeout(calculateConnections, 1000)) - timers.push(setTimeout(calculateConnections, 2000)) - timers.push(setTimeout(calculateConnections, 3000)) - timers.push(setTimeout(calculateConnections, 5000)) - - // 监听窗口大小变化 - window.addEventListener('resize', calculateConnections) - return () => { - timers.forEach(timer => clearTimeout(timer)) - window.removeEventListener('resize', calculateConnections) + if (rafIdRef.current !== null) { + cancelAnimationFrame(rafIdRef.current) + } } - }, [calculateConnections, treeData]) + }, []) // 预计算排序后的子节点映射,避免每次渲染时重复计算 @@ -310,45 +272,6 @@ export function TreeLayout({ if (!root) return null - // 姓名分解函数:将全名分解为姓和名 - const parseName = (fullName: string): { surname: string; givenName: string } => { - const name = fullName.trim() - if (!name) return { surname: '', givenName: '' } - - // 常见复姓列表 - const compoundSurnames = [ - '欧阳', '太史', '端木', '上官', '司马', '东方', '独孤', '南宫', '万俟', '闻人', - '夏侯', '诸葛', '尉迟', '公羊', '赫连', '澹台', '皇甫', '宗政', '濮阳', '公冶', - '太叔', '申屠', '公孙', '慕容', '仲孙', '钟离', '长孙', '宇文', '司徒', '鲜于', - '司空', '闾丘', '子车', '亓官', '司寇', '巫马', '公西', '颛孙', '壤驷', '公良', - '漆雕', '乐正', '宰父', '谷梁', '拓跋', '夹谷', '轩辕', '令狐', '段干', '百里', - '呼延', '东郭', '南门', '羊舌', '微生', '公户', '公玉', '公仪', '梁丘', '公仲', - '公上', '公门', '公山', '公坚', '左丘', '公伯', '西门', '公祖', '第五', '公乘', - '贯丘', '公皙', '南荣', '东里', '东宫', '仲长', '子书', '子桑', '即墨', '达奚', '褚师' - ] - - // 检查是否是复姓 - for (const compound of compoundSurnames) { - if (name.startsWith(compound) && name.length > compound.length) { - return { - surname: compound, - givenName: name.slice(compound.length) - } - } - } - - // 单姓处理 - if (name.length >= 2) { - return { - surname: name.charAt(0), - givenName: name.slice(1) - } - } - - // 只有一个字,作为姓 - return { surname: name, givenName: '' } - } - // 递归渲染树节点 - 使用 memo 优化 const handleCreateNewRelation = (prefillName: string, relationType: RelationType) => { if (!relationDialog) return @@ -423,36 +346,27 @@ export function TreeLayout({ return (
- {/* 连线层 - 使用 div 绘制 */} -
+ {/* 连线层 - 使用 SVG path 绘制(清晰且支持动画) */} + {connections.map((conn, index) => { - const isHorizontal = conn.type === 'horizontal' - // 使用 1px 但通过 transform scale 缩小来实现细线 - const width = isHorizontal ? Math.abs(conn.to.x - conn.from.x) : 1 - const height = isHorizontal ? 1 : Math.abs(conn.to.y - conn.from.y) - const left = Math.min(conn.from.x, conn.to.x) - const top = Math.min(conn.from.y, conn.to.y) - - // 跳过无效的连线(宽度或高度为0) - if (width <= 0 || height <= 0) return null - + const d = `M ${conn.from.x} ${conn.from.y} L ${conn.to.x} ${conn.to.y}` return ( -
) })} -
+ {/* 树节点层 */}
diff --git a/public/rice-paper.png b/public/rice-paper.png new file mode 100644 index 0000000000000000000000000000000000000000..4dce15c5bc1fccc7adbdb7ae16acef3bc5033d21 GIT binary patch literal 131654 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