154 lines
6.4 KiB
JavaScript
154 lines
6.4 KiB
JavaScript
/**
|
|
* 开关按钮与原有逻辑的桥接
|
|
* 保持原有的事件处理逻辑不变
|
|
*/
|
|
|
|
(function() {
|
|
'use strict';
|
|
|
|
// DOM加载完成后初始化
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
// 获取欢迎模式开关元素
|
|
const deepResearchToggle = document.getElementById('deepResearchToggle');
|
|
const showThinkingToggle = document.getElementById('showThinkingToggle');
|
|
|
|
// 获取聊天模式开关元素
|
|
const chatModeDeepResearchToggle = document.getElementById('chatModeDeepResearchToggle');
|
|
const chatModeShowThinkingToggle = document.getElementById('chatModeShowThinkingToggle');
|
|
|
|
// 获取原有的菜单项元素
|
|
const deepResearchItem = document.getElementById('deepResearchItem');
|
|
const showThinkingItem = document.getElementById('showThinkingItem');
|
|
const chatModeDeepResearchItem = document.getElementById('chatModeDeepResearchItem');
|
|
const chatModeShowThinkingItem = document.getElementById('chatModeShowThinkingItem');
|
|
|
|
// 获取状态显示元素
|
|
const deepResearchStatus = document.getElementById('deepResearchStatus');
|
|
const showThinkingStatus = document.getElementById('showThinkingStatus');
|
|
const chatModeDeepResearchStatus = document.getElementById('chatModeDeepResearchStatus');
|
|
const chatModeShowThinkingStatus = document.getElementById('chatModeShowThinkingStatus');
|
|
|
|
// 初始化开关状态为关闭
|
|
if (deepResearchToggle) {
|
|
deepResearchToggle.checked = false;
|
|
}
|
|
if (showThinkingToggle) {
|
|
showThinkingToggle.checked = false;
|
|
}
|
|
if (chatModeDeepResearchToggle) {
|
|
chatModeDeepResearchToggle.checked = false;
|
|
}
|
|
if (chatModeShowThinkingToggle) {
|
|
chatModeShowThinkingToggle.checked = false;
|
|
}
|
|
|
|
// 深度研究开关处理
|
|
if (deepResearchToggle && deepResearchItem) {
|
|
// 标记避免循环触发
|
|
let isUpdatingFromToggle = false;
|
|
|
|
deepResearchToggle.addEventListener('change', function() {
|
|
if (isUpdatingFromToggle) return;
|
|
|
|
// 设置标记
|
|
isUpdatingFromToggle = true;
|
|
|
|
// 触发原有的点击事件
|
|
deepResearchItem.click();
|
|
|
|
// 延迟重置标记
|
|
setTimeout(() => {
|
|
isUpdatingFromToggle = false;
|
|
}, 100);
|
|
});
|
|
|
|
// 监听原有逻辑的状态变化
|
|
const observer = new MutationObserver(function(mutations) {
|
|
mutations.forEach(function(mutation) {
|
|
if (mutation.type === 'childList' || mutation.type === 'characterData') {
|
|
const status = deepResearchStatus ? deepResearchStatus.textContent : '关';
|
|
deepResearchToggle.checked = status === '开';
|
|
// 同步到聊天模式的开关
|
|
if (chatModeDeepResearchToggle) {
|
|
chatModeDeepResearchToggle.checked = status === '开';
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
if (deepResearchStatus) {
|
|
observer.observe(deepResearchStatus, { childList: true, characterData: true, subtree: true });
|
|
}
|
|
}
|
|
|
|
// 显示思考开关处理 - 已禁用
|
|
if (showThinkingToggle) {
|
|
// 禁用开关,不添加任何事件监听
|
|
showThinkingToggle.disabled = true;
|
|
showThinkingToggle.checked = false; // 始终保持关闭状态
|
|
}
|
|
|
|
// 聊天模式深度研究开关处理
|
|
if (chatModeDeepResearchToggle && chatModeDeepResearchItem) {
|
|
// 标记避免循环触发
|
|
let isUpdatingFromToggle = false;
|
|
|
|
chatModeDeepResearchToggle.addEventListener('change', function() {
|
|
if (isUpdatingFromToggle) return;
|
|
|
|
// 设置标记
|
|
isUpdatingFromToggle = true;
|
|
|
|
// 触发原有的点击事件
|
|
chatModeDeepResearchItem.click();
|
|
|
|
// 延迟重置标记
|
|
setTimeout(() => {
|
|
isUpdatingFromToggle = false;
|
|
}, 100);
|
|
});
|
|
|
|
// 监听原有逻辑的状态变化
|
|
const observer = new MutationObserver(function(mutations) {
|
|
mutations.forEach(function(mutation) {
|
|
if (mutation.type === 'childList' || mutation.type === 'characterData') {
|
|
const status = chatModeDeepResearchStatus ? chatModeDeepResearchStatus.textContent : '关';
|
|
chatModeDeepResearchToggle.checked = status === '开';
|
|
// 同步两个模式的开关状态
|
|
if (deepResearchToggle) {
|
|
deepResearchToggle.checked = status === '开';
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
if (chatModeDeepResearchStatus) {
|
|
observer.observe(chatModeDeepResearchStatus, { childList: true, characterData: true, subtree: true });
|
|
}
|
|
}
|
|
|
|
// 聊天模式显示思考开关处理 - 已禁用
|
|
if (chatModeShowThinkingToggle) {
|
|
// 禁用开关,不添加任何事件监听
|
|
chatModeShowThinkingToggle.disabled = true;
|
|
chatModeShowThinkingToggle.checked = false; // 始终保持关闭状态
|
|
}
|
|
|
|
// 阻止菜单项本身的点击事件冒泡到开关
|
|
[deepResearchItem, showThinkingItem, chatModeDeepResearchItem, chatModeShowThinkingItem].forEach(item => {
|
|
if (item) {
|
|
const originalClick = item.onclick;
|
|
item.onclick = function(e) {
|
|
// 如果点击的是开关,不执行原有逻辑
|
|
if (e.target.closest('.switch')) {
|
|
return;
|
|
}
|
|
// 否则执行原有逻辑
|
|
if (originalClick) {
|
|
originalClick.call(this, e);
|
|
}
|
|
};
|
|
}
|
|
});
|
|
});
|
|
})(); |