first commit
This commit is contained in:
154
AIEC-server/js/switch-toggle-bridge.js
Normal file
154
AIEC-server/js/switch-toggle-bridge.js
Normal file
@ -0,0 +1,154 @@
|
||||
/**
|
||||
* 开关按钮与原有逻辑的桥接
|
||||
* 保持原有的事件处理逻辑不变
|
||||
*/
|
||||
|
||||
(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);
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
});
|
||||
})();
|
||||
Reference in New Issue
Block a user