You've already forked iFlow-Settings-Editor-GUI
新增 API配置重命名功能和自定义消息对话框组件,优化消息提示交互体验
This commit is contained in:
69
main.js
69
main.js
@@ -260,40 +260,109 @@ ipcMain.handle('delete-api-profile', async (event, name) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// 重命名 API 配置
|
// 重命名 API 配置
|
||||||
|
|
||||||
ipcMain.handle('rename-api-profile', async (event, oldName, newName) => {
|
ipcMain.handle('rename-api-profile', async (event, oldName, newName) => {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
const settings = readSettings()
|
const settings = readSettings()
|
||||||
|
|
||||||
if (!settings) {
|
if (!settings) {
|
||||||
|
|
||||||
return { success: false, error: '配置文件不存在' }
|
return { success: false, error: '配置文件不存在' }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (oldName === 'default') {
|
if (oldName === 'default') {
|
||||||
|
|
||||||
return { success: false, error: '不能重命名默认配置' }
|
return { success: false, error: '不能重命名默认配置' }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const profiles = settings.apiProfiles || {}
|
const profiles = settings.apiProfiles || {}
|
||||||
|
|
||||||
if (!profiles[oldName]) {
|
if (!profiles[oldName]) {
|
||||||
|
|
||||||
return { success: false, error: `配置 "${oldName}" 不存在` }
|
return { success: false, error: `配置 "${oldName}" 不存在` }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (profiles[newName]) {
|
if (profiles[newName]) {
|
||||||
|
|
||||||
return { success: false, error: `配置 "${newName}" 已存在` }
|
return { success: false, error: `配置 "${newName}" 已存在` }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
profiles[newName] = profiles[oldName]
|
profiles[newName] = profiles[oldName]
|
||||||
|
|
||||||
delete profiles[oldName]
|
delete profiles[oldName]
|
||||||
|
|
||||||
settings.apiProfiles = profiles
|
settings.apiProfiles = profiles
|
||||||
|
|
||||||
if (settings.currentApiProfile === oldName) {
|
if (settings.currentApiProfile === oldName) {
|
||||||
|
|
||||||
settings.currentApiProfile = newName
|
settings.currentApiProfile = newName
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
writeSettings(settings)
|
writeSettings(settings)
|
||||||
|
|
||||||
return { success: true }
|
return { success: true }
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
||||||
return { success: false, error: error.message }
|
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
|
// IPC Handlers
|
||||||
|
|||||||
@@ -17,5 +17,6 @@ contextBridge.exposeInMainWorld('electronAPI', {
|
|||||||
switchApiProfile: (profileName) => ipcRenderer.invoke('switch-api-profile', profileName),
|
switchApiProfile: (profileName) => ipcRenderer.invoke('switch-api-profile', profileName),
|
||||||
createApiProfile: (name) => ipcRenderer.invoke('create-api-profile', name),
|
createApiProfile: (name) => ipcRenderer.invoke('create-api-profile', name),
|
||||||
deleteApiProfile: (name) => ipcRenderer.invoke('delete-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)
|
||||||
})
|
})
|
||||||
899
src/App.vue
899
src/App.vue
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user