From 2fb11e13ba51ec669bd35e593ec765111d848dfb Mon Sep 17 00:00:00 2001 From: linshen <32978552+linshenkx@users.noreply.github.com> Date: Wed, 8 Oct 2025 02:00:08 +0800 Subject: [PATCH] =?UTF-8?q?fix(ui):=20=E4=BF=AE=E5=A4=8D=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E6=B5=8B=E8=AF=95=E7=9A=84=E5=85=B3=E9=94=AE?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E5=B9=B6=E5=A2=9E=E5=BC=BA=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=B4=A8=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复问题: 1. 修复 API 参数调用错误 - addModel 方法缺少 key 参数导致验证失败 2. 修复 API Key 脱敏问题 - 测试连接时使用脱敏后的 Key 导致认证失败 3. 修复状态管理时序问题 - 使用 nextTick 替代不可靠的 setTimeout 增强功能: 1. 强化连接测试的前置校验逻辑,增加配置完整性检查 2. 优化并发控制,测试期间自动禁用按钮,防止重复请求 3. 统一守卫逻辑到单一数据源,遵循 DRY 原则 4. 改进 paramOverrides 更新逻辑,支持参数删除操作 技术改进: - 使用 Vue nextTick API 替代 setTimeout,提升可靠性 - 实现临时模型测试模式,避免污染原始配置 - 增强 canTestFormConnection 校验,包含配置完整性检查 - 正确处理 API Key 脱敏/恢复逻辑 影响范围: - packages/core/src/services/model/manager.ts - packages/ui/src/composables/useTextModelManager.ts - packages/ui/src/components/TextModelEditModal.vue - packages/ui/src/components/TextModelManager.vue --- packages/core/src/services/model/manager.ts | 10 +-- .../ui/src/components/TextModelEditModal.vue | 10 ++- .../ui/src/components/TextModelManager.vue | 20 +++++- .../ui/src/composables/useTextModelManager.ts | 71 +++++++++++++++++-- 4 files changed, 95 insertions(+), 16 deletions(-) diff --git a/packages/core/src/services/model/manager.ts b/packages/core/src/services/model/manager.ts index ccef7978..afdcaec0 100644 --- a/packages/core/src/services/model/manager.ts +++ b/packages/core/src/services/model/manager.ts @@ -332,11 +332,11 @@ export class ModelManager implements IModelManager { ...existingTextModelConfig.connectionConfig, ...(config.connectionConfig || {}) }, - // Deep merge paramOverrides - paramOverrides: { - ...existingTextModelConfig.paramOverrides, - ...(config.paramOverrides || {}) - } + // 处理 paramOverrides:如果明确传入了 paramOverrides,则直接替换而不是合并 + // 这样可以确保用户删除的参数不会被错误地保留 + paramOverrides: config.paramOverrides !== undefined + ? config.paramOverrides + : existingTextModelConfig.paramOverrides || {} }; // 如果更新了关键字段,需要验证配置 diff --git a/packages/ui/src/components/TextModelEditModal.vue b/packages/ui/src/components/TextModelEditModal.vue index a0c7af18..51092122 100644 --- a/packages/ui/src/components/TextModelEditModal.vue +++ b/packages/ui/src/components/TextModelEditModal.vue @@ -331,7 +331,7 @@