This commit is contained in:
freedakgmail
2025-11-30 19:10:30 +08:00
parent a05fb384a4
commit 86e889cc2a
16 changed files with 1555 additions and 763 deletions
+26 -1
View File
@@ -237,7 +237,32 @@ function FamilyProviderInner({ children }: { children: React.ReactNode }) {
const data = await response.json()
// 更新本地状态
// 由于后端会维护双向关系,需要重新加载所有成员以保持数据一致性
// 特别是当修改了关系字段(spouseIds, childrenIds, fatherId, motherId)时
const hasRelationshipChanges =
updates.spouseIds !== undefined ||
updates.childrenIds !== undefined ||
updates.fatherId !== undefined ||
updates.motherId !== undefined
if (hasRelationshipChanges) {
// 重新加载所有成员数据以同步双向关系
const membersResponse = await fetch(`/api/trees/${currentTree.id}/members`)
if (membersResponse.ok) {
const membersData = await membersResponse.json()
const membersMap: Record<string, FamilyMember> = {}
membersData.members.forEach((m: FamilyMember) => {
membersMap[m.id] = m
})
setTreeData(prev => ({
...prev,
members: membersMap,
}))
return
}
}
// 如果没有关系变更,只更新当前成员
setTreeData(prev => ({
...prev,
members: {