feat: 添加工具市场前端页面

- 新增 Tools.vue 页面:工具列表、分类筛选、搜索、新建/编辑/删除/测试
- 新增路由 /tools
- 导航菜单添加"工具市场"入口

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
renjianbo
2026-05-01 22:43:51 +08:00
parent 7b9e0826de
commit cd83090c61
3 changed files with 618 additions and 1 deletions

View File

@@ -43,6 +43,10 @@
<el-icon><Connection /></el-icon>
<span>数据源管理</span>
</el-menu-item>
<el-menu-item index="tools" @click="router.push('/tools')">
<el-icon><Tools /></el-icon>
<span>工具市场</span>
</el-menu-item>
<el-menu-item index="model-configs" @click="router.push('/model-configs')">
<el-icon><Setting /></el-icon>
<span>模型配置管理</span>
@@ -90,7 +94,7 @@
import { computed } from 'vue'
import { useRouter, useRoute } from 'vue-router'
import { useUserStore } from '@/stores/user'
import { Document, User, List, Connection, Setting, Star, Lock, Monitor, Bell, Grid, DataAnalysis } from '@element-plus/icons-vue'
import { Document, User, List, Connection, Setting, Star, Lock, Monitor, Bell, Grid, DataAnalysis, Tools } from '@element-plus/icons-vue'
const router = useRouter()
const route = useRoute()
@@ -104,6 +108,7 @@ const activeMenu = computed(() => {
if (route.path === '/agents' || route.path.startsWith('/agents/')) return 'agents'
if (route.path === '/executions' || route.path.startsWith('/executions/')) return 'executions'
if (route.path === '/data-sources') return 'data-sources'
if (route.path === '/tools') return 'tools'
if (route.path === '/model-configs') return 'model-configs'
if (route.path === '/node-templates') return 'node-templates'
if (route.path === '/permissions') return 'permissions'
@@ -127,6 +132,8 @@ const handleMenuSelect = (key: string) => {
router.push('/executions')
} else if (key === 'data-sources') {
router.push('/data-sources')
} else if (key === 'tools') {
router.push('/tools')
} else if (key === 'model-configs') {
router.push('/model-configs')
} else if (key === 'node-templates') {