From e7940ea9f385d45e25c2d1b1716197b178b28078 Mon Sep 17 00:00:00 2001
From: Gemini Wen
Date: Sun, 27 Jul 2025 09:52:59 +0800
Subject: [PATCH 1/5] fix: stat-icons shrink behavior
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Fix missing space in flex-shrink-0 class for yellow stat-icon
- Add missing flex-shrink-0 to indigo stat-icon
- Ensures all stat icons have proper flex behavior
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude
---
web/admin/index.html | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/web/admin/index.html b/web/admin/index.html
index 73016633..8b3f16f9 100644
--- a/web/admin/index.html
+++ b/web/admin/index.html
@@ -227,7 +227,7 @@
{{ dashboardData.totalApiKeys }}
活跃: {{ dashboardData.activeApiKeys || 0 }}
-
@@ -245,7 +245,7 @@
-
@@ -258,7 +258,7 @@
{{ dashboardData.todayRequests }}
总请求: {{ formatNumber(dashboardData.totalRequests || 0) }}
-
@@ -271,7 +271,7 @@
{{ dashboardData.systemStatus }}
运行时间: {{ formatUptime(dashboardData.uptime) }}
-
@@ -297,7 +297,7 @@
-
@@ -320,7 +320,7 @@
-
@@ -333,7 +333,7 @@
{{ dashboardData.systemRPM || 0 }}
每分钟请求数
-
@@ -346,7 +346,7 @@
{{ dashboardData.systemTPM || 0 }}
每分钟Token数
-
From c201a17cd4de8e12970d673efbf629dd8fe79606 Mon Sep 17 00:00:00 2001
From: Gemini Wen
Date: Sun, 27 Jul 2025 09:58:25 +0800
Subject: [PATCH 2/5] feat: add flex-wrap to token display containers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Add flex-wrap class to both today and total token stat containers
- Allows token numbers and costs to wrap on smaller screens
- Improves responsive layout for token statistics display
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude
---
web/admin/index.html | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/web/admin/index.html b/web/admin/index.html
index 8b3f16f9..99e076bf 100644
--- a/web/admin/index.html
+++ b/web/admin/index.html
@@ -284,7 +284,7 @@
今日Token
-
+
{{ formatNumber((dashboardData.todayInputTokens || 0) + (dashboardData.todayOutputTokens || 0) + (dashboardData.todayCacheCreateTokens || 0) + (dashboardData.todayCacheReadTokens || 0)) }}
/ {{ costsData.todayCosts.formatted.totalCost }}
@@ -307,7 +307,7 @@
总Token消耗
-
+
{{ formatNumber((dashboardData.totalInputTokens || 0) + (dashboardData.totalOutputTokens || 0) + (dashboardData.totalCacheCreateTokens || 0) + (dashboardData.totalCacheReadTokens || 0)) }}
/ {{ costsData.totalCosts.formatted.totalCost }}
From 53e9e421c885a32cafeb858d036acaac393dfe63 Mon Sep 17 00:00:00 2001
From: Gemini Wen
Date: Sun, 27 Jul 2025 10:02:16 +0800
Subject: [PATCH 3/5] feat: format numbers >= billion with k suffix
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Update formatNumber function to display numbers >= 1 billion with 'k' suffix
- Example: 2,500,000,000 displays as '2,500,000k' for better readability
- Improves token statistics display for large numbers
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude
---
web/admin/app.js | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/web/admin/app.js b/web/admin/app.js
index ad0a7682..477d48f6 100644
--- a/web/admin/app.js
+++ b/web/admin/app.js
@@ -2488,7 +2488,11 @@ const app = createApp({
// 格式化数字,添加千分符
formatNumber(num) {
if (num === null || num === undefined) return '0';
- return Number(num).toLocaleString();
+ const number = Number(num);
+ if (number >= 1000000000) {
+ return (number / 1000).toLocaleString() + 'k';
+ }
+ return number.toLocaleString();
},
// 格式化运行时间
From 2dbcb9d6f3f4ce2c22095f2d88d5cbfddb2d2f59 Mon Sep 17 00:00:00 2001
From: Gemini Wen
Date: Sun, 27 Jul 2025 10:04:21 +0800
Subject: [PATCH 4/5] fix: remove decimal points from k-formatted numbers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Use Math.floor() to display whole numbers for billion+ values
- Example: 2,500,123,456 displays as '2,500,123k' instead of '2,500,123.456k'
- Cleaner display for large token numbers
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude
---
web/admin/app.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/web/admin/app.js b/web/admin/app.js
index 477d48f6..c6eb3d70 100644
--- a/web/admin/app.js
+++ b/web/admin/app.js
@@ -2490,7 +2490,7 @@ const app = createApp({
if (num === null || num === undefined) return '0';
const number = Number(num);
if (number >= 1000000000) {
- return (number / 1000).toLocaleString() + 'k';
+ return Math.floor(number / 1000).toLocaleString() + 'k';
}
return number.toLocaleString();
},
From 5ca568e693659785d4f622ad161c94aea9bd3b0a Mon Sep 17 00:00:00 2001
From: Gemini Wen
Date: Sun, 27 Jul 2025 10:50:39 +0800
Subject: [PATCH 5/5] feat: format numbers >= million with M suffix and remove
billion k formatting
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Update formatNumber function to display numbers >= 1 million with 'M' suffix
- Remove previous billion formatting with 'k' suffix
- Example: 2,500,000 displays as '2M' for better readability
- Use Math.floor() to ensure no decimal points in formatted numbers
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude
---
web/admin/app.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/web/admin/app.js b/web/admin/app.js
index c6eb3d70..2910ca4b 100644
--- a/web/admin/app.js
+++ b/web/admin/app.js
@@ -2489,8 +2489,8 @@ const app = createApp({
formatNumber(num) {
if (num === null || num === undefined) return '0';
const number = Number(num);
- if (number >= 1000000000) {
- return Math.floor(number / 1000).toLocaleString() + 'k';
+ if (number >= 1000000) {
+ return Math.floor(number / 1000000).toLocaleString() + 'M';
}
return number.toLocaleString();
},