refactor(usage): load stats via config events

This commit is contained in:
hkfires
2025-11-21 09:57:56 +08:00
parent d2fc784116
commit a6344a6a61
3 changed files with 15 additions and 4 deletions

1
app.js
View File

@@ -149,6 +149,7 @@ class CLIProxyManager {
this.initUiVersion(); this.initUiVersion();
this.initializeTheme(); this.initializeTheme();
this.registerSettingsListeners(); this.registerSettingsListeners();
this.registerUsageListeners();
this.checkLoginStatus(); this.checkLoginStatus();
this.bindEvents(); this.bindEvents();
this.setupNavigation(); this.setupNavigation();

View File

@@ -328,9 +328,6 @@ export const connectionModule = {
// 认证文件需要单独加载,因为不在配置中 // 认证文件需要单独加载,因为不在配置中
await this.loadAuthFiles(keyStats); await this.loadAuthFiles(keyStats);
// 使用统计需要单独加载复用已获取的usage数据
await this.loadUsageStats(usageData);
// 加载配置文件编辑器内容 // 加载配置文件编辑器内容
await this.loadConfigFileEditor(forceRefresh); await this.loadConfigFileEditor(forceRefresh);
this.refreshConfigEditor(); this.refreshConfigEditor();

View File

@@ -741,5 +741,18 @@ export const usageModule = {
getTokensChartData, getTokensChartData,
switchRequestsPeriod, switchRequestsPeriod,
switchTokensPeriod, switchTokensPeriod,
updateApiStatsTable updateApiStatsTable,
registerUsageListeners
}; };
// 订阅全局事件,基于配置加载结果渲染使用统计
export function registerUsageListeners() {
if (!this.events || typeof this.events.on !== 'function') {
return;
}
this.events.on('data:config-loaded', (event) => {
const detail = event?.detail || {};
const usageData = detail.usageData || null;
this.loadUsageStats(usageData);
});
}