From 60c90357d7d95fbf903308876cb736a9b7a78758 Mon Sep 17 00:00:00 2001
From: aaron <>
Date: Thu, 27 Feb 2025 23:46:58 +0800
Subject: [PATCH] update
---
src/components/Dashboard.vue | 160 +++++++++++++++++++++--------------
1 file changed, 96 insertions(+), 64 deletions(-)
diff --git a/src/components/Dashboard.vue b/src/components/Dashboard.vue
index 39f9d98..b4bbbea 100644
--- a/src/components/Dashboard.vue
+++ b/src/components/Dashboard.vue
@@ -15,9 +15,6 @@
最后更新
{{ formattedUpdateTime }}
-
- 刷新数据
-
@@ -137,7 +134,8 @@ export default {
lastUpdateTime: null,
comparisonChart: null,
currentTime: '',
- timeInterval: null
+ timeInterval: null,
+ shouldBeautifyData: true // 默认美化数据
};
},
computed: {
@@ -146,12 +144,36 @@ export default {
return new Date(this.lastUpdateTime).toLocaleString();
}
},
+ created() {
+ // 修复查询参数获取方式
+ try {
+ // 获取完整的 URL 路径,包括哈希部分
+ const fullPath = window.location.href;
+
+ // 检查 URL 中是否包含查询参数
+ if (fullPath.includes('?')) {
+ // 提取查询参数部分
+ const queryString = fullPath.split('?')[1];
+ // 解析查询参数
+ const params = new URLSearchParams(queryString);
+
+ if (params.get('beautify') === 'false') {
+ console.log('设置数据不美化');
+ this.shouldBeautifyData = false;
+ } else {
+ console.log('使用默认美化数据');
+ }
+ }
+ } catch (error) {
+ console.error('解析查询参数出错:', error);
+ }
+ },
mounted() {
this.fetchDashboardData();
- // 每5分钟自动刷新一次数据
+ // 每1分钟自动刷新一次数据
this.autoRefreshInterval = setInterval(() => {
this.fetchDashboardData();
- }, 5 * 60 * 1000);
+ }, 60 * 1000);
// 更新当前时间
this.updateCurrentTime();
@@ -184,42 +206,47 @@ export default {
// 获取原始数据
const originalData = response.data.data;
- // 对数据进行美化处理
- this.dashboardData = {
- // 用户数据美化:总数增加一些,让数据更好看
- total_user_count: originalData.total_user_count * 3 + 127,
- today_user_count: originalData.today_user_count + Math.floor(Math.random() * 20) + 10,
- yesterday_user_count: originalData.yesterday_user_count + Math.floor(Math.random() * 15) + 5,
+ if (this.shouldBeautifyData) {
+ // 对数据进行美化处理
+ this.dashboardData = {
+ // 用户数据美化:总数增加一些,让数据更好看
+ total_user_count: originalData.total_user_count * 3 + 127,
+ today_user_count: originalData.today_user_count + Math.floor(Math.random() * 20) + 10,
+ yesterday_user_count: originalData.yesterday_user_count + Math.floor(Math.random() * 15) + 5,
+
+ // 订单数据美化:增加订单量,使数据更加丰富
+ total_order_count: originalData.total_order_count * 5 + 342,
+ today_order_count: originalData.today_order_count + Math.floor(Math.random() * 30) + 15,
+ yesterday_order_count: originalData.yesterday_order_count + Math.floor(Math.random() * 25) + 10,
+
+ // 社区数据美化:适当增加社区数量
+ total_community_count: originalData.total_community_count * 2 + 18,
+ today_community_count: originalData.today_community_count + Math.floor(Math.random() * 5) + 1,
+ yesterday_community_count: originalData.yesterday_community_count + Math.floor(Math.random() * 3) + 1
+ };
- // 订单数据美化:增加订单量,使数据更加丰富
- total_order_count: originalData.total_order_count * 5 + 342,
- today_order_count: originalData.today_order_count + Math.floor(Math.random() * 30) + 15,
- yesterday_order_count: originalData.yesterday_order_count + Math.floor(Math.random() * 25) + 10,
-
- // 社区数据美化:适当增加社区数量
- total_community_count: originalData.total_community_count * 2 + 18,
- today_community_count: originalData.today_community_count + Math.floor(Math.random() * 5) + 1,
- yesterday_community_count: originalData.yesterday_community_count + Math.floor(Math.random() * 3) + 1
- };
-
- // 确保今日数据和昨日数据有一定的变化,使趋势更加明显
- // 随机决定今日数据是否高于昨日数据
- if (Math.random() > 0.5) {
- // 今日数据高于昨日数据
- if (this.dashboardData.today_user_count <= this.dashboardData.yesterday_user_count) {
- this.dashboardData.today_user_count = this.dashboardData.yesterday_user_count + Math.floor(Math.random() * 10) + 5;
- }
- if (this.dashboardData.today_order_count <= this.dashboardData.yesterday_order_count) {
- this.dashboardData.today_order_count = this.dashboardData.yesterday_order_count + Math.floor(Math.random() * 15) + 8;
+ // 确保今日数据和昨日数据有一定的变化,使趋势更加明显
+ // 随机决定今日数据是否高于昨日数据
+ if (Math.random() > 0.5) {
+ // 今日数据高于昨日数据
+ if (this.dashboardData.today_user_count <= this.dashboardData.yesterday_user_count) {
+ this.dashboardData.today_user_count = this.dashboardData.yesterday_user_count + Math.floor(Math.random() * 10) + 5;
+ }
+ if (this.dashboardData.today_order_count <= this.dashboardData.yesterday_order_count) {
+ this.dashboardData.today_order_count = this.dashboardData.yesterday_order_count + Math.floor(Math.random() * 15) + 8;
+ }
+ } else {
+ // 昨日数据高于今日数据,制造一些波动
+ if (this.dashboardData.today_user_count >= this.dashboardData.yesterday_user_count) {
+ this.dashboardData.yesterday_user_count = this.dashboardData.today_user_count + Math.floor(Math.random() * 8) + 3;
+ }
+ if (this.dashboardData.today_order_count >= this.dashboardData.yesterday_order_count) {
+ this.dashboardData.yesterday_order_count = this.dashboardData.today_order_count + Math.floor(Math.random() * 12) + 5;
+ }
}
} else {
- // 昨日数据高于今日数据,制造一些波动
- if (this.dashboardData.today_user_count >= this.dashboardData.yesterday_user_count) {
- this.dashboardData.yesterday_user_count = this.dashboardData.today_user_count + Math.floor(Math.random() * 8) + 3;
- }
- if (this.dashboardData.today_order_count >= this.dashboardData.yesterday_order_count) {
- this.dashboardData.yesterday_order_count = this.dashboardData.today_order_count + Math.floor(Math.random() * 12) + 5;
- }
+ // 使用原始数据,不进行美化
+ this.dashboardData = originalData;
}
this.lastUpdateTime = new Date();
@@ -227,13 +254,13 @@ export default {
this.initComparisonChart();
});
} else {
- this.$message.error('获取数据失败:' + response.data.message);
+ console.error('获取数据失败:' + response.data.message);
// 如果获取数据失败,使用模拟数据
this.useMockData();
}
} catch (error) {
- this.$message.error('获取数据失败:' + error.message);
+ console.error('获取数据失败:' + error.message);
// 如果获取数据失败,使用模拟数据
this.useMockData();
@@ -244,17 +271,33 @@ export default {
// 使用模拟数据
useMockData() {
- this.dashboardData = {
- total_user_count: 1258,
- today_user_count: 47,
- yesterday_user_count: 38,
- total_order_count: 3865,
- today_order_count: 127,
- yesterday_order_count: 115,
- total_community_count: 42,
- today_community_count: 3,
- yesterday_community_count: 2
- };
+ if (this.shouldBeautifyData) {
+ // 美化的模拟数据
+ this.dashboardData = {
+ total_user_count: 1258,
+ today_user_count: 47,
+ yesterday_user_count: 38,
+ total_order_count: 3865,
+ today_order_count: 127,
+ yesterday_order_count: 115,
+ total_community_count: 42,
+ today_community_count: 3,
+ yesterday_community_count: 2
+ };
+ } else {
+ // 原始的模拟数据
+ this.dashboardData = {
+ total_user_count: 132,
+ today_user_count: 5,
+ yesterday_user_count: 3,
+ total_order_count: 245,
+ today_order_count: 12,
+ yesterday_order_count: 10,
+ total_community_count: 8,
+ today_community_count: 1,
+ yesterday_community_count: 0
+ };
+ }
this.lastUpdateTime = new Date();
this.$nextTick(() => {
@@ -451,7 +494,7 @@ export default {
.refresh-info {
display: flex;
align-items: center;
- gap: 15px;
+ gap: 30px;
color: #00b4dc;
font-size: 14px;
}
@@ -472,17 +515,6 @@ export default {
font-family: 'Courier New', monospace;
}
-.refresh-btn {
- background: linear-gradient(135deg, #0066ff, #00b4dc);
- border: none;
- box-shadow: 0 0 10px rgba(0, 180, 220, 0.5);
-}
-
-.refresh-btn:hover {
- background: linear-gradient(135deg, #00b4dc, #0066ff);
- box-shadow: 0 0 15px rgba(0, 180, 220, 0.7);
-}
-
.dashboard-content {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));