# 🎯 全站按钮梳理总结 ## 📊 统计概览 ### 总体统计 | 指标 | 数量 | |-----|------| | **总页面数** | 11 | | **总按钮数** | 80+ | | **操作类型** | 6 大类 | | **图标种类** | 30+ | ### 按页面分布 | 页面 | 按钮数量 | 主要功能 | |-----|---------|---------| | 首页 (/) | 3 | 添加成员、查看全部 | | 成员列表 (/members) | 5 | 筛选、新增、定位 | | 成员详情 (/members/[id]) | 10 | CRUD、快速添加、打印分享 | | 新增成员 (/members/new) | 3 | 保存、取消、返回 | | 族谱图 (/tree) | 8 | 视图控制、关系查询、导出 | | 大事记 (/timeline) | 2 | 标签切换 | | 关系计算 (/relationship) | 4 | 计算、清除、交换 | | 系统设置 (/settings) | 12 | 数据管理、密码修改、日志 | | 登录注册 (/auth) | 4 | 登录、注册、跳转 | | 创建家族树 (/trees/new) | 3 | 创建、取消、返回 | | 全局导航 (Header) | 10+ | 搜索、通知、设置、用户菜单 | --- ## 🎨 按钮样式分布 ### 样式使用统计 ``` primary (default) ████████░░ 15% (12个) outline ████████████████████ 40% (32个) ghost ████████████ 25% (20个) destructive ████░░ 8% (6个) secondary ███░░ 6% (5个) link ██░░ 4% (3个) ``` ### 样式使用建议 | 样式 | 当前使用 | 建议使用 | 说明 | |-----|---------|---------|------| | primary | 15% | 10-15% | ✅ 合理,主要操作突出 | | outline | 40% | 30-40% | ✅ 合理,次要操作为主 | | ghost | 25% | 20-30% | ✅ 合理,辅助操作 | | destructive | 8% | 5-10% | ✅ 合理,危险操作 | | secondary | 6% | 10-15% | ⚠️ 可增加使用 | | link | 4% | 5-10% | ⚠️ 可增加使用 | --- ## 🔧 功能分类 ### 1. CRUD 操作 (25个) | 操作 | 数量 | 主要页面 | |-----|------|---------| | 新增 (Create) | 8 | 首页、成员列表、成员详情 | | 查看 (Read) | 5 | 各页面 | | 编辑 (Update) | 7 | 成员详情、设置 | | 删除 (Delete) | 5 | 成员详情、设置、导航 | **代表按钮**: - 添加成员 - 新增成员 - 编辑 - 保存 - 删除 ### 2. 导航操作 (18个) | 操作 | 数量 | 说明 | |-----|------|------| | 返回 | 6 | 返回上一页 | | 跳转 | 8 | 跳转到其他页面 | | 查看全部 | 4 | 查看列表页 | **代表按钮**: - 返回 - 查看全部 - 在族谱图中定位 ### 3. 数据管理 (12个) | 操作 | 数量 | 页面 | |-----|------|------| | 导入 | 3 | 设置 | | 导出 | 4 | 设置、族谱图 | | 清空 | 2 | 设置 | | 刷新 | 3 | 设置、各页面 | **代表按钮**: - 导出数据 - 导入数据 - 导出GEDCOM - 清空数据 ### 4. 视图控制 (10个) | 操作 | 数量 | 页面 | |-----|------|------| | 放大/缩小 | 2 | 族谱图 | | 重置 | 2 | 族谱图 | | 切换视图 | 3 | 族谱图 | | 筛选 | 3 | 成员列表 | **代表按钮**: - 放大 - 缩小 - 重置 - 筛选 - 视图模式 ### 5. 关系查询 (6个) | 操作 | 数量 | 页面 | |-----|------|------| | 关系查询 | 2 | 族谱图、关系计算 | | 计算关系 | 2 | 关系计算 | | 清除/交换 | 2 | 关系计算 | **代表按钮**: - 关系查询 - 计算关系 - 清除选择 - 交换成员 ### 6. 用户操作 (9个) | 操作 | 数量 | 页面 | |-----|------|------| | 登录/注册 | 4 | 登录注册 | | 修改密码 | 2 | 设置 | | 退出登录 | 1 | 导航 | | 用户菜单 | 2 | 导航 | **代表按钮**: - 登录 - 注册 - 修改密码 - 退出登录 --- ## 🎯 图标使用统计 ### Top 10 常用图标 | 排名 | 图标 | 使用次数 | 主要用途 | |-----|------|---------|---------| | 1 | `Plus` / `UserPlus` | 12 | 新增操作 | | 2 | `ArrowLeft` | 8 | 返回 | | 3 | `Search` | 6 | 搜索、定位 | | 4 | `Edit` | 5 | 编辑 | | 5 | `Trash` / `Trash2` | 5 | 删除 | | 6 | `Download` | 4 | 导出/下载 | | 7 | `Upload` | 3 | 导入/上传 | | 8 | `Settings` | 3 | 设置 | | 9 | `Filter` | 2 | 筛选 | | 10 | `X` | 2 | 关闭、清除 | ### 图标分类 | 类别 | 图标数量 | 示例 | |-----|---------|------| | 操作类 | 15 | Plus, Edit, Trash, Save | | 导航类 | 8 | ArrowLeft, ArrowRight, ChevronDown | | 功能类 | 10 | Search, Filter, Download, Upload | | 状态类 | 5 | Bell, Check, X, Loader2 | | 其他 | 8 | User, Settings, Calendar, Map | --- ## 🔐 权限控制 ### 按权限级别分类 #### VIEWER (查看者) **可用按钮**: 20个 - 查看相关: 查看详情、查看全部 - 导航相关: 返回、跳转 - 视图控制: 放大、缩小、切换视图 - 工具功能: 打印、分享、关系查询 #### EDITOR (编辑者) **可用按钮**: 50个 (包含 VIEWER 的所有按钮) - 新增操作: 添加成员、新增成员 - 编辑操作: 编辑、保存 - 删除操作: 删除成员 - 快速添加: 添加父母、子女、配偶 #### OWNER (所有者) **可用按钮**: 80个 (所有按钮) - 管理操作: 删除家族树、管理协作者 - 数据管理: 清空数据、清空日志 - 系统设置: 所有设置功能 ### 权限控制实现 ```typescript // 方式1: 条件渲染(推荐) {(role === "OWNER" || role === "EDITOR") && ( )} // 方式2: 禁用状态 ``` --- ## 📱 响应式设计 ### 移动端适配 | 适配方式 | 使用次数 | 示例 | |---------|---------|------| | 隐藏文字 | 5 | 图标按钮在移动端隐藏文字 | | 全宽按钮 | 8 | 表单按钮在移动端全宽 | | 下拉菜单 | 3 | 多个按钮收纳到菜单 | | 尺寸调整 | 10 | 移动端使用 sm 尺寸 | ### 响应式示例 ```tsx // 移动端全宽 // 移动端隐藏文字 ``` --- ## ⚠️ 发现的问题 ### 高优先级问题 1. **缺少加载状态** (15处) - 问题: 异步操作没有加载提示 - 影响: 用户体验差,不知道是否在处理 - 建议: 添加 loading 状态和 Spinner 2. **确认对话框不统一** (8处) - 问题: 删除操作的确认方式不一致 - 影响: 用户体验不统一 - 建议: 使用统一的 AlertDialog 组件 3. **权限控制不完整** (12处) - 问题: 部分按钮没有权限检查 - 影响: 可能出现越权操作 - 建议: 添加完整的权限检查 ### 中优先级问题 4. **缺少快捷键** (所有页面) - 问题: 常用操作没有快捷键 - 影响: 效率低 - 建议: 添加快捷键支持 5. **错误处理不完善** (20处) - 问题: 操作失败没有明确提示 - 影响: 用户不知道出了什么问题 - 建议: 添加 Toast 提示 6. **无障碍访问** (30处) - 问题: 图标按钮缺少 aria-label - 影响: 屏幕阅读器无法识别 - 建议: 添加 aria 属性 ### 低优先级问题 7. **按钮分组** (5处) - 问题: 相关按钮没有分组 - 影响: 视觉层次不清晰 - 建议: 使用 ButtonGroup 或间距分组 8. **图标不统一** (3处) - 问题: 同一功能使用不同图标 - 影响: 用户认知负担 - 建议: 统一图标使用 --- ## ✅ 优化建议 ### 立即优化 (本周) 1. **添加加载状态** ```tsx // 所有异步操作添加 loading const [isLoading, setIsLoading] = useState(false) ``` 2. **统一确认对话框** ```tsx // 使用统一的 showConfirm const confirmed = await showConfirm( '确定要删除吗?', '删除确认', 'destructive' ) ``` 3. **完善权限控制** ```tsx // 所有编辑操作添加权限检查 {(role === "OWNER" || role === "EDITOR") && ( )} ``` ### 短期优化 (本月) 4. **添加快捷键** - Ctrl+S: 保存 - Esc: 取消/关闭 - Ctrl+N: 新增 5. **改进错误处理** - 所有操作添加 try-catch - 使用 Toast 显示错误信息 6. **无障碍优化** - 图标按钮添加 aria-label - 添加 title 属性 ### 长期优化 (下季度) 7. **批量操作** - 成员列表支持批量选择 - 批量删除、导出 8. **撤销/重做** - 编辑操作支持撤销 - 删除操作支持恢复 9. **国际化** - 按钮文本支持多语言 - 图标保持通用性 --- ## 📋 检查清单 ### 新增按钮检查清单 - [ ] 确定按钮用途和位置 - [ ] 选择合适的 variant - [ ] 选择合适的 size - [ ] 添加合适的图标 - [ ] 实现权限控制 - [ ] 添加加载状态 - [ ] 添加错误处理 - [ ] 危险操作添加确认 - [ ] 添加无障碍属性 - [ ] 测试响应式布局 - [ ] 添加快捷键(可选) - [ ] 更新文档 ### 代码审查检查清单 - [ ] 按钮样式是否合适 - [ ] 是否有权限控制 - [ ] 是否有加载状态 - [ ] 是否有错误处理 - [ ] 危险操作是否有确认 - [ ] 是否有无障碍属性 - [ ] 响应式是否正常 - [ ] 图标是否统一 - [ ] 文案是否清晰 --- ## 📚 相关文档 1. **[详细按钮清单](./docs/UI_BUTTONS_INVENTORY.md)** - 所有页面的按钮详细列表 - 按钮功能说明 - 权限要求 2. **[按钮使用规范](./docs/BUTTON_USAGE_GUIDE.md)** - 按钮样式规范 - 图标使用规范 - 最佳实践 - 代码示例 3. **[组件库文档](./components/ui/README.md)** - Button 组件 API - 样式定制 - 主题配置 --- ## 🎯 总结 ### 当前状态 - ✅ 按钮数量: 80+ 个 - ✅ 覆盖页面: 11 个 - ✅ 功能完整: 基本功能齐全 - ⚠️ 用户体验: 需要优化 - ⚠️ 代码质量: 需要改进 ### 优化重点 1. **用户体验** (高优先级) - 加载状态 - 错误提示 - 确认对话框 2. **代码质量** (中优先级) - 权限控制 - 错误处理 - 代码复用 3. **功能增强** (低优先级) - 快捷键 - 批量操作 - 撤销/重做 ### 下一步行动 1. 本周: 修复高优先级问题 2. 本月: 完成中优先级优化 3. 下季度: 实现功能增强 --- **文档版本**: v1.0 **最后更新**: 2025-11-23 **维护人员**: System