0.7.0.0
This commit is contained in:
+5
-13
@@ -38,33 +38,25 @@ interface PlaceholderMember {
|
||||
|
||||
type MemberOrPlaceholder = FamilyMember | PlaceholderMember
|
||||
|
||||
// 提取占位符生成逻辑为独立函数
|
||||
function addPlaceholdersToFamilyUnit(
|
||||
// 提取配偶添加逻辑为独立函数(移除占位符,让卡片自然流动排列)
|
||||
function addSpousesToFamilyUnit(
|
||||
member: FamilyMember,
|
||||
spouses: FamilyMember[],
|
||||
processedSpouses: Set<string>
|
||||
): MemberOrPlaceholder[] {
|
||||
const result: MemberOrPlaceholder[] = [member]
|
||||
let familyUnitSize = 1 // 主成员自己
|
||||
|
||||
// 添加配偶
|
||||
// 添加配偶(紧跟在主成员后面)
|
||||
if (member.spouseIds && member.spouseIds.length > 0) {
|
||||
member.spouseIds.forEach(spouseId => {
|
||||
const spouse = spouses.find(m => m.id === spouseId)
|
||||
if (spouse && !processedSpouses.has(spouseId)) {
|
||||
result.push(spouse)
|
||||
processedSpouses.add(spouseId)
|
||||
familyUnitSize++
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 计算需要添加的占位符数量,确保填满4的倍数
|
||||
const placeholdersNeeded = (4 - (familyUnitSize % 4)) % 4
|
||||
for (let i = 0; i < placeholdersNeeded; i++) {
|
||||
result.push({ id: `placeholder-${member.id}-${i}`, isPlaceholder: true })
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
@@ -679,12 +671,12 @@ export default function MembersPage() {
|
||||
return aDate.localeCompare(bDate)
|
||||
})
|
||||
|
||||
// 使用优化后的函数添加配偶和占位符
|
||||
// 添加配偶(紧跟在主成员后面,不使用占位符)
|
||||
const result: MemberOrPlaceholder[] = []
|
||||
const processedSpouses = new Set<string>()
|
||||
|
||||
sortedFamilyMembers.forEach(member => {
|
||||
const familyUnit = addPlaceholdersToFamilyUnit(member, members, processedSpouses)
|
||||
const familyUnit = addSpousesToFamilyUnit(member, members, processedSpouses)
|
||||
result.push(...familyUnit)
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user