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

2.8 KiB

操作日志详细变更显示功能

功能已完成

操作日志现在可以显示详细的变更对比信息,不再显示"已记录变更(详细对比功能开发中)"。

📍 查看入口

方式 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 个字段的中文标签显示
    • 智能处理数组、布尔值、长文本等特殊类型

📊 支持的字段

显示以下字段的变更:

  • 基本信息:姓名、姓氏、名字、性别
  • 日期:出生日期、去世日期
  • 地点:出生地、祖籍、地址、安葬地
  • 联系方式:手机、电话、邮箱
  • 家族信息:世代、字辈、字、号、谥号、排行
  • 关系:父亲、母亲、配偶、子女
  • 其他:简介、照片、标签、始祖、农历日期

🧪 测试

创建测试数据

npx tsx scripts/create-test-update.ts

验证功能

npx tsx scripts/test-activity-log-changes.ts

📝 使用说明

  1. 查看操作日志

    • 访问 /settings 页面
    • 查看"操作日志"卡片
  2. 筛选日志

    • 使用下拉菜单选择特定家族树
    • 或选择"所有家族树"查看全部
  3. 清空日志

    • 只有家族树所有者可以清空日志
    • 需要二次确认以防误操作
  4. 查看变更详情

    • 更新操作会自动显示变更详情
    • 点击成员名称可跳转到成员详情页

优势

  1. 直观易懂:清晰显示修改前后的对比
  2. 智能格式化:自动处理不同类型的数据
  3. 完整记录:保存所有字段的变更历史
  4. 可追溯:随时查看历史变更记录

🔮 未来计划

  • 在成员详情页显示该成员的历史版本
  • 支持版本回滚功能
  • 导出操作日志为 CSV/Excel
  • 更多筛选和搜索选项