Split risk policy into its own navigation tab.
Move read-only risk control docs to /risk_policy before settings; keep transfers and exports on the settings page. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -38,11 +38,11 @@ def embed_render_plan(page: str, embed_mode: str | None) -> EmbedRenderPlan:
|
||||
)
|
||||
is_shell = embed_mode == "shell"
|
||||
is_strategy = page in EMBED_STRATEGY_PAGES
|
||||
is_settings = page == "settings"
|
||||
is_settings_like = page in ("settings", "risk_policy")
|
||||
return EmbedRenderPlan(
|
||||
exchange_capitals=is_shell,
|
||||
records_rows=page == "records",
|
||||
records_summary=is_shell and page != "records" and not is_settings,
|
||||
records_summary=is_shell and page != "records" and not is_settings_like,
|
||||
key_history=page == "key_monitor",
|
||||
key_list=page in ("key_monitor", "trade") or is_strategy,
|
||||
orders=page == "trade" or is_strategy,
|
||||
|
||||
@@ -18,6 +18,7 @@ EMBED_TABS: tuple[str, ...] = (
|
||||
"options",
|
||||
"records",
|
||||
"stats",
|
||||
"risk_policy",
|
||||
"settings",
|
||||
)
|
||||
|
||||
@@ -32,6 +33,7 @@ PATH_TO_EMBED_TAB: dict[str, str] = {
|
||||
"/options": "options",
|
||||
"/records": "records",
|
||||
"/stats": "stats",
|
||||
"/risk_policy": "risk_policy",
|
||||
"/settings": "settings",
|
||||
}
|
||||
|
||||
|
||||
@@ -184,6 +184,6 @@ def build_instance_settings_view(
|
||||
|
||||
|
||||
def settings_page_context(page: str, **kwargs: Any) -> dict[str, Any]:
|
||||
if (page or "").strip() != "settings":
|
||||
if (page or "").strip() not in ("settings", "risk_policy"):
|
||||
return {}
|
||||
return {"instance_settings": build_instance_settings_view(**kwargs)}
|
||||
|
||||
@@ -396,6 +396,9 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if page == 'risk_policy' %}
|
||||
{% include 'risk_policy_panel.html' %}
|
||||
{% endif %}
|
||||
{% if page == 'settings' %}
|
||||
{% include 'settings_panel.html' %}
|
||||
{% endif %}
|
||||
|
||||
@@ -39,12 +39,13 @@
|
||||
{% if options_nav_visible %}
|
||||
<a href="/options" data-embed-tab="options" class="{% if initial_tab == 'options' %}active{% endif %}">期权</a>
|
||||
{% endif %}
|
||||
<a href="/risk_policy" data-embed-tab="risk_policy" class="{% if initial_tab == 'risk_policy' %}active{% endif %}">风控说明</a>
|
||||
<a href="/settings" data-embed-tab="settings" class="{% if initial_tab == 'settings' %}active{% endif %}">系统设置</a>
|
||||
</nav>
|
||||
<div id="embed-flash" class="flash" style="display:none" role="status"></div>
|
||||
|
||||
{% include 'instance_header_panel.html' %}
|
||||
{% if initial_tab != 'settings' and include_transfer_block %}
|
||||
{% if initial_tab not in ('settings', 'risk_policy') and include_transfer_block %}
|
||||
{% include 'instance_top_bar.html' %}
|
||||
{% endif %}
|
||||
|
||||
@@ -89,6 +90,6 @@ const ORDER_ENTRY_MODEL_CODE_TO_CATEGORY = {{ entry_model_code_to_category | toj
|
||||
<script src="/static/key_monitor_form.js?v=2"></script>
|
||||
{% include 'embed_boot_scripts.html' %}
|
||||
<script src="/static/instance_live.js?v=3"></script>
|
||||
<script src="/static/instance_embed.js?v=15"></script>
|
||||
<script src="/static/instance_embed.js?v=16"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -64,12 +64,13 @@
|
||||
{% if options_nav_visible %}
|
||||
<a href="/options" class="{% if page == 'options' %}active{% endif %}">期权</a>
|
||||
{% endif %}
|
||||
<a href="/risk_policy" class="{% if page == 'risk_policy' %}active{% endif %}">风控说明</a>
|
||||
<a href="/settings" class="{% if page == 'settings' %}active{% endif %}">系统设置</a>
|
||||
</div>
|
||||
{% with msg=get_flashed_messages() %}{% if msg %}<div class="flash">{{ msg[0] }}</div>{% endif %}{% endwith %}
|
||||
|
||||
{% include 'instance_header_panel.html' %}
|
||||
{% if page != 'settings' and page != 'options' %}
|
||||
{% if page not in ('settings', 'risk_policy', 'options') %}
|
||||
{% include 'instance_top_bar.html' %}
|
||||
{% endif %}
|
||||
|
||||
@@ -467,6 +468,10 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% if page == 'risk_policy' %}
|
||||
{% include 'risk_policy_panel.html' %}
|
||||
{% endif %}
|
||||
|
||||
{% if page == 'settings' %}
|
||||
{% include 'settings_panel.html' %}
|
||||
{% endif %}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
{# 风控说明:只读展示 .env 风控参数与当前账户状态 #}
|
||||
<div class="risk-policy-page">
|
||||
<div class="card settings-card settings-card--risk">
|
||||
<h2>风控说明</h2>
|
||||
<p class="settings-live-status">
|
||||
当前账户状态:
|
||||
<span class="risk-status-badge risk-status-{{ risk_status.status|default('normal') }}">
|
||||
{{ instance_settings.risk_status_label }}
|
||||
</span>
|
||||
{% if instance_settings.risk_status_reason %}
|
||||
<span class="settings-status-reason">{{ instance_settings.risk_status_reason }}</span>
|
||||
{% endif %}
|
||||
</p>
|
||||
{% if instance_settings.trade_policy_note %}
|
||||
<p class="settings-policy-note">账户限制:{{ instance_settings.trade_policy_note }}</p>
|
||||
{% endif %}
|
||||
<p class="settings-env-hint">以下参数读取自本实例 <code>.env</code>,修改后需重启进程生效。</p>
|
||||
<div class="settings-risk-sections">
|
||||
{% for section in instance_settings.sections %}
|
||||
<div class="card settings-subcard">
|
||||
<h3 class="settings-subcard-title">{{ section.title }}</h3>
|
||||
<dl class="settings-kv settings-kv--compact">
|
||||
{% for row in section.rows %}
|
||||
<div class="settings-kv-row">
|
||||
<dt>{{ row.label }}</dt>
|
||||
<dd>
|
||||
<span class="settings-kv-value">{{ row.value }}</span>
|
||||
{% if row.note %}
|
||||
<span class="settings-kv-note">{{ row.note }}</span>
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</dl>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,77 +1,36 @@
|
||||
{# 系统设置:左风控说明 · 右资金划转 + 数据导出(顶栏资金与统计见 instance_header_panel) #}
|
||||
<div class="settings-page">
|
||||
<div class="settings-cards-grid">
|
||||
<div class="card settings-card settings-card--risk">
|
||||
<h2>风控说明</h2>
|
||||
<p class="settings-live-status">
|
||||
当前账户状态:
|
||||
<span class="risk-status-badge risk-status-{{ risk_status.status|default('normal') }}">
|
||||
{{ instance_settings.risk_status_label }}
|
||||
</span>
|
||||
{% if instance_settings.risk_status_reason %}
|
||||
<span class="settings-status-reason">{{ instance_settings.risk_status_reason }}</span>
|
||||
{% endif %}
|
||||
</p>
|
||||
{% if instance_settings.trade_policy_note %}
|
||||
<p class="settings-policy-note">账户限制:{{ instance_settings.trade_policy_note }}</p>
|
||||
{% endif %}
|
||||
<p class="settings-env-hint">以下参数读取自本实例 <code>.env</code>,修改后需重启进程生效。</p>
|
||||
<div class="settings-risk-sections">
|
||||
{% for section in instance_settings.sections %}
|
||||
<div class="card settings-subcard">
|
||||
<h3 class="settings-subcard-title">{{ section.title }}</h3>
|
||||
<dl class="settings-kv settings-kv--compact">
|
||||
{% for row in section.rows %}
|
||||
<div class="settings-kv-row">
|
||||
<dt>{{ row.label }}</dt>
|
||||
<dd>
|
||||
<span class="settings-kv-value">{{ row.value }}</span>
|
||||
{% if row.note %}
|
||||
<span class="settings-kv-note">{{ row.note }}</span>
|
||||
{% endif %}
|
||||
</dd>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</dl>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{# 系统设置:资金划转 + 数据导出(顶栏资金与统计见 instance_header_panel) #}
|
||||
<div class="settings-page settings-page--ops">
|
||||
<div class="card settings-card settings-card--side-panel">
|
||||
<div class="settings-side-subcards">
|
||||
{% if instance_settings.options_settings_enabled %}
|
||||
<div class="card settings-subcard settings-subcard--ops">
|
||||
<h3 class="settings-subcard-title">币种兑换</h3>
|
||||
{% include 'options_settings_swap.html' %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="card settings-subcard settings-subcard--ops">
|
||||
<h3 class="settings-subcard-title">期权资金划转</h3>
|
||||
{% include 'options_settings_transfer.html' %}
|
||||
</div>
|
||||
{% include 'options_settings_panel.html' %}
|
||||
{% endif %}
|
||||
{% if instance_settings.show_transfer %}
|
||||
<div class="card settings-subcard settings-subcard--ops">
|
||||
<h3 class="settings-subcard-title">永续资金划转</h3>
|
||||
<p class="settings-subcard-desc">子账户永续:资金账户与交易账户之间划转 USDT。</p>
|
||||
{% include 'instance_transfer_panel.html' %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="settings-side-col">
|
||||
<div class="card settings-card settings-card--side-panel">
|
||||
<div class="settings-side-subcards">
|
||||
{% if instance_settings.options_settings_enabled %}
|
||||
<div class="card settings-subcard settings-subcard--ops">
|
||||
<h3 class="settings-subcard-title">币种兑换</h3>
|
||||
{% include 'options_settings_swap.html' %}
|
||||
</div>
|
||||
<div class="card settings-subcard settings-subcard--ops">
|
||||
<h3 class="settings-subcard-title">期权资金划转</h3>
|
||||
{% include 'options_settings_transfer.html' %}
|
||||
</div>
|
||||
{% include 'options_settings_panel.html' %}
|
||||
{% endif %}
|
||||
{% if instance_settings.show_transfer %}
|
||||
<div class="card settings-subcard settings-subcard--ops">
|
||||
<h3 class="settings-subcard-title">永续资金划转</h3>
|
||||
<p class="settings-subcard-desc">子账户永续:资金账户与交易账户之间划转 USDT。</p>
|
||||
{% include 'instance_transfer_panel.html' %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="settings-side-export">
|
||||
<div class="settings-side-export-head">
|
||||
<span class="settings-side-export-label">数据导出</span>
|
||||
<span class="settings-side-export-meta muted">CSV · v{{ instance_settings.data_export_version }}</span>
|
||||
</div>
|
||||
<div class="settings-export-links-inline">
|
||||
<a href="/export/trade_records">交易记录</a>
|
||||
<a href="/export/journal_entries">复盘记录</a>
|
||||
<a href="/export/key_monitors">关键位(当前)</a>
|
||||
<a href="/export/key_monitor_history">关键位历史</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="settings-side-export">
|
||||
<div class="settings-side-export-head">
|
||||
<span class="settings-side-export-label">数据导出</span>
|
||||
<span class="settings-side-export-meta muted">CSV · v{{ instance_settings.data_export_version }}</span>
|
||||
</div>
|
||||
<div class="settings-export-links-inline">
|
||||
<a href="/export/trade_records">交易记录</a>
|
||||
<a href="/export/journal_entries">复盘记录</a>
|
||||
<a href="/export/key_monitors">关键位(当前)</a>
|
||||
<a href="/export/key_monitor_history">关键位历史</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user