From 8e9fb3dd17493cbd899b4c1d28ce77aca23b9235 Mon Sep 17 00:00:00 2001 From: OoO Date: Fri, 1 May 2026 00:28:56 +0800 Subject: [PATCH] =?UTF-8?q?feat(frontend):=20=E5=B0=87=20V2=20=E8=A8=AD?= =?UTF-8?q?=E7=82=BA=E6=AD=A3=E5=BC=8F=E9=A0=90=E8=A8=AD=E4=BB=8B=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CONSTITUTION.md | 2 +- app.py | 4 +-- routes/dashboard_routes.py | 2 +- routes/edm_routes.py | 10 +++--- routes/vendor_routes.py | 40 ++++++++++++------------ templates/dashboard_v2.html | 22 ++++++------- templates/edm_dashboard_v2.html | 8 ++--- templates/vendor_stockout_import_v2.html | 6 ++-- templates/vendor_stockout_index_v2.html | 8 ++--- templates/vendor_stockout_list_v2.html | 18 +++++------ tests/test_frontend_v2_assets.py | 22 ++++++++----- 11 files changed, 74 insertions(+), 68 deletions(-) diff --git a/CONSTITUTION.md b/CONSTITUTION.md index 65e97b3..cdf5988 100644 --- a/CONSTITUTION.md +++ b/CONSTITUTION.md @@ -2,7 +2,7 @@ > 本文件定義專案開發的核心準則與不可違反的規範 > **建立日期**: 2026-01-12 -> **當前版本**: V10.39 (Vendor stockout import v2 feature flag) +> **當前版本**: V10.40 (Frontend V2 production default) > **最後更新**: 2026-05-01 --- diff --git a/app.py b/app.py index a5241c9..e566a82 100644 --- a/app.py +++ b/app.py @@ -95,8 +95,8 @@ except Exception as e: sys_log.error(f"無法檢測磁碟空間: {e}") # 🚩 系統版本定義 (備份與顯示用) -# 🚩 2026-05-01 V10.39: Vendor stockout import v2 feature flag -SYSTEM_VERSION = "V10.39" +# 🚩 2026-05-01 V10.40: Frontend V2 as production default +SYSTEM_VERSION = "V10.40" # ========================================== # 🔒 SQL Injection 防護函數 diff --git a/routes/dashboard_routes.py b/routes/dashboard_routes.py index 2f68bf2..cd5b891 100644 --- a/routes/dashboard_routes.py +++ b/routes/dashboard_routes.py @@ -619,7 +619,7 @@ def index(): category_name = item['record'].product.category item['category_color'] = get_color_for_string(category_name) - template_name = 'dashboard_v2.html' if request.args.get('ui') == 'v2' else 'dashboard.html' + template_name = 'dashboard.html' if request.args.get('ui') == 'legacy' else 'dashboard_v2.html' return render_template(template_name, total_products=total_products_history, diff --git a/routes/edm_routes.py b/routes/edm_routes.py index fed91d4..b6d903e 100644 --- a/routes/edm_routes.py +++ b/routes/edm_routes.py @@ -321,7 +321,7 @@ def edm_dashboard(): scheduler_stats = load_scheduler_stats() now_taipei = datetime.now(TAIPEI_TZ) - template_name = 'edm_dashboard_v2.html' if request.args.get('ui') == 'v2' else 'edm_dashboard.html' + template_name = 'edm_dashboard.html' if request.args.get('ui') == 'legacy' else 'edm_dashboard_v2.html' return render_template(template_name, promo_pages=promo_pages, @@ -375,7 +375,7 @@ def festival_dashboard(): scheduler_stats = load_scheduler_stats() - template_name = 'edm_dashboard_v2.html' if request.args.get('ui') == 'v2' else 'edm_dashboard.html' + template_name = 'edm_dashboard.html' if request.args.get('ui') == 'legacy' else 'edm_dashboard_v2.html' return render_template(template_name, promo_pages=promo_pages, @@ -427,7 +427,7 @@ def mothers_day_dashboard(): scheduler_stats = load_scheduler_stats() - template_name = 'edm_dashboard_v2.html' if request.args.get('ui') == 'v2' else 'edm_dashboard.html' + template_name = 'edm_dashboard.html' if request.args.get('ui') == 'legacy' else 'edm_dashboard_v2.html' return render_template(template_name, promo_pages=promo_pages, @@ -479,7 +479,7 @@ def valentine_520_dashboard(): scheduler_stats = load_scheduler_stats() - template_name = 'edm_dashboard_v2.html' if request.args.get('ui') == 'v2' else 'edm_dashboard.html' + template_name = 'edm_dashboard.html' if request.args.get('ui') == 'legacy' else 'edm_dashboard_v2.html' return render_template(template_name, promo_pages=promo_pages, @@ -531,7 +531,7 @@ def labor_day_dashboard(): scheduler_stats = load_scheduler_stats() - template_name = 'edm_dashboard_v2.html' if request.args.get('ui') == 'v2' else 'edm_dashboard.html' + template_name = 'edm_dashboard.html' if request.args.get('ui') == 'legacy' else 'edm_dashboard_v2.html' return render_template(template_name, promo_pages=promo_pages, diff --git a/routes/vendor_routes.py b/routes/vendor_routes.py index 88f3353..16a0d49 100644 --- a/routes/vendor_routes.py +++ b/routes/vendor_routes.py @@ -198,38 +198,38 @@ def _get_vendor_stockout_list_context(): def index(): """廠商缺貨系統主頁""" sys_log.info("[VendorStockout] 進入廠商缺貨系統主頁") - if request.args.get('ui') == 'v2': - return render_template( - 'vendor_stockout_index_v2.html', - active_page='vendor_stockout', - stats=_get_vendor_dashboard_stats() - ) - return render_template('vendor_stockout/index.html') + if request.args.get('ui') == 'legacy': + return render_template('vendor_stockout/index.html') + return render_template( + 'vendor_stockout_index_v2.html', + active_page='vendor_stockout', + stats=_get_vendor_dashboard_stats() + ) @vendor_bp.route('/import') def import_page(): """Excel 匯入頁面""" sys_log.info("[VendorStockout] 進入匯入頁面") - if request.args.get('ui') == 'v2': - return render_template( - 'vendor_stockout_import_v2.html', - active_page='vendor_stockout' - ) - return render_template('vendor_stockout/import.html') + if request.args.get('ui') == 'legacy': + return render_template('vendor_stockout/import.html') + return render_template( + 'vendor_stockout_import_v2.html', + active_page='vendor_stockout' + ) @vendor_bp.route('/list') def list_page(): """缺貨清單頁面""" sys_log.info("[VendorStockout] 進入缺貨清單頁面") - if request.args.get('ui') == 'v2': - return render_template( - 'vendor_stockout_list_v2.html', - active_page='vendor_stockout', - **_get_vendor_stockout_list_context() - ) - return render_template('vendor_stockout/list.html') + if request.args.get('ui') == 'legacy': + return render_template('vendor_stockout/list.html') + return render_template( + 'vendor_stockout_list_v2.html', + active_page='vendor_stockout', + **_get_vendor_stockout_list_context() + ) @vendor_bp.route('/vendor-management') diff --git a/templates/dashboard_v2.html b/templates/dashboard_v2.html index 02122d4..279dde7 100644 --- a/templates/dashboard_v2.html +++ b/templates/dashboard_v2.html @@ -537,11 +537,11 @@
- 全部 - 新上架 - 漲價 - 降價 - 下架 + 全部 + 新上架 + 漲價 + 降價 + 下架