-
-
用户总数
-
{{ stats.total_users }}
-
-
-
活跃用户(7天)
-
{{ stats.active_users }}
-
-
-
对话总数
-
{{ stats.total_conversations }}
-
-
-
消息总数
-
{{ stats.total_messages }}
-
+
+
+
+
+
用户总数
+
{{ stats.total_users }}
+
+
+
活跃用户(7天)
+
{{ stats.active_users }}
+
+
+
对话总数
+
{{ stats.total_conversations }}
+
+
+
消息总数
+
{{ stats.total_messages }}
+
-
-
-
用户列表
-
-
-
-
+
+
+
+
+
+
-
-
-
-
- | ID |
- 手机号 |
- 注册时间 |
- 最后登录 |
- 状态 |
-
-
-
-
- | {{ user.id }} |
- {{ user.phone }} |
- {{ formatDate(user.created_at) }} |
- {{ formatDate(user.last_login_at) }} |
-
-
- {{ user.is_active ? '正常' : '禁用' }}
-
- |
-
-
-
-
+
+
+
+
+ | ID |
+ 手机号 |
+ 注册时间 |
+ 最后登录 |
+ 状态 |
+
+
+
+
+ | {{ user.id }} |
+ {{ user.phone }} |
+ {{ formatDate(user.created_at) }} |
+ {{ formatDate(user.last_login_at) }} |
+
+
+ {{ user.is_active ? '正常' : '禁用' }}
+
+ |
+
+
+
+
-
+
@@ -719,7 +531,7 @@
password: '',
errorMessage: '',
adminPassword: '',
- currentView: 'users', // 当前视图:dashboard 或 users
+ currentView: 'users',
stats: {
total_users: 0,
active_users: 0,
@@ -744,7 +556,6 @@
}
},
mounted() {
- // 检查是否已登录
const savedPassword = sessionStorage.getItem('admin_password');
if (savedPassword) {
this.adminPassword = savedPassword;
@@ -851,11 +662,8 @@
formatDate(dateString) {
if (!dateString) return '-';
- // 直接解析 ISO 格式的时间字符串,不做时区转换
- // 假设服务器返回的是 UTC 时间,我们将其视为本地时间显示
- const date = new Date(dateString + 'Z'); // 添加 Z 表示 UTC
+ const date = new Date(dateString + 'Z');
- // 获取各个时间部分
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
diff --git a/frontend/index.html b/frontend/index.html
index 9ea40fe..e226069 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -8,492 +8,240 @@
-
+
-
-
@@ -922,19 +505,19 @@
-
Tradus|AI金融智能体
+
Tradus AI