From 8baa8e81cfee86449261a3378e6fb2c5e5cab052 Mon Sep 17 00:00:00 2001 From: CaptainB Date: Tue, 18 Nov 2025 11:20:33 +0800 Subject: [PATCH] fix: simplify condition for copying tool in ToolListContainer --- ui/src/locales/lang/en-US/views/tool.ts | 2 + ui/src/locales/lang/zh-CN/views/tool.ts | 2 + ui/src/locales/lang/zh-Hant/views/tool.ts | 2 + .../tool/component/ToolListContainer.vue | 39 ++++++++++++++++++- 4 files changed, 43 insertions(+), 2 deletions(-) diff --git a/ui/src/locales/lang/en-US/views/tool.ts b/ui/src/locales/lang/en-US/views/tool.ts index 074d494d5..a5c30bcae 100644 --- a/ui/src/locales/lang/en-US/views/tool.ts +++ b/ui/src/locales/lang/en-US/views/tool.ts @@ -9,6 +9,8 @@ export default { editDataSourceTool: 'Edit Data Source', editMcpTool: 'Edit MCP', copyTool: 'Copy Tool', + copyMcpTool: 'Copy MCP', + copyDataSource: 'Copy Data Source', importTool: 'Import Tool', settingTool: 'Set Tool', mcpConfig: 'MCP Service Config', diff --git a/ui/src/locales/lang/zh-CN/views/tool.ts b/ui/src/locales/lang/zh-CN/views/tool.ts index d597c93a8..ee1f3606e 100644 --- a/ui/src/locales/lang/zh-CN/views/tool.ts +++ b/ui/src/locales/lang/zh-CN/views/tool.ts @@ -9,6 +9,8 @@ export default { editDataSourceTool: '编辑数据源', editMcpTool: '编辑MCP', copyTool: '复制工具', + copyMcpTool: '复制MCP', + copyDataSource: '复制数据源', importTool: '导入工具', settingTool: '设置工具', mcpConfig: 'MCP服务配置', diff --git a/ui/src/locales/lang/zh-Hant/views/tool.ts b/ui/src/locales/lang/zh-Hant/views/tool.ts index 923e04317..be29d4bbb 100644 --- a/ui/src/locales/lang/zh-Hant/views/tool.ts +++ b/ui/src/locales/lang/zh-Hant/views/tool.ts @@ -9,6 +9,8 @@ export default { editDataSourceTool: '編輯資料來源', editMcpTool: '編輯MCP', copyTool: '複製工具', + copyMcpTool: '複製MCP', + copyDataSource: '複製資料來源', importTool: '匯入工具', settingTool: '設定工具', mcpConfig: 'MCP服務配置', diff --git a/ui/src/views/tool/component/ToolListContainer.vue b/ui/src/views/tool/component/ToolListContainer.vue index 57defeb34..0d14b5a30 100644 --- a/ui/src/views/tool/component/ToolListContainer.vue +++ b/ui/src/views/tool/component/ToolListContainer.vue @@ -204,8 +204,7 @@ {{ $t('common.copy') }} @@ -540,6 +539,18 @@ async function changeState(row: any) { } async function copyTool(row: any) { + // mcp工具 + if (row?.tool_type === 'MCP') { + bus.emit('select_node', row.folder_id) + await copyMcpTool(row) + return + } + // 数据源工具 + if (row?.tool_type === 'DATA_SOURCE') { + bus.emit('select_node', row.folder_id) + await copyDataSource(row) + return + } ToolDrawertitle.value = t('views.tool.copyTool') const res = await loadSharedApi({ type: 'tool', systemType: apiType.value }).getToolById( row.id, @@ -551,6 +562,30 @@ async function copyTool(row: any) { ToolFormDrawerRef.value.open(obj) } +async function copyMcpTool(row: any) { + McpToolDrawertitle.value = t('views.tool.copyMcpTool') + const res = await loadSharedApi({ type: 'tool', systemType: apiType.value }).getToolById( + row.id, + changeStateloading, + ) + const obj = cloneDeep(res.data) + delete obj['id'] + obj['name'] = obj['name'] + ` ${t('common.copyTitle')}` + McpToolFormDrawerRef.value.open(obj) +} + +async function copyDataSource(row: any) { + DataSourceToolDrawertitle.value = t('views.tool.copyDataSource') + const res = await loadSharedApi({ type: 'tool', systemType: apiType.value }).getToolById( + row.id, + changeStateloading, + ) + const obj = cloneDeep(res.data) + delete obj['id'] + obj['name'] = obj['name'] + ` ${t('common.copyTitle')}` + DataSourceToolFormDrawerRef.value.open(obj) +} + function exportTool(row: any) { loadSharedApi({ type: 'tool', systemType: apiType.value }) .exportTool(row.id, row.name, loading)