This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
评估所有已开发但未集成到 Console 的功能,形成集成建议 #702
Copy link
Copy link
Closed
Description
📋 完整评估报告:已开发但未集成到 Console 的功能
评估方法
对比 packages/layout/ 中已实现的组件能力 vs apps/console/src/ 中的实际使用情况,结合 ROADMAP 标记状态。
🔴 功能 1:Navigation Search(侧边栏搜索过滤)
| 维度 | 详情 |
|---|---|
| 来源 | @object-ui/layout — NavigationRenderer + AppSchemaRenderer (PR #698) |
| Package 状态 | ✅ 完成 — filterNavigationItems() 递归过滤, SidebarInput 搜索框, 8个测试用例 |
| Console 状态 | ❌ 未集成 — AppSidebar.tsx 没有任何搜索功能 |
| Console 现状 | AppSidebar.tsx 自己渲染 NavigationTree 组件,未使用 NavigationRenderer |
| 集成价值 | 🔥 高 — 导航项多时搜索是核心体验(Airtable 有此功能) |
| 集成难度 | ⭐⭐ 中低 — 需在 AppSidebar header 区域加 SidebarInput,调用 filterNavigationItems 过滤 resolvedNavigation |
| 风险 | 低 — 纯 UI 层面变更,opt-in |
🔴 ���能 2:Navigation Pin/Favorites(导航项收藏置顶)
| 维度 | 详情 |
|---|---|
| 来源 | @object-ui/layout — NavigationRenderer (PR #698) |
| Package 状态 | ✅ 完成 — enablePinning + onPinToggle + collectPinnedItems() + Favorites section |
| Console 状态 | AppSidebar.tsx 使用 useFavorites() hook 独立管理收藏 |
| 差异分析 | Console 的收藏是 record 级别(具体的数据记录),Package 的是 navigation item 级别(侧边栏条目),两者概念不同 |
| 集成价值 | ⭐⭐ 中 — 互补而非替代。Package 的 pin 功能支持导航条目级别的 pin/unpin,Console 已有的是数据记录级别收藏 |
| 集成难度 | ⭐⭐⭐ 中 — 需要合并两种收藏逻辑,或保持并存 |
| 风险 | 中 — 需明确 UX 交互:导航 pin 和 record favorites 是否共存于 Favorites section |
🔴 功能 3:Navigation Drag Reorder(@dnd-kit 拖拽排序)
| 维度 | 详情 |
|---|---|
| 来源 | @object-ui/layout — NavigationRenderer + SortableNavigationItem (PR #698) |
| Package 状态 | ✅ 完成 — @dnd-kit/sortable + PointerSensor + KeyboardSensor + grip handles |
| Console 状态 | AppSidebar.tsx 使用原生 HTML5 DnD (draggable, onDragStart/Over/Drop) + useNavOrder hook + localStorage 持久化 |
| 差异分析 | Console 的实现:��生 HTML5 DnD,localStorage 持久化,useNavOrder hook。Package 的实现:@dnd-kit 库(更好的触摸支持、键盘支持、拖拽反馈),但没有持久化 |
| 集成价值 | 🔥 高 — Package 的 @dnd-kit 方案明显优于 Console 的原生 HTML5 DnD(更好的可访问性、触摸设备支持、视觉反馈) |
| 集成难度 | ⭐⭐⭐ 中高 — 需要替换 Console 现有 DnD 逻辑,同时保留 localStorage 持久化 |
| 风险 | 中 — 需确保 @dnd-kit 不会与 Console 中其他 DnD 上下文(Kanban 等)冲突 |
🔴 功能 4:AppSchemaRenderer(整合替代方案)
| 维度 | 详情 |
|---|---|
| 来源 | @object-ui/layout — AppSchemaRenderer (P0.1) |
| Package 状态 | ✅ 完成 — 完整的 AppSchema JSON → sidebar + navigation + areas + mobile |
| Console 状态 | ❌ 未使用 — Console 使用 AppShell + 自己的 AppSidebar 组件,手工拼装所有逻辑 |
| 差异分析 | Console 的 AppSidebar.tsx(670 行) 手动实现了 AppSchemaRenderer 的大部分逻辑(area switching, navigation tree, icon resolution, visibility, permissions),但还额外包含 Console 特有功能(app switcher dropdown, user footer, recent items, 原生 DnD, swipe gesture) |
| 集成价值 | 🔥🔥 极高 — 这是架构性改进。迁移到 AppSchemaRenderer 可以:1. 删除 ~400 行重复代码 2. 自动获得所有 P1.7 增强(search/pin/reorder) 3. 支持 badge indicators(Console 完全没有) 4. 更好的测试覆盖(71 个测试) |
| 集成难度 | ⭐⭐⭐⭐ 高 — 需要: 1. 将 Console 特有功能(app switcher, user footer, recent items, swipe)迁移为 AppSchemaRenderer 的 slot/props2. 可能需要扩展 AppSchemaRenderer 接口3. 全面回归测试 |
| 风险 | 高 — 涉及 Console 核心布局,回归风险大。建议分阶段迁移 |
🔴 功能 5:Navigation Badge Indicators(徽标指示器)
| 维度 | 详情 |
|---|---|
| 来源 | @object-ui/layout — NavigationRenderer |
| Package 状态 | ✅ 完成 — 支持 badge + badgeVariant 字段,渲染为 Shadcn Badge 组件 |
| Console 状态 | ❌ 未使用 — Console 的 NavigationItemRenderer 没有渲染任何 badge |
| 集成价值 | ⭐⭐ 中 — 可用于显示未读消息数、待处理任务数等 |
| 集成难度 | ⭐ 低 — 只需在 Console 的 NavigationItemRenderer 中添加 badge 渲染逻辑 |
| 风险 | 极低 |
🔴 功能 6:AreaSwitcher(Package 组件级 Area 切换器)
| 维度 | 详情 |
|---|---|
| 来源 | @object-ui/layout — AppSchemaRenderer 内的 AreaSwitcher 组件 |
| Package 状态 | ✅ 完成 — 完整的 area 切换 UI(Airtable 风格) |
| Console 状态 | AppSidebar.tsx 手动渲染 area 切换(简单的 SidebarMenu 按钮列表) |
| 差异分析 | Package 的 AreaSwitcher 可能有更好的 UX 设计,Console 的是简单按钮列表 |
| 集成价值 | ⭐ 低-中 — 功能已有,只是 UX 可能不同 |
| 集成难度 | ⭐⭐ 中 — 如果不做整体 AppSchemaRenderer 迁移,单独替换 area switcher 意义不大 |
📊 集成优先级建议
| 优先级 | 功能 | 推荐方案 | 估时 |
|---|---|---|---|
| P0 | 🔍 Navigation Search | 在 AppSidebar 中直接使用 filterNavigationItems() |
0.5d |
| P0 | 🏷️ Badge Indicators | 在 Console NavigationItemRenderer 中加 badge 渲染 |
0.5d |
| P1 | 🔄 Drag Reorder 升级 | 用 @dnd-kit 替换原生 HTML5 DnD + 保留 localStorage 持久化 |
1-2d |
| P2 | 📌 Navigation Pin | 与现有 useFavorites 合并或并存 |
1d |
| P3 | 🏗️ AppSchemaRenderer 整体迁移 | 分阶段将 AppSidebar 迁移到 AppSchemaRenderer |
3-5d |
Reacted by Copilot
Activity