mirror of
https://github.com/cnlimiter/codex-register.git
synced 2026-06-01 05:31:01 +08:00
Merge branch 'master' into master
This commit is contained in:
@@ -44,6 +44,9 @@ const elements = {
|
||||
// CPA 设置
|
||||
cpaForm: document.getElementById('cpa-form'),
|
||||
testCpaBtn: document.getElementById('test-cpa-btn'),
|
||||
// Team Manager 设置
|
||||
tmForm: document.getElementById('tm-form'),
|
||||
testTmBtn: document.getElementById('test-tm-btn'),
|
||||
// 验证码设置
|
||||
emailCodeForm: document.getElementById('email-code-form'),
|
||||
// Outlook 设置
|
||||
@@ -236,6 +239,12 @@ function initEventListeners() {
|
||||
|
||||
if (elements.webuiSettingsForm) {
|
||||
elements.webuiSettingsForm.addEventListener('submit', handleSaveWebuiSettings);
|
||||
// Team Manager 设置
|
||||
if (elements.tmForm) {
|
||||
elements.tmForm.addEventListener('submit', handleSaveTm);
|
||||
}
|
||||
if (elements.testTmBtn) {
|
||||
elements.testTmBtn.addEventListener('click', handleTestTm);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -274,6 +283,8 @@ async function loadSettings() {
|
||||
loadCpaSettings();
|
||||
// 加载 Outlook 设置
|
||||
loadOutlookSettings();
|
||||
// 加载 Team Manager 设置
|
||||
loadTmSettings();
|
||||
|
||||
// Web UI 访问密码提示
|
||||
if (data.webui?.has_access_password) {
|
||||
@@ -1100,3 +1111,73 @@ async function handleTestDynamicProxy() {
|
||||
btn.textContent = '🔌 测试动态代理';
|
||||
}
|
||||
}
|
||||
|
||||
// ============== Team Manager 设置 ==============
|
||||
|
||||
async function loadTmSettings() {
|
||||
try {
|
||||
const data = await api.get('/settings/team-manager');
|
||||
document.getElementById('tm-enabled').checked = data.enabled || false;
|
||||
document.getElementById('tm-api-url').value = data.api_url || '';
|
||||
document.getElementById('tm-api-key').value = '';
|
||||
document.getElementById('tm-api-key').placeholder = data.has_api_key ? '已配置,留空保持不变' : '请输入 API Key';
|
||||
} catch (error) {
|
||||
console.error('加载 Team Manager 设置失败:', error);
|
||||
}
|
||||
}
|
||||
|
||||
async function handleSaveTm(e) {
|
||||
e.preventDefault();
|
||||
const data = {
|
||||
enabled: document.getElementById('tm-enabled').checked,
|
||||
api_url: document.getElementById('tm-api-url').value,
|
||||
api_key: document.getElementById('tm-api-key').value || ''
|
||||
};
|
||||
try {
|
||||
await api.post('/settings/team-manager', data);
|
||||
toast.success('Team Manager 设置已保存');
|
||||
loadTmSettings();
|
||||
} catch (error) {
|
||||
toast.error('保存失败: ' + error.message);
|
||||
}
|
||||
}
|
||||
|
||||
async function handleTestTm() {
|
||||
const apiUrl = document.getElementById('tm-api-url').value;
|
||||
const apiKey = document.getElementById('tm-api-key').value;
|
||||
|
||||
if (!apiUrl) {
|
||||
toast.error('请先填写 API URL');
|
||||
return;
|
||||
}
|
||||
|
||||
let keyToTest = apiKey;
|
||||
if (!keyToTest) {
|
||||
const saved = await api.get('/settings/team-manager');
|
||||
if (!saved.has_api_key) {
|
||||
toast.error('请先填写 API Key');
|
||||
return;
|
||||
}
|
||||
keyToTest = 'use_saved_key';
|
||||
}
|
||||
|
||||
elements.testTmBtn.disabled = true;
|
||||
elements.testTmBtn.innerHTML = '<span class="loading-spinner"></span> 测试中...';
|
||||
|
||||
try {
|
||||
const result = await api.post('/settings/team-manager/test', {
|
||||
api_url: apiUrl,
|
||||
api_key: keyToTest
|
||||
});
|
||||
if (result.success) {
|
||||
toast.success(result.message);
|
||||
} else {
|
||||
toast.error(result.message);
|
||||
}
|
||||
} catch (error) {
|
||||
toast.error('测试失败: ' + error.message);
|
||||
} finally {
|
||||
elements.testTmBtn.disabled = false;
|
||||
elements.testTmBtn.textContent = '🔌 测试连接';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user