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
+34 -3
View File
@@ -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>' +