Fix settings and env config stuck on loading via SSR form render

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-08 20:24:15 +08:00
parent 6975da8575
commit aa966114b1
10 changed files with 114 additions and 27 deletions
@@ -1,9 +1,25 @@
{# 系统设置 · 导航显示开关 #}
{# 系统设置 · 导航显示开关SSR 预渲染,保存仍走 API #}
<div class="card settings-card settings-card--standalone" id="display-prefs-card">
<h2>导航显示</h2>
<p class="settings-env-hint">以下开关控制顶栏导航与系统设置内区块是否显示,保存后立即生效。关键位监控、实盘下单、系统设置为固定项。</p>
<div id="display-prefs-form" class="display-prefs-form">
<div id="display-prefs-form" class="display-prefs-form" data-prefs-ssr="1">
{% if display_meta %}
{% for group in display_meta %}
<div class="display-prefs-group">
<h3 class="settings-subcard-title">{{ group.group }}</h3>
<div class="display-prefs-checks">
{% for item in group.keys %}
<label class="chk-label">
<input type="checkbox" data-pref-key="{{ item.key }}"{% if display.get(item.key, true) %} checked{% endif %}>
{{ item.label }}
</label>
{% endfor %}
</div>
</div>
{% endfor %}
{% else %}
<div class="display-prefs-loading muted">加载中…</div>
{% endif %}
</div>
<div class="settings-actions-row">
<button type="button" class="btn-primary btn-sm" id="display-prefs-save">保存导航设置</button>
+1 -1
View File
@@ -103,7 +103,7 @@ const ORDER_ENTRY_MODEL_CODE_TO_CATEGORY = {{ entry_model_code_to_category | toj
<script>
window.__INSTANCE_DISPLAY__ = {{ display | tojson }};
</script>
<script src="/static/instance_settings_prefs.js?v=2"></script>
<script src="/static/instance_settings_prefs.js?v=3"></script>
<script src="/static/instance_live.js?v=4"></script>
<script src="/static/instance_embed.js?v=18"></script>
</body>
+41 -2
View File
@@ -1,4 +1,4 @@
{# env配置:按功能分组,三列卡片布局 #}
{# env配置:按功能分组,三列卡片布局SSR 预渲染) #}
<div class="env-config-page">
<div class="env-config-head card">
<h2>env 配置</h2>
@@ -10,7 +10,46 @@
<span class="settings-status-line" id="env-config-status"></span>
</div>
</div>
<div id="env-config-grid" class="env-config-grid">
<div id="env-config-grid" class="env-config-grid"{% if env_config_groups %} data-env-ssr="1"{% endif %}>
{% if env_config_groups %}
{% for group in env_config_groups %}
<div class="card env-group-card">
<h3 class="env-group-title">{{ group.title or '其他' }}</h3>
<div class="env-group-fields">
{% for field in group.fields %}
<div class="env-field-card">
<label class="env-field-label">{{ field.key }}</label>
{% if field.note %}
<div class="env-field-note muted">{{ field.note }}</div>
{% endif %}
{% if field.type == 'bool' %}
<select class="env-field-input" data-env-key="{{ field.key }}">
{% set cur = (field.current or field.default or 'false')|lower %}
<option value="true"{% if cur in ('true', '1', 'yes', 'on') %} selected{% endif %}>true</option>
<option value="false"{% if cur not in ('true', '1', 'yes', 'on') %} selected{% endif %}>false</option>
</select>
{% else %}
<input
class="env-field-input"
type="{% if field.sensitive %}password{% else %}text{% endif %}"
data-env-key="{{ field.key }}"
{% if field.sensitive and field.has_value %}
placeholder="{{ field.masked or '留空不修改' }}"
{% else %}
value="{{ field.current or field.default or '' }}"
{% endif %}
>
{% endif %}
<span class="env-field-badge {% if field.restart_required %}env-badge-restart{% else %}env-badge-hot{% endif %}">
{% if field.restart_required %}需重启{% else %}保存即生效{% endif %}
</span>
</div>
{% endfor %}
</div>
</div>
{% endfor %}
{% else %}
<div class="env-config-loading muted">加载配置中…</div>
{% endif %}
</div>
</div>
+1 -1
View File
@@ -2038,6 +2038,6 @@ setInterval(refreshPriceSnapshotConditional, {{ price_refresh_seconds * 1000 }})
<script>
window.__INSTANCE_DISPLAY__ = {{ display | tojson }};
</script>
<script src="/static/instance_settings_prefs.js?v=2"></script>
<script src="/static/instance_settings_prefs.js?v=3"></script>
</body>
</html>