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
+171
View File
@@ -0,0 +1,171 @@
# 成员详情页版本历史功能
## ✅ 功能已完成
成员详情页现在显示版本历史,可以查看成员信息的所有修改记录。
## 📍 页面布局
### 新布局(左右分栏)
**左侧(2/3宽度)**
1. 详细信息(出生日期、年龄、逝世日期等)
2. 联系方式(手机、电话、邮箱、地址)
3. 生平事迹
4. 照片墙
5. 家族故事
6. 家族关系(父母、配偶、子女)
**右侧(1/3宽度)**
- 版本历史列表
## 🎯 版本历史功能
### 显示内容
- ✅ 版本号
- ✅ 操作类型(创建/更新/删除)
- ✅ 修改时间
- ✅ 修改人
- ✅ 变更摘要(前3个字段)
### 交互功能
- ✅ 点击版本高亮显示
- ✅ 滚动查看所有历史
- ✅ 自动选中最新版本
### 显示示例
```
┌─────────────────────────────┐
│ 版本历史 │
│ 共 5 个版本 │
├─────────────────────────────┤
│ [更新] 版本 5 ▶ │
│ 2025-11-24 13:18:32 │
│ 虞女士 │
│ • 简介 │
│ • 邮箱 │
│ 等 4 项 │
├─────────────────────────────┤
│ [更新] 版本 4 │
│ 2025-11-24 12:20:57 │
│ 虞女士 │
│ • 手机 │
│ • 地址 │
├─────────────────────────────┤
│ [创建] 版本 1 │
│ 2025-11-23 10:00:00 │
│ 虞女士 │
└─────────────────────────────┘
```
## 🔧 技术实现
### 新增文件
#### 1. 版本历史组件
**文件:** `components/members/member-version-history.tsx`
**功能:**
- 获取并显示成员的所有历史版本
- 支持点击选择版本
- 显示变更摘要
- 自动关联用户信息
#### 2. API 端点
**文件:** `app/api/trees/[treeId]/members/[memberId]/history/route.ts`
**功能:**
- 获取成员的历史记录
- 批量查询用户信息
- 按版本号倒序排列
### 修改文件
#### 成员详情页
**文件:** `app/members/[id]/page.tsx`
**修改:**
- 导入版本历史组件
- 重新组织布局(左右分栏)
- 将详细信息和联系方式移到左侧
- 右侧显示版本历史
## 📊 数据流
```
用户访问成员详情页
加载成员基本信息
调用 API 获取版本历史
/api/trees/[treeId]/members/[memberId]/history
查询 MemberHistory 表
批量查询 User 表(获取修改人信息)
组合数据并返回
前端显示版本历史列表
用户点击版本(未来可查看详情)
```
## 🎨 UI 设计
### 颜色标识
- **创建**:绿色 (bg-green-100 text-green-700)
- **更新**:蓝色 (bg-blue-100 text-blue-700)
- **删除**:红色 (bg-red-100 text-red-700)
### 选中状态
- 边框:`border-primary`
- 背景:`bg-primary/5`
- 阴影:`shadow-sm`
- 指示器:右侧箭头图标
### 响应式设计
- 桌面:左右分栏(2:1
- 移动:上下堆叠
## 🔮 未来功能
### 第一阶段(已完成)
- ✅ 显示版本历史列表
- ✅ 显示变更摘要
- ✅ 支持版本选择
### 第二阶段(计划中)
- [ ] 点击版本查看完整快照
- [ ] 版本对比功能
- [ ] 版本回滚功能
- [ ] 导出版本历史
## 💡 使用说明
1. **查看版本历史**
- 访问任意成员详情页
- 右侧自动显示版本历史
- 最新版本默认选中
2. **查看变更详情**
- 每个版本显示前3个变更字段
- 超过3个显示总数提示
3. **查看修改人**
- 每个版本显示修改人姓名或邮箱
- 显示修改时间
## 📝 注意事项
1. **权限**:所有有权访问成员的用户都能查看版本历史
2. **性能**:历史记录按需加载,不影响页面性能
3. **存储**:每个版本保存完整快照,占用一定存储空间
## ✨ 优势
1. **完整追溯**:可以查看成员信息的完整修改历史
2. **责任明确**:记录每次修改的操作人
3. **数据安全**:支持未来的版本回滚功能
4. **审计友好**:满足数据审计需求