From 68f7fb57eee4399bcc266c333e483e53ef50f294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A5=AD=E5=9B=A2?= Date: Fri, 20 Mar 2026 00:48:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=8A=E4=BC=A0=E6=88=90=E5=8A=9F?= =?UTF-8?q?=E5=90=8E=E6=B8=85=E9=99=A4=E6=96=87=E4=BB=B6=E7=8A=B6=E6=80=81?= =?UTF-8?q?=EF=BC=8C=E9=98=B2=E6=AD=A2=E9=87=8D=E5=A4=8D=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E6=97=A7=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - select_profile: 选择配置时清除 file_key,确保必须重新发送文件 - confirm_upload: 上传成功后 clearUserState() 完整清除状态 - handleFileReceived: 收到新文件时清除旧配置,避免配置污染 修复问题:之前上传成功后 userStates 中的 file_key 未清除, 导致再次点击配置可能误用之前的文件,造成混乱。 --- src/index.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/index.js b/src/index.js index 8619f9c..0c02149 100644 --- a/src/index.js +++ b/src/index.js @@ -153,11 +153,16 @@ async function handleCardInteraction(event) { const { profile_name, bucket, path_key } = actionData.value; log('📋 选择上传配置:', profile_name); - // path_key 是预设路径的名称,需要从配置中获取实际路径 + // 清除之前的文件信息,确保必须重新上传文件 + const state = getUserState(chatId); setUserState(chatId, { profile_name, bucket, - path_key + path_key, + // 清除文件信息 + file_key: undefined, + file_name: undefined, + message_id: undefined }); await feishu.sendMessage(chatId, { @@ -209,6 +214,7 @@ async function handleCardInteraction(event) { await doUpload(chatId, feishu, uploader, { file_key, file_name, message_id, bucket, upload_path, path_label, path_key }); + // 上传成功后清除所有状态(包括文件信息) clearUserState(chatId); break; } @@ -320,11 +326,15 @@ async function handleFileReceived(messageData, feishu, uploader) { if (!fileKey) return; - // 保存文件信息到状态 + // 清除之前的配置,保存新文件信息(覆盖旧文件) setUserState(chatId, { file_key: fileKey, file_name: fileName, - message_id: messageId + message_id: messageId, + // 清除之前的配置选择 + profile_name: undefined, + bucket: undefined, + path_key: undefined }); const state = getUserState(chatId);