🐛 修正自動提交的處理邏輯

This commit is contained in:
Minidoracat 2025-06-14 08:33:32 +08:00
parent c0324fdb23
commit c254602531
3 changed files with 67 additions and 10 deletions

View File

@ -1154,11 +1154,13 @@
} else {
console.log('⚠️ 自動提交提示詞驗證失敗:', {
promptExists: !!prompt,
isAutoSubmit: prompt ? prompt.isAutoSubmit : false
isAutoSubmit: prompt ? prompt.isAutoSubmit : false,
reason: !prompt ? '提示詞不存在' : '提示詞未標記為自動提交'
});
// 清空無效的自動提交設定
// 只清空無效的 promptId保留用戶的 autoSubmitEnabled 設定
// 這樣避免因為提示詞問題而強制關閉用戶的自動提交偏好
this.settingsManager.set('autoSubmitPromptId', null);
this.settingsManager.set('autoSubmitEnabled', false);
console.log('🔧 已清空無效的 autoSubmitPromptId保留 autoSubmitEnabled 設定:', autoSubmitEnabled);
}
}

View File

@ -396,16 +396,31 @@
// 同步更新設定管理器中的自動提交提示詞 ID
if (this.settingsManager) {
console.log('🔄 updateAutoSubmitSelect 設定前:', this.settingsManager.get('autoSubmitPromptId'));
const currentAutoSubmitEnabled = this.settingsManager.get('autoSubmitEnabled');
if (autoSubmitPromptId) {
this.settingsManager.set('autoSubmitPromptId', autoSubmitPromptId);
this.settingsManager.set('autoSubmitEnabled', true);
console.log('🔄 updateAutoSubmitSelect 同步設定:', autoSubmitPromptId);
// 檢查狀態一致性:如果設定中的 promptId 與找到的不一致,以找到的為準
const currentPromptId = this.settingsManager.get('autoSubmitPromptId');
if (currentPromptId !== autoSubmitPromptId) {
console.log('🔧 狀態不一致,修正 autoSubmitPromptId:', currentPromptId, '->', autoSubmitPromptId);
this.settingsManager.set('autoSubmitPromptId', autoSubmitPromptId);
}
// 不自動改變 autoSubmitEnabled 的值,完全尊重用戶的設定
// updateAutoSubmitSelect 只負責同步 promptId 和下拉選單顯示
console.log('🔄 updateAutoSubmitSelect 同步 promptId保持 autoSubmitEnabled 狀態:', {
promptId: autoSubmitPromptId,
enabled: currentAutoSubmitEnabled
});
} else {
// 沒有找到自動提交提示詞,清空 promptId 但完全保留 enabled 狀態
this.settingsManager.set('autoSubmitPromptId', null);
this.settingsManager.set('autoSubmitEnabled', false);
console.log('🔄 updateAutoSubmitSelect 清空設定');
console.log('🔄 updateAutoSubmitSelect 清空 promptId完全保留 autoSubmitEnabled 狀態:', currentAutoSubmitEnabled);
}
console.log('🔄 updateAutoSubmitSelect 設定後:', this.settingsManager.get('autoSubmitPromptId'));
console.log('🔄 updateAutoSubmitSelect 設定後:', {
promptId: this.settingsManager.get('autoSubmitPromptId'),
enabled: this.settingsManager.get('autoSubmitEnabled')
});
} else {
console.warn('⚠️ updateAutoSubmitSelect: settingsManager 未設定,無法同步設定');
}

View File

@ -677,11 +677,51 @@
if (!promptId || promptId === '') {
self.set('autoSubmitPromptId', null);
self.set('autoSubmitEnabled', false);
console.log('清除自動提交設定');
// 同時清除所有提示詞的 isAutoSubmit 標記
if (window.feedbackApp && window.feedbackApp.promptManager) {
window.feedbackApp.promptManager.clearAutoSubmitPrompt();
console.log('🔄 已清除所有提示詞的自動提交標記');
} else {
console.warn('⚠️ promptManager 未找到,無法清除提示詞標記');
}
// 觸發狀態變更事件,更新相關 UI 組件
self.triggerAutoSubmitStateChange(false);
// 更新 UI 元素(按鈕狀態、倒數計時器等)
self.applyAutoSubmitSettingsToUI();
console.log('清除自動提交設定並更新 UI');
} else {
// 設定新的自動提交提示詞
self.set('autoSubmitPromptId', promptId);
console.log('設定自動提交提示詞 ID:', promptId);
// 同時更新對應提示詞的 isAutoSubmit 標記
if (window.feedbackApp && window.feedbackApp.promptManager) {
try {
window.feedbackApp.promptManager.setAutoSubmitPrompt(promptId);
console.log('🔄 已設定提示詞的自動提交標記:', promptId);
// 觸發狀態變更事件,更新相關 UI 組件
const currentEnabled = self.get('autoSubmitEnabled');
self.triggerAutoSubmitStateChange(currentEnabled);
// 更新 UI 元素
self.applyAutoSubmitSettingsToUI();
console.log('🔄 已更新自動提交 UI 狀態');
} catch (promptError) {
console.error('❌ 設定提示詞自動提交標記失敗:', promptError);
// 如果設定提示詞失敗,回滾設定
self.set('autoSubmitPromptId', null);
e.target.value = '';
throw promptError;
}
} else {
console.warn('⚠️ promptManager 未找到,無法設定提示詞標記');
}
}
} catch (error) {
Utils.showMessage(error.message, Utils.CONSTANTS.MESSAGE_ERROR);