Rebrand product and enhance tradable symbols table with spec columns and K-line links.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-26 03:18:42 +08:00
parent ab9987e4c7
commit 4eb5709d71
30 changed files with 178 additions and 57 deletions
+3 -3
View File
@@ -1,4 +1,4 @@
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
<!DOCTYPE html>
<html lang="zh-CN" data-theme="dark">
<head>
@@ -13,7 +13,7 @@
<link rel="manifest" href="{{ url_for('web_manifest') }}">
<link rel="icon" href="{{ url_for('static', filename='icons/icon.svg') }}" type="image/svg+xml">
<link rel="apple-touch-icon" href="{{ url_for('static', filename='icons/icon-192.png') }}">
<title>{% block title %}国内期货监控系统{% endblock %}</title>
<title>{% block title %}国内期货 · 交易复盘系统{% endblock %}</title>
<script>
try {
var _t = localStorage.getItem('qihuo-theme');
@@ -516,7 +516,7 @@
<div class="user-bar">{{ session.username or '用户' }}<a href="{{ url_for('logout') }}">退出</a></div>
</div>
<p class="pwa-ios-hint" id="pwa-ios-hint">iOS 安装:Safari 浏览器点击底部分享按钮,选择「添加到主屏幕」。</p>
<h1 class="site-title">国内期货 · 交易监控 + 复盘<span class="site-title-sub">FUTURES MONITOR SYSTEM</span></h1>
<h1 class="site-title">国内期货 · 交易复盘系统<span class="site-title-sub">专注于仓位管理和纪律执行</span></h1>
<button type="button" class="nav-backdrop" id="nav-backdrop" aria-label="关闭菜单" hidden></button>
<nav class="site-nav" id="site-nav">
<a href="{{ url_for('positions') }}" class="{% if request.endpoint in ('positions', 'trade_page', 'recommend_page') %}active{% endif %}">下单监控</a>
+2 -2
View File
@@ -1,6 +1,6 @@
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{% extends "base.html" %}
{% block title %}品种简介 - 国内期货监控系统{% endblock %}
{% block title %}品种简介 - 国内期货 · 交易复盘系统{% endblock %}
{% block content %}
<div class="card profile-page">
<h2>品种简介</h2>
+2 -2
View File
@@ -1,6 +1,6 @@
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{% extends "base.html" %}
{% block title %}手续费配置 - 国内期货监控系统{% endblock %}
{% block title %}手续费配置 - 国内期货 · 交易复盘系统{% endblock %}
{% block extra_css %}
<style>
.fees-status-card .card-body{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center}
+2 -2
View File
@@ -1,6 +1,6 @@
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{% extends "base.html" %}
{% block title %}关键位监控 - 国内期货监控系统{% endblock %}
{% block title %}关键位监控 - 国内期货 · 交易复盘系统{% endblock %}
{% block content %}
<div class="split-grid">
<div class="card">
+4 -4
View File
@@ -1,4 +1,4 @@
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
<!DOCTYPE html>
<html lang="zh-CN" data-theme="dark">
<head>
@@ -127,7 +127,7 @@
filter:drop-shadow(0 0 20px var(--focus-glow));
}
.login-sub{
text-align:center;font-size:.68rem;letter-spacing:.2em;
text-align:center;font-size:.78rem;letter-spacing:.04em;
color:var(--text-muted);margin-bottom:2rem;
}
.form-group{margin-bottom:1.25rem}
@@ -183,8 +183,8 @@
</div>
</div>
<div class="login-box">
<h2>期货监控系统</h2>
<p class="login-sub">FUTURES MONITOR</p>
<h2>国内期货 · 交易复盘系统</h2>
<p class="login-sub">专注于仓位管理和纪律执行</p>
{% with messages = get_flashed_messages() %}
{% if messages %}<div class="flash">{{ messages[0] }}</div>{% endif %}
{% endwith %}
+2 -2
View File
@@ -1,6 +1,6 @@
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{% extends "base.html" %}
{% block title %}行情K线 - 国内期货监控系统{% endblock %}
{% block title %}行情K线 - 国内期货 · 交易复盘系统{% endblock %}
{% block content %}
<div class="card market-card">
+2 -2
View File
@@ -1,6 +1,6 @@
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{% extends "base.html" %}
{% block title %}开单计划 - 国内期货监控系统{% endblock %}
{% block title %}开单计划 - 国内期货 · 交易复盘系统{% endblock %}
{% block content %}
<div class="split-grid">
<div class="card">
+2 -2
View File
@@ -1,6 +1,6 @@
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{% extends "base.html" %}
{% block title %}持仓监控 - 国内期货监控系统{% endblock %}
{% block title %}持仓监控 - 国内期货 · 交易复盘系统{% endblock %}
{% block content %}
<div class="split-grid">
<div class="card">
+2 -2
View File
@@ -1,6 +1,6 @@
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{% extends "base.html" %}
{% block title %}可开仓品种 - 国内期货监控系统{% endblock %}
{% block title %}可开仓品种 - 国内期货 · 交易复盘系统{% endblock %}
{% block content %}
<div class="card">
<h2>可开仓品种 · 按资金筛选</h2>
+2 -2
View File
@@ -1,6 +1,6 @@
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{% extends "base.html" %}
{% block title %}交易记录与复盘 - 国内期货监控系统{% endblock %}
{% block title %}交易记录与复盘 - 国内期货 · 交易复盘系统{% endblock %}
{% block content %}
<div class="card records-equity-card" style="margin-bottom:1.25rem">
<h2>资金曲线</h2>
+2 -2
View File
@@ -1,6 +1,6 @@
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{% extends "base.html" %}
{% block title %}系统设置 - 国内期货监控系统{% endblock %}
{% block title %}系统设置 - 国内期货 · 交易复盘系统{% endblock %}
{% block extra_css %}
<style>
.settings-page{display:flex;flex-direction:column;gap:1.25rem}
+2 -2
View File
@@ -1,6 +1,6 @@
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{% extends "base.html" %}
{% block title %}统计分析 - 国内期货监控系统{% endblock %}
{% block title %}统计分析 - 国内期货 · 交易复盘系统{% endblock %}
{% block content %}
<div class="card stats-summary-card">
+2 -2
View File
@@ -1,6 +1,6 @@
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{% extends "base.html" %}
{% block title %}策略交易 - 国内期货监控系统{% endblock %}
{% block title %}策略交易 - 国内期货 · 交易复盘系统{% endblock %}
{% block extra_css %}
<style>
.strategy-page .split-grid .card{min-height:420px;display:flex;flex-direction:column}
+2 -2
View File
@@ -1,6 +1,6 @@
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{% extends "base.html" %}
{% block title %}策略记录 - 国内期货监控系统{% endblock %}
{% block title %}策略记录 - 国内期货 · 交易复盘系统{% endblock %}
{% block content %}
<div class="split-grid">
<div class="card card-scroll">
+19 -5
View File
@@ -1,6 +1,6 @@
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{# Copyright (c) 2025-2026 马建军. All rights reserved. 专有软件,详见 LICENSE.zh-CN.txt #}
{% extends "base.html" %}
{% block title %}下单监控 - 国内期货监控系统{% endblock %}
{% block title %}下单监控 - 国内期货 · 交易复盘系统{% endblock %}
{% block extra_css %}
<link rel="stylesheet" href="{{ url_for('static', filename='css/trade.css') }}">
{% endblock %}
@@ -147,7 +147,8 @@
<tr>
<th>品种</th><th>交易所</th><th>行业</th><th>走势</th><th>是否跳空</th>
<th>参考价</th><th>昨日收盘</th><th>今日开盘</th>
<th>昨日涨跌</th><th>昨日振幅</th><th>成交量(手)</th><th>成交额</th>
<th>昨日涨跌</th><th>昨日振幅</th> <th>成交量(手)</th><th>成交额</th>
<th>乘数</th><th>最小变动</th>
<th>1手保证金</th><th>1手手续费</th><th>最大手数</th><th>状态</th>
</tr>
</thead>
@@ -155,7 +156,17 @@
{% if recommend_rows %}
{% for r in recommend_rows %}
<tr class="rec-{{ r.status }}{% if r.trend_transition %} rec-trend-break{% endif %}">
<td><strong class="{% if r.trend_transition %}trend-name{% endif %}">{{ r.name }}</strong> <span class="text-accent">{{ r.main_code or r.ths }}</span></td>
<td>
{% if r.main_code and nav_items.market %}
<a href="{{ url_for('market_page', symbol=r.main_code) }}" class="rec-market-link" title="查看 K 线">
<strong class="{% if r.trend_transition %}trend-name{% endif %}">{{ r.name }}</strong>
<span class="text-accent">{{ r.main_code }}</span>
</a>
{% else %}
<strong class="{% if r.trend_transition %}trend-name{% endif %}">{{ r.name }}</strong>
<span class="text-accent">{{ r.main_code or r.ths }}</span>
{% endif %}
</td>
<td>{{ r.exchange }}</td>
<td>{{ r.category or '—' }}</td>
<td>
@@ -183,6 +194,8 @@
<td>{% if r.yesterday_amplitude_pct is not none %}{{ '%.2f'|format(r.yesterday_amplitude_pct) }}%{% else %}—{% endif %}</td>
<td>{% if r.volume is not none %}{{ r.volume }}{% else %}—{% endif %}</td>
<td>{% if r.turnover is not none %}{{ '%.0f'|format(r.turnover) }}{% else %}—{% endif %}</td>
<td>{% if r.mult is not none %}{{ '%g'|format(r.mult) }}{% if r.spec_source == 'ctp' %} <span class="text-muted">(柜台)</span>{% endif %}{% else %}—{% endif %}</td>
<td>{% if r.tick_size is not none %}{{ '%g'|format(r.tick_size) }}{% if r.spec_source == 'ctp' %} <span class="text-muted">(柜台)</span>{% endif %}{% else %}—{% endif %}</td>
<td>{% if r.margin_one_lot %}{{ r.margin_one_lot }}{% if r.margin_source == 'ctp' %} <span class="text-muted">(柜台)</span>{% endif %}{% else %}—{% endif %}</td>
<td>{% if r.open_fee_one_lot is defined and r.open_fee_one_lot is not none %}{{ r.open_fee_one_lot }}{% else %}—{% endif %}</td>
<td>{% if r.max_lots is not none and r.max_lots > 0 %}{{ r.max_lots }}{% else %}—{% endif %}</td>
@@ -190,7 +203,7 @@
</tr>
{% endfor %}
{% else %}
<tr><td colspan="16" class="empty-hint">等待今日后台刷新推荐…</td></tr>
<tr><td colspan="18" class="empty-hint">等待今日后台刷新推荐…</td></tr>
{% endif %}
</tbody>
</table>
@@ -202,6 +215,7 @@
{% block extra_js %}
<script>
window.TRADE_SIZING_MODE = {{ sizing_mode|tojson }};
window.MARKET_NAV_ENABLED = {{ nav_items.market|tojson }};
window.TRADE_FIXED_LOTS = {{ fixed_lots|tojson }};
window.TRADE_FIXED_AMOUNT = {{ fixed_amount|tojson }};
window.PRODUCT_CATEGORIES = {{ product_categories | default([]) | tojson }};