1.9 KiB
1.9 KiB
Phase 3:Skills Tab 复用集成
日期:2026-04-08 状态:待开始
1. 本阶段目的
将现有的 /skills 页面完整嵌入 Temple 页面的 Skills Tab,实现统一入口。
2. 核心文件
| 文件 | 作用 |
|---|---|
frontend/src/pages/skills/index.vue |
已有,Skills 完整页面 |
frontend/src/pages/skills/composables/useSkillsPage.ts |
已有,Skills 逻辑 |
frontend/src/api/skill.ts |
已有,Skills API 客户端 |
3. 集成方式
3.1 方案选择
方案 A(推荐):Tab 内条件渲染
在 Temple/index.vue 中使用 v-if 切换:
<div v-if="activeTab === 'skills'">
<!-- Skills 页面内容内联,或引用子组件 -->
</div>
优点:单一页面,状态共享简单 缺点:Skills 页面较大,代码集中
方案 B:路由嵌套
// Temple/index.vue
<router-view />
在 skills/ 路由加 parent: temple
优点:页面分离,代码清晰 缺点:需要改路由配置
推荐方案 A,改动最小,Skills 页面代码以内联形式放入 Temple。
3.2 Tab 切换逻辑
function switchTab(tab: 'tools' | 'skills') {
activeTab.value = tab
if (tab === 'skills') {
// Skills 页面初始化(如果需要)
}
}
4. 样式调整
Skills 页面样式独立在 skillsPage.css,切换 Tab 时保留其样式上下文。
5. 注意事项
- Skills 页面的 Modal(创建/编辑)需要在 Tab 切换后仍可正常弹出
- Skills 页面的 API 调用(
skillApi.list(),skillApi.create()等)保持不变 - Metrics Strip 在 Skills Tab 下显示不同的指标(TOTAL / ACTIVE / UPTIME)
6. 产出要求
- Skills Tab 点击后正确切换到 Skills 页面
- Skills 的 CRUD(创建/编辑/删除/启用/禁用)功能正常
- Skills 的 MCP Panel 仍可正常打开
- Skills 页面的 Modal、Drawer 等交互正常
- Tab 切换不丢失状态