diff --git a/config.py b/config.py index fc91a9c..4c1dafa 100644 --- a/config.py +++ b/config.py @@ -402,7 +402,7 @@ YOUTUBE_API_KEY = os.getenv('YOUTUBE_API_KEY', '') # ========================================== # 系統版本與路徑 # ========================================== -SYSTEM_VERSION = "V10.642" +SYSTEM_VERSION = "V10.643" LOG_FILE_PATH = os.path.join(BASE_DIR, 'logs/system.log') public_url = PUBLIC_URL # 用於模板顯示 diff --git a/docs/AI_INTELLIGENCE_MODULE_SOT.md b/docs/AI_INTELLIGENCE_MODULE_SOT.md index 802f825..e72d85d 100644 --- a/docs/AI_INTELLIGENCE_MODULE_SOT.md +++ b/docs/AI_INTELLIGENCE_MODULE_SOT.md @@ -78,6 +78,7 @@ - V10.640 起 `/ai_intelligence` 必須提供 MOMO 待確認候選操作佇列;使用者可直接確認同款或排除候選。確認後 `external_offers` 會轉為 `verified/verified` 並進入作戰清單,排除後轉為 `rejected/rejected`,兩者都必須清掉 PChome 成長作戰清單快取。 - V10.641 起 `/ai_intelligence` 的摘要數字不可只是靜態文字;第一屏 KPI、商品處理進度、待確認數字都必須可點擊並導向對應明細。今日清單若已有 MOMO 待確認候選,下一步必須顯示「確認候選」並跳到候選面板,不得再只顯示「補齊比價」。 - V10.642 起 `/ai_intelligence` 的摘要卡與商品處理數字不可只跳到大區塊;點擊後必須開啟商品明細面板,列出商品名稱、分類、近 7 天業績、業績變化、MOMO 比價狀態與下一步按鈕。明細需至少支援全部、價格壓力、價格優勢、待確認、缺比價與有外部價切換;外部價格風險分佈也必須能一鍵篩選下方表格。 +- V10.643 起 `/ai_intelligence` 的商品明細上方必須提供「商品策略分流」視覺摘要,至少包含價格壓力、價格優勢、待確認、缺比價四類;每一類需顯示件數、近 7 天業績與比例條,且可點擊切換明細。舊 KPI 卡也不得是靜態數字,需可導向全部商品、可處理商品、高風險比價或處理紀錄。 ## 零之一、12 Agent 決策信封(2026-05-24) diff --git a/templates/ai_intelligence.html b/templates/ai_intelligence.html index d55f25a..4f329ca 100644 --- a/templates/ai_intelligence.html +++ b/templates/ai_intelligence.html @@ -300,7 +300,8 @@ .growth-exec-card.is-clickable, .ops-dashboard-tile.is-clickable, - .growth-metric.is-clickable { + .growth-metric.is-clickable, + #kpiRow .card.is-clickable { cursor: pointer; transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease; } @@ -310,7 +311,9 @@ .ops-dashboard-tile.is-clickable:hover, .ops-dashboard-tile.is-clickable:focus, .growth-metric.is-clickable:hover, - .growth-metric.is-clickable:focus { + .growth-metric.is-clickable:focus, + #kpiRow .card.is-clickable:hover, + #kpiRow .card.is-clickable:focus { border-color: rgba(172, 92, 58, 0.34); box-shadow: 0 0 0 3px rgba(172, 92, 58, 0.1), var(--momo-shadow-soft); outline: none; @@ -687,6 +690,103 @@ color: var(--momo-text-strong); } + .growth-strategy-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 10px; + margin-bottom: 10px; + } + + .growth-strategy-card { + display: grid; + gap: 6px; + min-height: 104px; + border: 1px solid rgba(42, 37, 32, 0.1); + border-radius: 8px; + background: rgba(250, 247, 240, 0.7); + color: var(--momo-text-strong); + padding: 10px; + text-align: left; + transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease; + } + + .growth-strategy-card:hover, + .growth-strategy-card:focus, + .growth-strategy-card.is-active { + border-color: rgba(172, 92, 58, 0.36); + box-shadow: 0 0 0 3px rgba(172, 92, 58, 0.1), var(--momo-shadow-soft); + outline: 0; + transform: translateY(-1px); + } + + .growth-strategy-card.is-risk { + background: rgba(255, 244, 239, 0.9); + border-color: rgba(185, 79, 58, 0.22); + } + + .growth-strategy-card.is-advantage { + background: rgba(238, 249, 241, 0.92); + border-color: rgba(47, 143, 102, 0.22); + } + + .growth-strategy-card.is-review { + background: rgba(255, 249, 236, 0.92); + border-color: rgba(216, 161, 58, 0.24); + } + + .growth-strategy-card.is-needs { + background: rgba(250, 247, 240, 0.92); + border-color: rgba(42, 37, 32, 0.12); + } + + .growth-strategy-label { + color: var(--momo-text-muted); + font-size: 0.72rem; + font-weight: 900; + } + + .growth-strategy-value { + color: var(--momo-text-strong); + font-family: var(--momo-font-mono); + font-size: 1.55rem; + font-weight: 900; + line-height: 1; + } + + .growth-strategy-note { + color: var(--momo-text-muted); + font-size: 0.72rem; + font-weight: 760; + line-height: 1.35; + } + + .growth-strategy-track { + overflow: hidden; + height: 6px; + border-radius: 999px; + background: rgba(42, 37, 32, 0.08); + } + + .growth-strategy-bar { + display: block; + width: 0; + height: 100%; + border-radius: inherit; + background: var(--momo-warm-caramel); + } + + .growth-strategy-card.is-risk .growth-strategy-bar { + background: #b94f3a; + } + + .growth-strategy-card.is-advantage .growth-strategy-bar { + background: #2f8f66; + } + + .growth-strategy-card.is-review .growth-strategy-bar { + background: #d8a13a; + } + .growth-detail-result { border: 1px solid rgba(42, 37, 32, 0.1); border-radius: 8px; @@ -1210,6 +1310,7 @@ .growth-executive-strip, .offer-dryrun-grid, .growth-metric-row, + .growth-strategy-grid, .ops-flow-grid, .offer-dryrun-summary, .price-risk-board { @@ -1391,6 +1492,32 @@ +