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

177 lines
5.6 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.
# 版本历史详细视图
## ✅ 功能完成
版本历史现在直接显示每个版本的详细内容,不需要点击。
## 🎯 显示效果
### 布局结构
```
┌─────────────────────────────────────────┐
│ 📜 版本历史 │
│ 共 5 个版本 │
├─────────────────────────────────────────┤
│ ┌─────────────────────────────────────┐ │
│ │ [更新] 版本 5 2025-11-24 13:18 │ │
│ │ 👤 虞女士 │ │
│ │ │ │
│ │ 家族关系 │ │
│ │ 父亲: xxx 母亲: xxx │ │
│ │ 配偶: xxx 子女: xxx │ │
│ │ │ │
│ │ 详细信息 │ │
│ │ 姓名: xxx 性别: 男 │ │
│ │ 出生: xxx 世代: 3 │ │
│ │ 手机: xxx 邮箱: xxx │ │
│ │ ... │ │
│ │ │ │
│ │ 简介 │ │
│ │ 这是一段简介... │ │
│ └─────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────┐ │
│ │ [更新] 版本 4 2025-11-24 12:20 │ │
│ │ ... │ │
│ └─────────────────────────────────────┘ │
└─────────────────────────────────────────┘
```
## 📋 显示内容
### 1. 版本头部
- 操作类型标签(创建/更新/删除)
- 版本号
- 修改时间(精确到分钟)
### 2. 操作人
- 显示修改人姓名或邮箱
### 3. 家族关系(最上方)
- 父亲、母亲
- 配偶、子女
- 岳父/公公、岳母/婆婆
- **两列布局**
### 4. 详细信息
- 基本信息:姓名、性别、出生日期等
- 联系方式:手机、电话、邮箱、地址
- 其他信息:世代、字辈、字、号等
- **两列布局**
### 5. 简介
- 显示前3行(line-clamp-3
- 单独一行显示
## 🎨 样式设计
### 颜色标识
- **创建**`bg-green-100 text-green-700 border-green-200`
- **更新**`bg-blue-100 text-blue-700 border-blue-200`
- **删除**`bg-red-100 text-red-700 border-red-200`
### 布局特点
- 每个版本独立卡片
- 版本间间距:`space-y-6`
- 内容两列布局:`grid grid-cols-2`
- 标签和值左右对齐:`flex justify-between`
### 响应式
- 滚动区域高度:600px
- 自动滚动条
- 移动端自适应
## 🔧 技术实现
### 数据格式化
```typescript
const formatValue = (value: any) => {
if (value === null || value === undefined) return '-'
if (typeof value === 'boolean') return value ? '是' : '否'
if (Array.isArray(value)) return value.length > 0 ? value.join(', ') : '-'
return String(value)
}
```
### 字段分组
1. **家族关系字段**
- `fatherId`, `motherId`
- `spouseIds`, `childrenIds`
- `spouseFatherName`, `spouseMotherName`
2. **详细信息字段**
- 基本信息、日期、地点
- 联系方式
- 其他属性
3. **简介字段**
- `bio`
### 渲染逻辑
```typescript
const renderVersionDetail = (snapshot: any) => {
return (
<div className="mt-3 space-y-4">
{/* 家族关系 */}
<div>...</div>
{/* 详细信息 */}
<div>...</div>
{/* 简介 */}
{snapshot.bio && <div>...</div>}
</div>
)
}
```
## ✨ 优势
1. **一目了然**:无需点击即可查看所有版本详情
2. **信息完整**:显示版本的完整快照
3. **布局清晰**:家族关系在最上方,详细信息两列显示
4. **易于对比**:多个版本垂直排列,便于比较
5. **性能优化**:使用 ScrollArea 虚拟滚动
## 📊 字段映射
| 字段 | 中文标签 | 显示位置 |
|------|---------|---------|
| fatherId | 父亲 | 家族关系 |
| motherId | 母亲 | 家族关系 |
| spouseIds | 配偶 | 家族关系 |
| childrenIds | 子女 | 家族关系 |
| fullName | 姓名 | 详细信息 |
| gender | 性别 | 详细信息 |
| birthDate | 出生日期 | 详细信息 |
| phone | 手机 | 详细信息 |
| email | 邮箱 | 详细信息 |
| bio | 简介 | 单独显示 |
| ... | ... | ... |
## 💡 使用场景
1. **查看修改历史**:了解成员信息的变化过程
2. **数据审计**:追踪谁在什么时候修改了什么
3. **错误恢复**:查看历史版本,准备回滚
4. **信息对比**:比较不同版本的差异
## 🔮 未来增强
1. **版本对比**:选择两个版本进行详细对比
2. **版本回滚**:一键恢复到历史版本
3. **变更高亮**:突出显示与上一版本的差异
4. **搜索过滤**:按时间、操作人筛选版本
5. **导出功能**:导出版本历史为PDF/Excel
## 📝 注意事项
1. **数据量**:版本过多时可能影响加载速度
2. **隐私**:确保只有有权限的用户能查看
3. **存储**:每个版本保存完整快照,注意存储空间
4. **性能**:使用分页或虚拟滚动优化大量版本的显示