Files
PolyWeather/monitoring-web/templates/monitor.html
T
2569718930@qq.com db9071101a @
添加市场监控 Rust 网页版:Axum+Askama+HTMX,直读 SQLite

- 11 城市卡片网格,暗色主题,响应式布局
- 60s HTMX 轮询局部刷新
- 当前温度、今日最高、趋势箭头(线性回归)
- 首尔/釜山跑道温度(预留)
- 零 Python 依赖,编译后 ~3MB 二进制

Constraint: 读 POLYWEATHER_DB_PATH 指向的 SQLite
@
2026-05-13 19:24:24 +08:00

80 lines
2.2 KiB
HTML

{% if full_page %}
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>市场监控 — PolyWeather</title>
<link rel="stylesheet" href="/static/style.css">
<meta http-equiv="refresh" content="120">
</head>
<body>
<div class="page">
<header class="header">
<h1>🔥 市场监控</h1>
<span class="updated">更新 {{ generated_at }}</span>
</header>
{% endif %}
<div id="card-grid" class="card-grid"
hx-get="/api/data" hx-trigger="every 60s" hx-swap="outerHTML" hx-indicator="#spinner">
{% for c in cities %}
<div class="card">
<div class="card-top">
<span class="city-name">{{ c.display_name }}</span>
<span class="airport">/ {{ c.airport }}</span>
<span class="local-time">{{ c.local_time }}</span>
{% if c.new_high %}
<span class="badge new-high">◆新高</span>
{% endif %}
</div>
<div class="card-temp">
{% match c.current_temp %}
{% when Some with (t) %}
<span class="temp-value">{{ "{:.1}"|format(t) }}</span><span class="temp-unit">°C</span>
{% when None %}
<span class="temp-value na">--</span>
{% endmatch %}
</div>
<div class="card-meta">
<div class="meta-row">
<span class="label">今日最高</span>
{% match c.today_max %}
{% when Some with (m) %}
<span class="value">{{ "{:.1}"|format(m) }}°C</span>
{% when None %}
<span class="value na">--</span>
{% endmatch %}
</div>
<div class="meta-row">
<span class="label">趋势</span>
<span class="value trend {{ c.trend.css_class() }}">{{ c.trend.symbol() }}</span>
</div>
</div>
{% if !c.runway_pairs.is_empty() %}
<div class="card-runway">
<div class="runway-divider"></div>
{% for (pair, temp) in c.runway_pairs %}
<div class="runway-row">
<span class="runway-label">{{ pair }}</span>
<span class="runway-temp">{{ "{:.1}"|format(temp) }}°C</span>
</div>
{% endfor %}
</div>
{% endif %}
</div>
{% endfor %}
</div>
<div id="spinner" class="htmx-indicator">刷新中…</div>
{% if full_page %}
<script src="https://unpkg.com/htmx.org@2.0.4"></script>
</div>
</body>
</html>
{% endif %}