# 华夏谱 (HuaXiaPu) - 系统完善计划 本计划旨在将当前的“华夏谱”原型系统转化为一个功能完备、数据安全、体验优秀的家族树管理应用。 ## 阶段一:数据持久化与基础可用性 (Data Persistence & Usability) **优先级:最高 (P0)** **目标**:解决刷新页面导致数据丢失的问题,确保用户录入的数据能够安全保存。 1. **本地存储 (Local Storage) 集成** * **机制**:利用浏览器的 `localStorage` API。 * **实现**: * 修改 `FamilyContext`,在应用启动时优先从 `localStorage` 读取数据。 * 在 `addMember`, `updateMember`, `deleteMember` 等所有写操作后,自动同步最新状态到 `localStorage`。 * 使用 `useEffect` 监听数据变化并防抖保存。 * **重置功能**:在设置页添加“清除本地缓存”按钮,用于恢复默认演示数据。 2. **数据备份增强** * **优化 JSON 导出**:确保导出的 JSON 文件包含完整的时间戳、版本号和元数据。 * **智能导入**:导入时进行数据格式校验,防止坏数据崩坏页面;提供“合并”或“覆盖”选项。 ## 阶段二:核心功能增强 (Core Feature Enhancement) **优先级:高 (P1)** **目标**:补充家谱管理中必不可少的多媒体和标准格式支持。 1. **多媒体支持 (Media Support)** * **头像上传**: * *方案 A (纯前端)*:实现图片裁剪并转换为 Base64 字符串存储(注意控制大小)。 * *方案 B (云存储)*:集成 AWS S3 或类似对象存储服务(需后端支持)。 * **相册功能**:允许为每个成员添加多张生活照。 2. **GEDCOM 标准支持** * **导入**:引入 GEDCOM 解析库 (e.g., `read-gedcom`),支持从其他软件(如 Ancestry, MyHeritage)迁移数据。 * **导出**:将内部数据结构转换为标准 `.ged` 格式,确保数据可迁移性。 3. **族谱可视化升级** * **导出图片**:集成 `html2canvas` 或类似库,允许用户将当前的家谱树导出为高清 PNG/JPG 图片,方便打印。 * **视图切换**:增加“垂直视图”(传统吊线图)和“水平视图”的切换。 * **折叠/展开**:支持点击节点折叠子分支,优化在大数据量下的查看体验。 ## 阶段三:逻辑校验与体验优化 (Logic & UX) **优先级:中 (P2)** **目标**:提升数据的准确性,防止逻辑错误的录入。 1. **逻辑校验规则** * **时间校验**:出生日期 < 逝世日期;子女出生日期 > 父母出生日期 + X 年。 * **关系校验**:防止循环引用(自己不能是自己的祖先)。 * **完整性提示**:提示缺失信息的成员(如缺失配偶、缺失生卒年)。 2. **搜索与筛选增强** * **高级搜索**:支持按字辈、籍贯、标签、生卒年份范围进行组合筛选。 * **快速定位**:搜索结果点击后,在族谱图中自动居中并高亮显示该成员。 3. **界面细节打磨** * **移动端适配**:优化移动端的触摸拖拽和缩放体验。 * **暗色模式**:完善 Dark Mode 的配色细节。 * **多语言**:支持 简体中文 / 繁体中文 切换。 ## 阶段四:后端集成与协作(远期规划) **优先级:低 (P3)** **目标**:支持多用户在线协作修谱。 1. **用户系统**:集成 NextAuth.js,支持邮箱/手机号登录。 2. **云端数据库**:迁移至 PostgreSQL + Prisma,实现数据的云端永久存储。 3. **权限管理**: * *管理员*:可编辑所有信息。 * *编辑者*:仅可编辑特定分支。 * *浏览者*:仅查看,不可编辑。 4. **操作日志**:记录谁在什么时候修改了哪条记录(修谱记录)。 --- ## 建议执行路径 1. **立即执行**:完成 **阶段一**,使应用具备基本的实用价值。 2. **随后**:根据用户反馈,选择性实施 **阶段二** 中的“导出图片”和“GEDCOM支持”。 ## 已完成的高优先级功能 ✅ ### 1. 导出族谱图为图片 ✅ - 使用 html2canvas 实现 - 支持导出为高清 PNG 格式 - 自动重置视图以获取完整族谱 - 文件名包含日期标识 ### 2. GEDCOM 格式支持 ✅ - 完整的 GEDCOM 5.5.1 格式导出 - GEDCOM 文件导入功能 - 自动解析个人信息和家庭关系 - 兼容 Ancestry、MyHeritage 等主流软件 ### 3. 搜索结果在族谱图中定位 ✅ - 成员列表页面添加定位按钮 - 点击后跳转到族谱图并高亮显示 - 高亮样式:黄色边框 + 脉冲动画 - 支持全局高亮状态管理 ### 4. 图片裁剪和压缩 ✅ - 使用 react-image-crop 实现裁剪 - 使用 browser-image-compression 自动压缩 - 圆形裁剪框,适合头像 - 支持跳过裁剪直接保存 - 压缩至 1MB 以下,最大尺寸 1024px ### 5. 循环引用检测 ✅ - 深度优先搜索检测循环引用 - 防止将后代设置为祖先 - 自我引用检测(不能是自己的父母/配偶) - 实时验证并显示错误提示 --- ## 已完成的中优先级功能 ✅ ### 6. 照片墙(多张照片)✅ - 使用 `react-image-crop` 和 `browser-image-compression` - 支持批量上传和裁剪 - 网格布局展示,点击放大预览 - 集成到成员表单和详情页 ### 7. 统计图表(饼图、柱状图)✅ - 使用 ECharts 实现 - 性别分布饼图 - 世代分布柱状图 - 年龄分布饼图 - 出生年代折线图 - 集成到首页统计标签页 ### 8. 家族故事模块 ✅ - 添加/编辑/删除故事功能 - 支持标题、日期、内容字段 - 卡片式展示,按时间排序 - 集成到成员表单和详情页 ### 9. 纪念日浏览器通知 ✅ - 请求通知权限管理 - 每日自动检查生日和忌日 - 浏览器原生通知 - 未来7天纪念日预告 - 集成到设置页面 ### 10. PWA 支持 ✅ - manifest.json 配置 - Service Worker 离线缓存 - 可安装到主屏幕 - 自动更新检测 - 推送通知支持 --- ❌ 未完成的功能 低优先级 ❌ 多用户系统 ❌ 云端同步 ❌ 权限管理 ❌ 操作日志 ❌ AI 辅助功能