5.6 KiB
5.6 KiB
版本历史详细视图
✅ 功能完成
版本历史现在直接显示每个版本的详细内容,不需要点击。
🎯 显示效果
布局结构
┌─────────────────────────────────────────┐
│ 📜 版本历史 │
│ 共 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
- 自动滚动条
- 移动端自适应
🔧 技术实现
数据格式化
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)
}
字段分组
-
家族关系字段:
fatherId,motherIdspouseIds,childrenIdsspouseFatherName,spouseMotherName
-
详细信息字段:
- 基本信息、日期、地点
- 联系方式
- 其他属性
-
简介字段:
bio
渲染逻辑
const renderVersionDetail = (snapshot: any) => {
return (
<div className="mt-3 space-y-4">
{/* 家族关系 */}
<div>...</div>
{/* 详细信息 */}
<div>...</div>
{/* 简介 */}
{snapshot.bio && <div>...</div>}
</div>
)
}
✨ 优势
- 一目了然:无需点击即可查看所有版本详情
- 信息完整:显示版本的完整快照
- 布局清晰:家族关系在最上方,详细信息两列显示
- 易于对比:多个版本垂直排列,便于比较
- 性能优化:使用 ScrollArea 虚拟滚动
📊 字段映射
| 字段 | 中文标签 | 显示位置 |
|---|---|---|
| fatherId | 父亲 | 家族关系 |
| motherId | 母亲 | 家族关系 |
| spouseIds | 配偶 | 家族关系 |
| childrenIds | 子女 | 家族关系 |
| fullName | 姓名 | 详细信息 |
| gender | 性别 | 详细信息 |
| birthDate | 出生日期 | 详细信息 |
| phone | 手机 | 详细信息 |
| 邮箱 | 详细信息 | |
| bio | 简介 | 单独显示 |
| ... | ... | ... |
💡 使用场景
- 查看修改历史:了解成员信息的变化过程
- 数据审计:追踪谁在什么时候修改了什么
- 错误恢复:查看历史版本,准备回滚
- 信息对比:比较不同版本的差异
🔮 未来增强
- 版本对比:选择两个版本进行详细对比
- 版本回滚:一键恢复到历史版本
- 变更高亮:突出显示与上一版本的差异
- 搜索过滤:按时间、操作人筛选版本
- 导出功能:导出版本历史为PDF/Excel
📝 注意事项
- 数据量:版本过多时可能影响加载速度
- 隐私:确保只有有权限的用户能查看
- 存储:每个版本保存完整快照,注意存储空间
- 性能:使用分页或虚拟滚动优化大量版本的显示