Files
chinese-family-tree-2/MEMBER_NAME_DISPLAY_LOCATIONS.md
T
freedakgmail 3d075c6076 0.0.8.5
2025-11-24 14:02:34 +08:00

139 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 成员姓名显示位置梳理
本文档列出了整个应用中所有显示成员姓名的位置,用于统一实施状态标识(在世/已故)。
## ✅ 已实施状态标识的位置
### 1. 成员列表页面
**文件**: `app/members/page.tsx`
- [x] 成员卡片中的姓名
- **状态**: 已使用 `MemberNameWithStatus` 组件
### 2. 首页
**文件**: `app/page.tsx`
- [x] 本月祭祖/纪念 - 成员姓名
- [x] 近期纪念日 - 成员姓名
- **状态**: 已使用 `MemberNameWithStatus` 组件
### 3. 搜索结果
**文件**: `components/site-header.tsx`
- [x] 顶部搜索框下拉结果中的姓名
- **状态**: 已使用 `MemberNameWithStatus` 组件
### 4. 家族树图谱
**文件**: `components/tree/family-node.tsx`
- [x] 树形节点中的姓名
- **状态**: 已使用 `MemberNameWithStatus` 组件
### 5. D3 组织图表
**文件**: `components/tree/d3-org-chart-flow.tsx`
- [x] 组织图表节点中的姓名
- **状态**: 已在 HTML 字符串中添加状态圆点
---
## ⏳ 待实施状态标识的位置
### 6. 成员详情页面
**文件**: `app/members/[id]/page.tsx`
- [x] 主成员姓名(页面标题)
- [x] 配偶姓名列表
- [x] 子女姓名列表
- [x] 父母姓名
- **状态**: 已使用 `MemberNameWithStatus` 组件
### 7. 时间线页面
**文件**: `app/timeline/page.tsx`
- [x] 时间线事件中的成员姓名
- [x] 诞生事件中的父母姓名
- [x] 诞生事件中的配偶姓名
- [x] 迁徙事件中的成员姓名(迁出地和迁入地)
- **状态**: 已使用 `MemberNameWithStatus` 组件
### 8. 关系计算器页面
**文件**: `app/relationship/page.tsx`
- [x] 成员A选择按钮显示
- [x] 成员A下拉列表中的所有成员姓名
- [x] 成员B选择按钮显示
- [x] 成员B下拉列表中的所有成员姓名
- [x] 计算结果中的两个成员姓名
- [x] 关系说明中的成员姓名
- [x] 关系路径中的所有成员姓名(使用 `RelationshipPathDisplay` 组件)
- [x] 直系亲属中的父母姓名
- [x] 直系亲属中的配偶姓名
- [x] 直系亲属中的子女姓名
- [x] 兄弟姐妹姓名
- **状态**: 已使用 `MemberNameWithStatus``RelationshipPathDisplay` 组件
### 9. 家族树页面(关系计算结果)
**文件**: `app/tree/page.tsx`
- [x] 关系计算结果中的两个成员姓名
- [x] 关系说明中的成员姓名
- [x] 关系路径中的所有成员姓名(使用 `RelationshipPathDisplay` 组件)
- **状态**: 已使用 `MemberNameWithStatus``RelationshipPathDisplay` 组件
### 10. 成员表单(选择器)
**文件**: `components/members/member-form.tsx`
- [x] 父亲选择器下拉列表中的姓名
- [x] 母亲选择器下拉列表中的姓名
- [x] 配偶选择器下拉列表中的姓名
- [x] 已选配偶列表中的姓名
- [x] 子女选择器下拉列表中的姓名
- [x] 已选子女列表中的姓名
- **状态**: 已使用 `MemberNameWithStatus` 组件
### 11. 通知设置
**文件**: `components/settings/notification-settings.tsx`
- [x] 生日提醒列表中的成员姓名
- [x] 忌日提醒列表中的成员姓名
- **状态**: 已使用 `MemberNameWithStatus` 组件
---
## 📋 实施优先级
### ✅ 高优先级(用户常见页面)- 已完成
1. ✅ 成员列表
2. ✅ 首页(本月祭祖/纪念、近期纪念日)
3. ✅ 搜索结果
4. ✅ 家族树图谱
5. ✅ D3 组织图表
6. ✅ 成员详情页面
7. ✅ 时间线页面
### ✅ 中优先级 - 已完成
8. ✅ 关系计算器页面(包括选择器和下拉列表)
### ✅ 低优先级 - 已完成
9. ✅ 家族树页面的关系计算结果
10. ✅ 成员表单选择器(所有选择器和已选列表)
11. ✅ 通知设置(生日和忌日提醒列表)
---
## 🎨 实施标准
所有位置统一使用 `MemberNameWithStatus` 组件:
```tsx
<MemberNameWithStatus
name={member.fullName}
isDead={!!member.deathDate}
/>
```
**视觉效果**:
- 🟢 在世:绿色圆点,文字正常颜色
- ⚫ 已故:灰色圆点,文字颜色变浅
**圆点位置**: 人名右侧,`right-0.5 top-1`,尺寸 8px
---
## 📝 注意事项
1. 对于 HTML 字符串渲染(如 D3 图表),需要手动添加状态圆点样式
2. 确保所有位置的视觉效果保持一致
3. 已故成员的文字颜色应该变浅(`text-muted-foreground`
4. 圆点应该与文字垂直对齐