52 lines
1.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 页面加载时读取存储的配置
document.addEventListener('DOMContentLoaded', () => {
// 同时获取 aiConfig 和 voiceEnabled 状态
chrome.storage.sync.get(['aiConfig', 'voiceEnabled'], (result) => {
const config = result.aiConfig || {};
// 填充 API 配置
document.getElementById('apiUrl').value = config.apiUrl || DEFAULT_URL;
document.getElementById('apiKey').value = config.apiKey || "";
document.getElementById('modelName').value = config.modelName || DEFAULT_MODEL;
// 填充语音开关状态(默认为关闭 false
document.getElementById('voiceEnabled').checked = result.voiceEnabled || false;
});
});
// 保存逻辑
document.getElementById('save').addEventListener('click', () => {
const config = {
apiUrl: document.getElementById('apiUrl').value.trim() || DEFAULT_URL,
apiKey: document.getElementById('apiKey').value.trim(),
modelName: document.getElementById('modelName').value.trim() || DEFAULT_MODEL
};
const isVoiceEnabled = document.getElementById('voiceEnabled').checked;
// 验证 API Key 是否填写
if (!config.apiKey) {
showStatus("❌ 请输入 API Key", "#f56c6c");
return;
}
// 存储到 chrome.storage.sync
chrome.storage.sync.set({
aiConfig: config,
voiceEnabled: isVoiceEnabled
}, () => {
showStatus("✅ 配置已保存,刷新页面生效", "#67c23a");
});
});
// 状态提示函数
function showStatus(text, color) {
const status = document.getElementById('status');
status.textContent = text;
status.style.color = color;
// 3秒后清除提示
setTimeout(() => {
status.textContent = '';
}, 3000);
}