This commit is contained in:
freedakgmail
2025-11-24 14:02:34 +08:00
parent b7a8c9ee6e
commit 3d075c6076
941 changed files with 25613 additions and 27641 deletions
+176
View File
@@ -0,0 +1,176 @@
# 版本历史详细视图
## ✅ 功能完成
版本历史现在直接显示每个版本的详细内容,不需要点击。
## 🎯 显示效果
### 布局结构
```
┌─────────────────────────────────────────┐
│ 📜 版本历史 │
│ 共 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. **性能**:使用分页或虚拟滚动优化大量版本的显示