From 0d68f3ea7353905ef0a9f18f2011bf7b4d6bdf74 Mon Sep 17 00:00:00 2001 From: OoO Date: Wed, 13 May 2026 11:44:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BF=AB=E5=8F=96=E5=95=86=E5=93=81=E7=9C=8B?= =?UTF-8?q?=E6=9D=BF=E6=AF=94=E5=83=B9=E7=B8=BD=E8=A6=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.py | 2 +- routes/dashboard_routes.py | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/config.py b/config.py index 24bf7f8..8beafcf 100644 --- a/config.py +++ b/config.py @@ -320,7 +320,7 @@ YOUTUBE_API_KEY = os.getenv('YOUTUBE_API_KEY', '') # ========================================== # 系統版本與路徑 # ========================================== -SYSTEM_VERSION = "V10.106" +SYSTEM_VERSION = "V10.107" LOG_FILE_PATH = os.path.join(BASE_DIR, 'logs/system.log') public_url = PUBLIC_URL # 用於模板顯示 diff --git a/routes/dashboard_routes.py b/routes/dashboard_routes.py index c9b9a9e..4cce971 100644 --- a/routes/dashboard_routes.py +++ b/routes/dashboard_routes.py @@ -1191,6 +1191,7 @@ def get_full_dashboard_data(force_rebuild=False): 'most_active_category': most_active_category_item[0], 'most_active_count': most_active_category_item[1] } + full_data['competitor_overview'] = _load_competitor_decision_overview(session, unique_items) # 更新快取 _DASHBOARD_DATA_CACHE['full_data'] = full_data @@ -1412,7 +1413,12 @@ def index(): competitor.get('price') if competitor else None ) - competitor_overview = _load_competitor_decision_overview(session, unique_items) + competitor_overview = data.get('competitor_overview') + if not competitor_overview: + competitor_overview = _load_competitor_decision_overview(session, unique_items) + data['competitor_overview'] = competitor_overview + _DASHBOARD_DATA_CACHE['full_data'] = data + _write_shared_full_dashboard_cache(data) template_name = 'dashboard.html' if request.args.get('ui') == 'legacy' else 'dashboard_v2.html' return render_template(template_name,