AIClient-2-API/static/app/constants.js
hex2077 4554a4cfd2 feat(ui): 重构前端UI组件并添加新功能
- 新增组件加载器实现动态加载HTML组件
- 重构导航功能,添加滚动到顶部功能
- 新增多个UI组件:header、sidebar、logs、usage等
- 实现移动端菜单响应式设计
- 优化DOM元素获取方式,使用延迟加载
- 新增系统监控模块和用量缓存功能
- 扩展静态文件服务支持/components路径
- 实现插件管理和系统API接口
- 添加配置上传和管理功能
- 完善认证和token管理机制
2026-01-10 15:53:04 +08:00

66 lines
No EOL
1.8 KiB
JavaScript

// 全局变量
let eventSource = null;
let autoScroll = true;
let logs = [];
// 提供商统计全局变量
let providerStats = {
totalRequests: 0,
totalErrors: 0,
activeProviders: 0,
healthyProviders: 0,
totalAccounts: 0,
lastUpdateTime: null,
providerTypeStats: {} // 详细按类型统计
};
// DOM元素 - 使用 getter 延迟获取,以支持动态加载的组件
const elements = {
get serverStatus() { return document.getElementById('serverStatus'); },
get restartBtn() { return document.getElementById('restartBtn'); },
get sections() { return document.querySelectorAll('.section'); },
get navItems() { return document.querySelectorAll('.nav-item'); },
get logsContainer() { return document.getElementById('logsContainer'); },
get clearLogsBtn() { return document.getElementById('clearLogs'); },
get toggleAutoScrollBtn() { return document.getElementById('toggleAutoScroll'); },
get saveConfigBtn() { return document.getElementById('saveConfig'); },
get resetConfigBtn() { return document.getElementById('resetConfig'); },
get toastContainer() { return document.getElementById('toastContainer'); },
get modelProvider() { return document.getElementById('modelProvider'); },
};
// 定期刷新间隔
const REFRESH_INTERVALS = {
SYSTEM_INFO: 10000
};
// 导出所有常量
export {
eventSource,
autoScroll,
logs,
providerStats,
elements,
REFRESH_INTERVALS
};
// 更新函数
export function setEventSource(source) {
eventSource = source;
}
export function setAutoScroll(value) {
autoScroll = value;
}
export function addLog(log) {
logs.push(log);
}
export function clearLogs() {
logs = [];
}
export function updateProviderStats(newStats) {
providerStats = { ...providerStats, ...newStats };
}