diff --git a/main.js b/main.js index d889c83..734cb3b 100644 --- a/main.js +++ b/main.js @@ -260,40 +260,109 @@ ipcMain.handle('delete-api-profile', async (event, name) => { }) // 重命名 API 配置 + ipcMain.handle('rename-api-profile', async (event, oldName, newName) => { + try { + const settings = readSettings() + if (!settings) { + return { success: false, error: '配置文件不存在' } + } - + if (oldName === 'default') { + return { success: false, error: '不能重命名默认配置' } + } - + const profiles = settings.apiProfiles || {} + if (!profiles[oldName]) { + return { success: false, error: `配置 "${oldName}" 不存在` } + } - + if (profiles[newName]) { + return { success: false, error: `配置 "${newName}" 已存在` } + } - + profiles[newName] = profiles[oldName] + delete profiles[oldName] + settings.apiProfiles = profiles - + if (settings.currentApiProfile === oldName) { + settings.currentApiProfile = newName + } - + writeSettings(settings) - + return { success: true } + } catch (error) { + return { success: false, error: error.message } + } + +}) + + + +// 复制 API 配置 + +ipcMain.handle('duplicate-api-profile', async (event, sourceName, newName) => { + + try { + + const settings = readSettings() + + if (!settings) { + + return { success: false, error: '配置文件不存在' } + + } + + const profiles = settings.apiProfiles || {} + + if (!profiles[sourceName]) { + + return { success: false, error: `配置 "${sourceName}" 不存在` } + + } + + if (profiles[newName]) { + + return { success: false, error: `配置 "${newName}" 已存在` } + + } + + // 深拷贝配置 + + profiles[newName] = JSON.parse(JSON.stringify(profiles[sourceName])) + + settings.apiProfiles = profiles + + writeSettings(settings) + + return { success: true } + + } catch (error) { + + return { success: false, error: error.message } + + } + }) // IPC Handlers diff --git a/preload.js b/preload.js index 7e6cdc4..4b7f546 100644 --- a/preload.js +++ b/preload.js @@ -17,5 +17,6 @@ contextBridge.exposeInMainWorld('electronAPI', { switchApiProfile: (profileName) => ipcRenderer.invoke('switch-api-profile', profileName), createApiProfile: (name) => ipcRenderer.invoke('create-api-profile', name), deleteApiProfile: (name) => ipcRenderer.invoke('delete-api-profile', name), - renameApiProfile: (oldName, newName) => ipcRenderer.invoke('rename-api-profile', oldName, newName) + renameApiProfile: (oldName, newName) => ipcRenderer.invoke('rename-api-profile', oldName, newName), + duplicateApiProfile: (sourceName, newName) => ipcRenderer.invoke('duplicate-api-profile', sourceName, newName) }) \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index 3a6e541..1748460 100644 --- a/src/App.vue +++ b/src/App.vue @@ -123,75 +123,48 @@
配置文件管理 +
-
-
- - -
-
- -
- - +
+
+
+ {{ getProfileInitial(profile.name) }}
-
-
-
-
-
- - AI 模型 -
-
- - -
-
- - -
-
-
- - -
-
- - -
-
-
-
-
- - 搜索服务 -
-
- - -
-
- - -
-
- - -
-
+
+
{{ profile.name }}
+
{{ getProfileUrl(profile.name) }}
+
+
+ + + + + 使用中 + +
+
+ +
+
+
+
+ +

MCP 服务器

管理 Model Context Protocol 服务器配置

@@ -246,10 +219,156 @@ - -
-
-
+ +
+
+
+ + + + + + + + + + + + + + + + + + +
+
{{ showMessageDialog.title }}
+
{{ showMessageDialog.message }}
+
+ +
+
+
+ + +
+
+
+
+ + 新建 API 配置 +
+ +
+
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+
+ + 编辑 API 配置 +
+ +
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+ + +
+
+ + +
+
+
+ + +
+
+
+ + +
+
{{ isEditingServer ? '编辑服务器' : '添加服务器' }} @@ -307,7 +426,7 @@