feat: simplify growth price command panel

This commit is contained in:
ogt
2026-06-25 18:47:26 +08:00
parent 4c89b53550
commit 49ff083512
5 changed files with 152 additions and 36 deletions

View File

@@ -137,43 +137,52 @@
<article class="ga-chart-card">
<header class="ga-chart-card__head">
<span class="ga-chart-card__title"><i class="fas fa-bullseye"></i> 比價資料品質</span>
<span class="ga-chart-card__title"><i class="fas fa-bullseye"></i> PChome 價格作戰可用度</span>
</header>
<div class="ga-chart-card__body ga-chart-card__body--md">
<div class="ga-chart-card__body ga-chart-card__body--md ga-chart-card__body--command">
{% set coverage = chart_data.competitor_coverage | default({}) %}
<div class="ga-competitor-quality">
<span>高信心門檻</span>
<strong class="momo-mono">{{ coverage.match_score_floor | default(0.76) }}</strong>
<span>決策支援覆蓋率</span>
<strong class="momo-mono">{{ coverage.decision_support_rate | default(coverage.decision_ready_rate | default(0)) }}%</strong>
<span>精準可告警覆蓋</span>
<strong class="momo-mono">{{ coverage.decision_ready_rate | default(0) }}%</strong>
<span>身份配對</span>
<strong class="momo-mono">{{ coverage.valid_matches | default(0) | number_format }}</strong>
<span>身份覆蓋率</span>
<strong class="momo-mono">{{ coverage.match_rate | default(0) }}%</strong>
<span>價格新鮮</span>
<strong class="momo-mono">{{ coverage.fresh_matches | default(0) | number_format }}</strong>
<span>新鮮率</span>
<strong class="momo-mono">{{ coverage.fresh_match_rate | default(0) }}%</strong>
<span>價格過期</span>
<strong class="momo-mono">{{ coverage.stale_matches | default(0) | number_format }}</strong>
<span>未知新鮮度</span>
<strong class="momo-mono">{{ coverage.unknown_freshness_matches | default(0) | number_format }}</strong>
<span>未形成有效身份配對</span>
<strong class="momo-mono">{{ coverage.pending | default(0) | number_format }}</strong>
<span>需單位價覆核</span>
<strong class="momo-mono">{{ coverage.unit_comparable_count | default(0) | number_format }}</strong>
<span>型錄/任選可比</span>
<strong class="momo-mono">{{ coverage.catalog_comparable_count | default(0) | number_format }}</strong>
<span>重算待人工覆核</span>
<strong class="momo-mono">{{ coverage.rescore_accepted_count | default(0) | number_format }}</strong>
<span>人工採用</span>
<strong class="momo-mono">{{ coverage.manual_accept_count | default(0) | number_format }}</strong>
<span>人工否決</span>
<strong class="momo-mono">{{ coverage.manual_reject_count | default(0) | number_format }}</strong>
<span>人工單位價</span>
<strong class="momo-mono">{{ coverage.manual_unit_price_count | default(0) | number_format }}</strong>
{% set decision_rate = coverage.decision_support_rate | default(coverage.decision_ready_rate | default(0)) | float %}
{% set match_rate = coverage.match_rate | default(0) | float %}
{% set stale_count = coverage.stale_matches | default(0) | int %}
{% set pending_count = coverage.pending | default(0) | int %}
{% set review_count = coverage.actionable_review_count | default(coverage.rescore_accepted_count | default(0)) | int %}
{% set action_count = pending_count + review_count %}
<div class="ga-competitor-command">
<div class="ga-competitor-signal">
<span>可直接決策</span>
<strong class="momo-mono">{{ "{:.1f}%".format(decision_rate) }}</strong>
</div>
<div class="ga-competitor-signal">
<span>同款覆蓋</span>
<strong class="momo-mono">{{ "{:.1f}%".format(match_rate) }}</strong>
</div>
<div class="ga-competitor-signal">
<span>價格需刷新</span>
<strong class="momo-mono">{{ stale_count | number_format }}</strong>
</div>
<div class="ga-competitor-signal">
<span>待補 / 待確認</span>
<strong class="momo-mono">{{ action_count | number_format }}</strong>
</div>
<div class="ga-competitor-next">
<span class="ga-competitor-next__label">下一步</span>
{% if decision_rate < 30 %}
<strong>先補齊高業績商品的 MOMO 對應</strong>
<p>可決策覆蓋偏低,先提高同款覆蓋再判斷價格策略。</p>
{% elif stale_count > 0 %}
<strong>先刷新過期價格</strong>
<p>避免用舊價格誤判,刷新後再看 MOMO 低價壓力。</p>
{% elif action_count > 0 %}
<strong>先處理待補與候選確認</strong>
<p>把候選轉成可用比價,再進入售價、券與組合檢查。</p>
{% else %}
<strong>可進入價格策略檢查</strong>
<p>先防守 MOMO 低價壓力,再放大 PChome 價格優勢。</p>
{% endif %}
<a href="/" class="ga-competitor-next__link">
<i class="fas fa-arrow-right" aria-hidden="true"></i>前往今日作戰
</a>
</div>
</div>
</div>
</article>