2.8 KiB
2.8 KiB
操作日志详细变更显示功能
✅ 功能已完成
操作日志现在可以显示详细的变更对比信息,不再显示"已记录变更(详细对比功能开发中)"。
📍 查看入口
方式 1:通过顶部导航
- 点击右上角的设置图标(齿轮图标)
- 进入"系统设置"页面
- 滚动到"操作日志"部分
方式 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.tsxformatChanges()函数格式化变更信息- 支持 26 个字段的中文标签显示
- 智能处理数组、布尔值、长文本等特殊类型
📊 支持的字段
显示以下字段的变更:
- 基本信息:姓名、姓氏、名字、性别
- 日期:出生日期、去世日期
- 地点:出生地、祖籍、地址、安葬地
- 联系方式:手机、电话、邮箱
- 家族信息:世代、字辈、字、号、谥号、排行
- 关系:父亲、母亲、配偶、子女
- 其他:简介、照片、标签、始祖、农历日期
🧪 测试
创建测试数据
npx tsx scripts/create-test-update.ts
验证功能
npx tsx scripts/test-activity-log-changes.ts
📝 使用说明
-
查看操作日志
- 访问
/settings页面 - 查看"操作日志"卡片
- 访问
-
筛选日志
- 使用下拉菜单选择特定家族树
- 或选择"所有家族树"查看全部
-
清空日志
- 只有家族树所有者可以清空日志
- 需要二次确认以防误操作
-
查看变更详情
- 更新操作会自动显示变更详情
- 点击成员名称可跳转到成员详情页
✨ 优势
- 直观易懂:清晰显示修改前后的对比
- 智能格式化:自动处理不同类型的数据
- 完整记录:保存所有字段的变更历史
- 可追溯:随时查看历史变更记录
🔮 未来计划
- 在成员详情页显示该成员的历史版本
- 支持版本回滚功能
- 导出操作日志为 CSV/Excel
- 更多筛选和搜索选项