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:
@@ -245,8 +245,8 @@ body {
|
||||
}
|
||||
|
||||
.site-title-sub {
|
||||
font-size: .58rem;
|
||||
letter-spacing: .14em;
|
||||
font-size: .68rem;
|
||||
letter-spacing: .04em;
|
||||
}
|
||||
|
||||
.site-nav {
|
||||
|
||||
+4
-3
@@ -73,10 +73,11 @@
|
||||
filter:drop-shadow(0 0 24px var(--title-glow));
|
||||
}
|
||||
.site-title-sub{
|
||||
display:block;font-size:.72rem;font-weight:500;
|
||||
letter-spacing:.22em;text-transform:uppercase;
|
||||
color:var(--text-muted);margin-top:.35rem;
|
||||
display:block;font-size:.78rem;font-weight:400;
|
||||
letter-spacing:.06em;text-transform:none;
|
||||
color:var(--text-muted);margin-top:.4rem;
|
||||
-webkit-text-fill-color:var(--text-muted);
|
||||
filter:none;
|
||||
}
|
||||
|
||||
.site-nav a{
|
||||
|
||||
@@ -63,6 +63,8 @@
|
||||
}
|
||||
.rec-sort-dir-btn:hover{border-color:var(--accent);color:var(--accent)}
|
||||
.gap-badge{font-size:.72rem}
|
||||
.rec-market-link{color:inherit;text-decoration:none;display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .35rem}
|
||||
.rec-market-link:hover strong,.rec-market-link:hover .text-accent{color:var(--accent);text-decoration:underline}
|
||||
.rec-change-up{color:var(--profit)}
|
||||
.rec-change-down{color:var(--loss)}
|
||||
#recommend .trade-table-wrap{max-height:min(70vh,520px)}
|
||||
|
||||
+34
-3
@@ -40,7 +40,8 @@
|
||||
var recIndustryFilter = '';
|
||||
var REC_SORT_CACHE = 'qihuo_rec_sort_v2';
|
||||
var REC_INDUSTRY_CACHE = 'qihuo_rec_industry_v1';
|
||||
var REC_COLSPAN = 16;
|
||||
var REC_COLSPAN = 18;
|
||||
var marketNavEnabled = !!window.MARKET_NAV_ENABLED;
|
||||
var productCategories = window.PRODUCT_CATEGORIES || [];
|
||||
var POS_CACHE_KEY = 'qihuo_trading_live_v3';
|
||||
|
||||
@@ -1274,6 +1275,35 @@
|
||||
return '<span class="badge gap-badge ' + cls + '"' + title + '>' + label + '</span>';
|
||||
}
|
||||
|
||||
function fmtRecNum(v) {
|
||||
if (v == null || v === '') return '—';
|
||||
var n = Number(v);
|
||||
if (!isFinite(n)) return '—';
|
||||
return String(n);
|
||||
}
|
||||
|
||||
function recSpecSuffix(r) {
|
||||
return r.spec_source === 'ctp' ? ' <span class="text-muted">(柜台)</span>' : '';
|
||||
}
|
||||
|
||||
function recSymbolCellHtml(r) {
|
||||
var code = r.main_code || r.ths || '';
|
||||
var nameCls = r.trend_transition ? ' class="trend-name"' : '';
|
||||
var name = r.name || '';
|
||||
if (marketNavEnabled && r.main_code) {
|
||||
var href = '/market?symbol=' + encodeURIComponent(r.main_code);
|
||||
return (
|
||||
'<td><a href="' + href + '" class="rec-market-link" title="查看 K 线">' +
|
||||
'<strong' + nameCls + '>' + name + '</strong> ' +
|
||||
'<span class="text-accent">' + r.main_code + '</span></a></td>'
|
||||
);
|
||||
}
|
||||
return (
|
||||
'<td><strong' + nameCls + '>' + name + '</strong> ' +
|
||||
'<span class="text-accent">' + code + '</span></td>'
|
||||
);
|
||||
}
|
||||
|
||||
function renderRecommendRows(rows) {
|
||||
if (!recommendList) return;
|
||||
if (!rows.length) {
|
||||
@@ -1286,10 +1316,9 @@
|
||||
recommendList.innerHTML = rows.map(function (r) {
|
||||
var rowCls = 'rec-' + (r.status || '');
|
||||
if (r.trend_transition) rowCls += ' rec-trend-break';
|
||||
var nameCls = r.trend_transition ? ' class="trend-name"' : '';
|
||||
return (
|
||||
'<tr class="' + rowCls + '">' +
|
||||
'<td><strong' + nameCls + '>' + (r.name || '') + '</strong> <span class="text-accent">' + (r.main_code || r.ths || '') + '</span></td>' +
|
||||
recSymbolCellHtml(r) +
|
||||
'<td>' + (r.exchange || '') + '</td>' +
|
||||
'<td>' + (r.category || '—') + '</td>' +
|
||||
'<td>' + trendBadgeHtml(r) + '</td>' +
|
||||
@@ -1301,6 +1330,8 @@
|
||||
'<td>' + (r.yesterday_amplitude_pct != null ? r.yesterday_amplitude_pct + '%' : '—') + '</td>' +
|
||||
'<td>' + fmtRecVolume(r.volume) + '</td>' +
|
||||
'<td>' + fmtRecTurnover(r.turnover) + '</td>' +
|
||||
'<td>' + fmtRecNum(r.mult) + recSpecSuffix(r) + '</td>' +
|
||||
'<td>' + fmtRecNum(r.tick_size) + recSpecSuffix(r) + '</td>' +
|
||||
'<td>' + (r.margin_one_lot != null ? r.margin_one_lot + (r.margin_source === 'ctp' ? ' <span class="text-muted">(柜台)</span>' : '') : '—') + '</td>' +
|
||||
'<td>' + (r.open_fee_one_lot != null ? r.open_fee_one_lot : '—') + '</td>' +
|
||||
'<td>' + (r.max_lots != null && r.max_lots > 0 ? r.max_lots : '—') + '</td>' +
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"id": "/",
|
||||
"name": "国内期货交易监控复盘系统",
|
||||
"short_name": "期货监控",
|
||||
"description": "期货交易监控、持仓管理、复盘与统计分析",
|
||||
"name": "国内期货 · 交易复盘系统",
|
||||
"short_name": "交易复盘",
|
||||
"description": "专注于仓位管理和纪律执行",
|
||||
"start_url": "/login",
|
||||
"scope": "/",
|
||||
"display": "standalone",
|
||||
|
||||
Reference in New Issue
Block a user