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

105 lines
2.8 KiB
Markdown

# 操作日志详细变更显示功能
## ✅ 功能已完成
操作日志现在可以显示详细的变更对比信息,不再显示"已记录变更(详细对比功能开发中)"。
## 📍 查看入口
### 方式 1:通过顶部导航
1. 点击右上角的**设置图标**(齿轮图标)
2. 进入"系统设置"页面
3. 滚动到"操作日志"部分
### 方式 2:直接访问
访问 `/settings` 页面,操作日志在页面底部。
## 🎯 功能特性
### 详细变更显示
当更新成员时,操作日志会显示:
- ✅ 修改了哪些字段
- ✅ 修改前的值
- ✅ 修改后的值
- ✅ 智能格式化(性别、标签、数组等)
### 显示示例
```
更新成员 李秀英
王先生
2025-11-24 13:12:15
• 修改了简介:从 "贤妻良母,持家有道。" → "贤妻良母,持家有道。【测试更新】..."
• 修改了手机:从 "无" → "13800138000"
• 修改了地址:从 "无" → "测试地址:北京市朝阳区"
```
## 🔧 技术实现
### 后端
- `app/api/trees/[treeId]/members/[memberId]/route.ts`
- 更新成员时调用 `recordMemberHistory()`
- 将 MemberHistory 的详细变更信息保存到 ActivityLog
### 前端
- `components/settings/activity-log-viewer.tsx`
- `formatChanges()` 函数格式化变更信息
- 支持 26 个字段的中文标签显示
- 智能处理数组、布尔值、长文本等特殊类型
## 📊 支持的字段
显示以下字段的变更:
- 基本信息:姓名、姓氏、名字、性别
- 日期:出生日期、去世日期
- 地点:出生地、祖籍、地址、安葬地
- 联系方式:手机、电话、邮箱
- 家族信息:世代、字辈、字、号、谥号、排行
- 关系:父亲、母亲、配偶、子女
- 其他:简介、照片、标签、始祖、农历日期
## 🧪 测试
### 创建测试数据
```bash
npx tsx scripts/create-test-update.ts
```
### 验证功能
```bash
npx tsx scripts/test-activity-log-changes.ts
```
## 📝 使用说明
1. **查看操作日志**
- 访问 `/settings` 页面
- 查看"操作日志"卡片
2. **筛选日志**
- 使用下拉菜单选择特定家族树
- 或选择"所有家族树"查看全部
3. **清空日志**
- 只有家族树所有者可以清空日志
- 需要二次确认以防误操作
4. **查看变更详情**
- 更新操作会自动显示变更详情
- 点击成员名称可跳转到成员详情页
## ✨ 优势
1. **直观易懂**:清晰显示修改前后的对比
2. **智能格式化**:自动处理不同类型的数据
3. **完整记录**:保存所有字段的变更历史
4. **可追溯**:随时查看历史变更记录
## 🔮 未来计划
- [ ] 在成员详情页显示该成员的历史版本
- [ ] 支持版本回滚功能
- [ ] 导出操作日志为 CSV/Excel
- [ ] 更多筛选和搜索选项