市场页改版:三栏展示(行业+趋势信号+小果扫描),取代旧洞察/潜力股
This commit is contained in:
+40
-24
@@ -362,38 +362,54 @@ let marketRefreshInterval = null;
|
|||||||
function refreshMarketData() {
|
function refreshMarketData() {
|
||||||
const el = document.getElementById('tab-market');
|
const el = document.getElementById('tab-market');
|
||||||
if (!el || el.classList.contains('hidden')) return;
|
if (!el || el.classList.contains('hidden')) return;
|
||||||
fetchJSON('/api/market').then(d => {
|
Promise.all([
|
||||||
const sectors = d.sectors || [];
|
fetchJSON('/api/market'),
|
||||||
const insights = d.insights || [];
|
fetchJSON('/api/signals'),
|
||||||
const potentials = d.potential_stocks || [];
|
]).then(([mkt, signals]) => {
|
||||||
|
const sectors = mkt.sectors || [];
|
||||||
|
const sigs = signals || [];
|
||||||
|
const xiaoguo = sigs.filter(s => s.source === 'xiaoguo');
|
||||||
|
const trend = sigs.filter(s => s.source !== 'xiaoguo');
|
||||||
el.innerHTML = `
|
el.innerHTML = `
|
||||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-4">
|
<div class="grid grid-cols-1 lg:grid-cols-3 gap-4 mb-4">
|
||||||
<div class="card p-4">
|
<div class="card p-4">
|
||||||
<h3 class="text-sm font-semibold mb-3">🏭 行业热点</h3>
|
<h3 class="text-sm font-semibold mb-2">🏭 行业热点</h3>
|
||||||
${sectors.length ? sectors.map(s => `
|
${sectors.length ? sectors.slice(0,8).map(s => `
|
||||||
<div class="flex justify-between items-center p-2 bg-slate-800/30 rounded-lg mb-1">
|
<div class="flex justify-between items-center p-1.5 ${s.change>=0?'':'bg-slate-800/20'} rounded mb-0.5">
|
||||||
<span class="text-sm">${s.name}</span>
|
<span class="text-xs">${s.name}</span>
|
||||||
<span class="text-xs font-mono ${(s.change||0)>=0?'badge-up':'badge-down'}">
|
<span class="text-xs font-mono ${(s.change||0)>=0?'badge-up':'badge-down'}">${(s.change||0)>=0?'+':''}${(s.change||0).toFixed(1)}%</span>
|
||||||
${(s.change||0)>=0?'+':''}${(s.change||0).toFixed(2)}%
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
`).join('') : '<div class="text-xs text-slate-500">暂无行业数据</div>'}
|
`).join('') : '<div class="text-xs text-slate-500">暂无</div>'}
|
||||||
</div>
|
</div>
|
||||||
<div class="card p-4">
|
<div class="card p-4">
|
||||||
<h3 class="text-sm font-semibold mb-3">💡 知微洞察</h3>
|
<h3 class="text-sm font-semibold mb-2">📡 趋势信号 (${trend.length})</h3>
|
||||||
${insights.length ? insights.map(i =>
|
${trend.length ? trend.slice(0,6).map(s => `
|
||||||
`<div class="p-2 bg-slate-800/30 rounded-lg mb-1 text-xs">${i}</div>`
|
<div class="p-1.5 bg-slate-800/30 rounded mb-0.5 text-xs">
|
||||||
).join('') : '<div class="text-xs text-slate-500">暂无洞察</div>'}
|
<span class="font-semibold ${s.overall_sentiment==='利好'?'text-green-400':s.overall_sentiment==='利空'?'text-red-400':'text-slate-400'}">${s.overall_sentiment||'中性'}</span>
|
||||||
|
${s.sector} ${(s.summary||'').slice(0,60)}
|
||||||
|
</div>
|
||||||
|
`).join('') : '<div class="text-xs text-slate-500">暂无</div>'}
|
||||||
|
</div>
|
||||||
|
<div class="card p-4">
|
||||||
|
<h3 class="text-sm font-semibold mb-2">🔍 小果扫描 (${xiaoguo.length})</h3>
|
||||||
|
${xiaoguo.length ? xiaoguo.slice(0,6).map(s => `
|
||||||
|
<div class="p-1.5 bg-slate-800/30 rounded mb-0.5 text-xs">
|
||||||
|
<span class="font-semibold ${s.overall_sentiment==='利好'?'text-green-400':s.overall_sentiment==='利空'?'text-red-400':'text-slate-400'}">${s.overall_sentiment||'中性'}</span>
|
||||||
|
${s.sector} ${(s.summary||'').slice(0,60)}
|
||||||
|
</div>
|
||||||
|
`).join('') : '<div class="text-xs text-slate-500">暂无</div>'}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card p-4 mt-4">
|
<div class="card p-4">
|
||||||
<h3 class="text-sm font-semibold mb-3">🔍 潜力股挖掘</h3>
|
<h3 class="text-sm font-semibold mb-2">📋 全部板块排行(${sectors.length})</h3>
|
||||||
${potentials.length ? potentials.map(p => `
|
<div class="grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-1 max-h-48 overflow-y-auto">
|
||||||
<div class="flex justify-between items-center p-2 bg-slate-800/30 rounded-lg mb-1">
|
${sectors.map(s => `
|
||||||
<span class="text-sm">${p.name||p.code}</span>
|
<div class="flex justify-between p-1 bg-slate-800/20 rounded text-xs">
|
||||||
<span class="text-xs text-slate-400">${p.reason||''}</span>
|
<span>${s.name}</span>
|
||||||
|
<span class="font-mono ${(s.change||0)>=0?'badge-up':'badge-down'}">${(s.change||0)>=0?'+':''}${(s.change||0).toFixed(1)}%</span>
|
||||||
|
</div>
|
||||||
|
`).join('')}
|
||||||
</div>
|
</div>
|
||||||
`).join('') : '<div class="text-xs text-slate-500">暂无挖掘</div>'}
|
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user