0.3.1.3
This commit is contained in:
+27
-5
@@ -80,6 +80,11 @@ const MemberCard = memo(function MemberCard({
|
||||
member.spouseIds && member.spouseIds.length > 0 &&
|
||||
!isFounder
|
||||
|
||||
// 判断是否是孤立成员(没有父母、没有配偶、不是始祖)
|
||||
const isOrphan = !member.fatherId && !member.motherId &&
|
||||
(!member.spouseIds || member.spouseIds.length === 0) &&
|
||||
!isFounder
|
||||
|
||||
// 获取配偶信息
|
||||
const spouse = isSpouse && member.spouseIds?.[0]
|
||||
? allMembers.find(m => m.id === member.spouseIds[0])
|
||||
@@ -94,12 +99,14 @@ const MemberCard = memo(function MemberCard({
|
||||
const isDead = !!member.deathDate
|
||||
|
||||
// 根据在世/已故状态设置卡片样式
|
||||
// 优先级:始祖 > 已故 > 在世
|
||||
// 优先级:始祖 > 孤立 > 已故 > 在世
|
||||
const cardStyle = isFounder
|
||||
? '!border-2 !border-amber-400 !bg-amber-50/30 dark:!bg-amber-900/20 shadow-md' // 始祖:金色边框(优先级最高)
|
||||
: isDead
|
||||
? '!border-2 !border-gray-400 dark:!border-gray-600 !bg-gray-50/50 dark:!bg-gray-900/30' // 已故:灰色深边框
|
||||
: '!border-2 !border-amber-300/70 !bg-card dark:!border-amber-600/50' // 在世:浅金色边框
|
||||
: isOrphan
|
||||
? '!border-2 !border-orange-400 !bg-orange-50/30 dark:!bg-orange-900/20' // 孤立:橙色边框提醒
|
||||
: isDead
|
||||
? '!border-2 !border-gray-400 dark:!border-gray-600 !bg-gray-50/50 dark:!bg-gray-900/30' // 已故:灰色深边框
|
||||
: '!border-2 !border-amber-300/70 !bg-card dark:!border-amber-600/50' // 在世:浅金色边框
|
||||
|
||||
return (
|
||||
<div className="relative group">
|
||||
@@ -173,6 +180,11 @@ const MemberCard = memo(function MemberCard({
|
||||
<p className="text-xs text-amber-700 font-semibold mt-0.5 truncate">
|
||||
家族始祖
|
||||
</p>
|
||||
) : isOrphan ? (
|
||||
<p className="text-xs text-orange-600 font-medium mt-0.5 truncate flex items-center gap-1">
|
||||
<span>⚠️</span>
|
||||
<span>孤立成员 - 请关联至族谱</span>
|
||||
</p>
|
||||
) : isSpouse && spouseName ? (
|
||||
<p className="text-xs text-purple-700 mt-0.5 truncate">
|
||||
{spouseName}的配偶
|
||||
@@ -369,13 +381,23 @@ export default function MembersPage() {
|
||||
.sort((a, b) => a[0] - b[0])
|
||||
.map(([generation, members]) => {
|
||||
// 区分家族成员和配偶
|
||||
// 配偶定义:没有父母但有配偶的成员(嫁入/娶入的成员)
|
||||
// 其他所有成员都应该显示,包括孤立成员
|
||||
const familyMembers = members.filter(m => {
|
||||
const isFounder = m.isFounder === true
|
||||
const hasFamilyParents = m.fatherId || m.motherId
|
||||
const hasSpouse = m.spouseIds && m.spouseIds.length > 0
|
||||
|
||||
// 始祖或有父母的成员:显示
|
||||
if (hasFamilyParents || isFounder) return true
|
||||
if (generation === 1 && (!m.spouseIds || m.spouseIds.length === 0)) return true
|
||||
|
||||
// 第一代无配偶成员:显示
|
||||
if (generation === 1 && !hasSpouse) return true
|
||||
|
||||
// 孤立成员(无父母、无配偶、非始祖):也要显示,方便用户关联
|
||||
if (!hasFamilyParents && !hasSpouse && !isFounder) return true
|
||||
|
||||
// 配偶(无父母但有配偶):不在这里显示,会跟随主成员显示
|
||||
return false
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user