From 558103171e01419d7b7a0e38b6a514a0b7d6bc08 Mon Sep 17 00:00:00 2001 From: farion1231 Date: Wed, 6 Aug 2025 07:45:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=87=E6=8D=A2=E4=BE=9B?= =?UTF-8?q?=E5=BA=94=E5=95=86=E7=9A=84=E7=A1=AE=E8=AE=A4=E5=AF=B9=E8=AF=9D?= =?UTF-8?q?=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 切换供应商前显示确认对话框 - 防止误操作导致的意外切换 - 提升用户操作安全性 --- src/renderer/App.tsx | 48 ++++++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx index 6e1de9e..c4e869c 100644 --- a/src/renderer/App.tsx +++ b/src/renderer/App.tsx @@ -77,23 +77,37 @@ function App() { } const handleSwitchProvider = async (id: string) => { - const success = await window.electronAPI.switchProvider(id) - if (success) { - setCurrentProviderId(id) - setMessageModal({ - show: true, - title: '切换成功', - message: '供应商已成功切换!', - type: 'success' - }) - } else { - setMessageModal({ - show: true, - title: '切换失败', - message: '切换失败,请检查配置', - type: 'error' - }) - } + const provider = providers[id] + if (!provider) return + + // 如果是当前供应商,直接返回 + if (id === currentProviderId) return + + setConfirmModal({ + show: true, + title: '切换供应商', + message: `确定要切换到"${provider.name}"吗?`, + onConfirm: async () => { + const success = await window.electronAPI.switchProvider(id) + if (success) { + setCurrentProviderId(id) + setMessageModal({ + show: true, + title: '切换成功', + message: '供应商已成功切换!', + type: 'success' + }) + } else { + setMessageModal({ + show: true, + title: '切换失败', + message: '切换失败,请检查配置', + type: 'error' + }) + } + setConfirmModal(null) + } + }) } const handleEditProvider = async (provider: Provider) => {