Files
ewoooc/templates/market_intel/disabled.html
OoO 400133fec1
All checks were successful
CD Pipeline / deploy (push) Successful in 1m42s
V10.599 收斂前端文案與 ICAIM 載入
2026-06-05 16:01:37 +08:00

229 lines
6.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{% extends "ewoooc_base.html" %}
{% block title %}市場情報EwoooC{% endblock %}
{% block extra_css %}
<style>
.market-intel-page {
display: grid;
gap: 1rem;
min-width: 0;
}
.market-intel-hero,
.market-intel-panel {
background:
radial-gradient(circle at 1px 1px, rgba(120, 83, 44, 0.14) 1px, transparent 1.35px),
var(--momo-bg-paper, #faf7f0);
background-size: 10px 10px, auto;
border: 1px solid var(--momo-border, #d8c8aa);
border-radius: 8px;
box-shadow: var(--momo-shadow-sm, 0 8px 18px rgba(72, 49, 28, 0.08));
min-width: 0;
}
.market-intel-hero {
display: grid;
gap: 1rem;
grid-template-columns: minmax(0, 1fr) auto;
padding: clamp(1rem, 2vw, 1.35rem);
}
.market-intel-kicker,
.market-intel-label {
color: var(--momo-accent, #a76a2d);
font-family: var(--momo-font-mono, "JetBrains Mono", monospace);
font-size: 0.78rem;
font-weight: 800;
letter-spacing: 0;
margin: 0;
text-transform: uppercase;
}
.market-intel-title {
color: var(--momo-text-title, #2a2520);
font-family: var(--momo-font-display, "Noto Sans TC", sans-serif);
font-size: clamp(1.45rem, 3vw, 2rem);
font-weight: 900;
letter-spacing: 0;
line-height: 1.15;
margin: 0.35rem 0 0;
}
.market-intel-copy {
color: var(--momo-text-muted, #756a5b);
line-height: 1.65;
margin: 0.6rem 0 0;
max-width: 58rem;
}
.market-intel-status-grid {
display: grid;
gap: 0.75rem;
grid-template-columns: repeat(auto-fit, minmax(min(150px, 100%), 1fr));
min-width: 0;
}
.market-intel-status-card {
background: rgba(255, 250, 241, 0.82);
border: 1px solid rgba(120, 83, 44, 0.16);
border-left: 3px solid var(--momo-accent, #a76a2d);
border-radius: 8px;
min-width: 0;
padding: 0.8rem 0.9rem;
}
.market-intel-status-card strong {
color: var(--momo-text-title, #2a2520);
display: block;
font-family: var(--momo-font-mono, "JetBrains Mono", monospace);
font-size: 1rem;
margin-top: 0.25rem;
}
.market-intel-panel {
padding: clamp(1rem, 2vw, 1.2rem);
}
.market-intel-flow {
display: grid;
gap: 0.75rem;
grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr));
margin-top: 0.9rem;
min-width: 0;
}
.market-intel-flow-item {
background: rgba(255, 250, 241, 0.78);
border: 1px solid rgba(120, 83, 44, 0.14);
border-radius: 8px;
min-width: 0;
padding: 0.85rem;
}
.market-intel-flow-item h3 {
color: var(--momo-text-title, #2a2520);
font-size: 1rem;
font-weight: 900;
margin: 0;
}
.market-intel-flow-item p {
color: var(--momo-text-muted, #756a5b);
line-height: 1.55;
margin: 0.45rem 0 0;
}
.market-intel-actions {
display: flex;
flex-wrap: wrap;
gap: 0.65rem;
margin-top: 0.9rem;
}
.market-intel-action {
align-items: center;
background: var(--momo-bg-paper, #faf7f0);
border: 1px solid rgba(120, 83, 44, 0.22);
border-radius: 8px;
color: var(--momo-text-title, #2a2520);
display: inline-flex;
font-weight: 800;
gap: 0.45rem;
min-height: 2.35rem;
padding: 0.45rem 0.7rem;
text-decoration: none;
}
.market-intel-action:hover {
background: rgba(201, 117, 45, 0.12);
color: var(--momo-accent-dark, #8f4530);
}
@media (max-width: 640px) {
.market-intel-hero {
grid-template-columns: 1fr;
}
}
</style>
{% endblock %}
{% block ewooo_content %}
<section class="market-intel-page">
<header class="market-intel-hero">
<div>
<p class="market-intel-kicker">MARKET INTEL</p>
<h1 class="market-intel-title">市場情報入口</h1>
<p class="market-intel-copy">
競品情報資料尚未接入正式決策流程。請先從下方入口完成比價覆核、PChome 爬蟲檢查與 AI 觀測,讓商品決策維持在已驗證的資料來源上。
</p>
</div>
</header>
<section class="market-intel-panel" aria-labelledby="market-intel-status-title">
<p class="market-intel-label">DATA STATUS</p>
<h2 id="market-intel-status-title" class="market-intel-title">資料狀態</h2>
<div class="market-intel-status-grid">
<div class="market-intel-status-card">
<span class="market-intel-label">情報入口</span>
<strong>{{ '已啟用' if status.enabled else '未啟用' }}</strong>
</div>
<div class="market-intel-status-card">
<span class="market-intel-label">爬蟲</span>
<strong>{{ '已啟用' if status.crawler_enabled else '未啟用' }}</strong>
</div>
<div class="market-intel-status-card">
<span class="market-intel-label">寫入</span>
<strong>{{ '已啟用' if status.write_enabled else '未啟用' }}</strong>
</div>
<div class="market-intel-status-card">
<span class="market-intel-label">排程</span>
<strong>{{ '已啟用' if status.scheduler_attached else '未啟用' }}</strong>
</div>
<div class="market-intel-status-card">
<span class="market-intel-label">Adapter</span>
<strong>{{ adapter_count|default(0) }}</strong>
</div>
<div class="market-intel-status-card">
<span class="market-intel-label">手動 Fetch</span>
<strong>{{ '已啟用' if manual_fetch_allowed|default(false) else '未啟用' }}</strong>
</div>
</div>
</section>
<section class="market-intel-panel" aria-labelledby="market-intel-flow-title">
<p class="market-intel-label">OPERATIONS</p>
<h2 id="market-intel-flow-title" class="market-intel-title">建議操作入口</h2>
<div class="market-intel-flow">
<article class="market-intel-flow-item">
<h3>PChome 比價覆核</h3>
<p>處理候選同款、單位價、既有保護與低信心候選,這是目前正式決策主入口。</p>
</article>
<article class="market-intel-flow-item">
<h3>PChome 爬蟲</h3>
<p>檢查搜尋、候選取得與資料新鮮度,避免市場情報模組重複做同一件事。</p>
</article>
<article class="market-intel-flow-item">
<h3>AI 觀測台</h3>
<p>監看 AI 呼叫、主機健康、RAG 命中與 PPT 產線,作為跨模組營運狀態來源。</p>
</article>
</div>
<div class="market-intel-actions">
<a class="market-intel-action" href="/?filter=pchome_review&review_status=all&sort_by=pchome_review&order=desc">
<i class="fas fa-scale-balanced" aria-hidden="true"></i>
<span>比價覆核</span>
</a>
<a class="market-intel-action" href="/pchome_crawler">
<i class="fas fa-magnifying-glass-chart" aria-hidden="true"></i>
<span>PChome 爬蟲</span>
</a>
<a class="market-intel-action" href="/observability/overview">
<i class="fas fa-satellite-dish" aria-hidden="true"></i>
<span>AI 觀測台</span>
</a>
</div>
</section>
</section>
{% endblock %}