fix: 恢复全部刷新和全部分析功能

alphaFuthures
Lxy 1 week ago
parent d629ada5b6
commit 4582bc5d0e

@ -61,6 +61,10 @@
.toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; flex-wrap: wrap; gap: 16px; }
.toolbar-left { display: flex; align-items: center; gap: 16px; flex: 1; }
.toolbar-actions { display: flex; gap: 10px; }
.search-box {
background: #FFFFFF;
border: none;
@ -340,7 +344,19 @@
<div id="list-view" class="view active">
<!-- Toolbar -->
<div class="toolbar">
<input type="text" class="search-box" id="search-input" placeholder="🔍 搜索品种名称或代码...">
<div class="toolbar-left">
<input type="text" class="search-box" id="search-input" placeholder="🔍 搜索品种名称或代码...">
<div class="toolbar-actions">
<button class="refresh-all-btn" id="refresh-all-btn">
<i class="fas fa-sync-alt"></i>
<span>刷新全部</span>
</button>
<button class="ai-analyze-all-btn" id="ai-analyze-all-btn">
<i class="fas fa-brain"></i>
<span>全部分析</span>
</button>
</div>
</div>
<div class="pills">
<button class="pill active" data-category="all">全部 <span id="count-all">32</span></button>
<button class="pill" data-category="watched">自选 <span id="count-watched">0</span></button>

@ -249,6 +249,7 @@ async function toggleWatch(symbol, name, event) {
const data = await response.json();
if (data.success) {
watchedSymbols = watchedSymbols.filter(s => s !== symbol);
showToast('success', '已取消自选', `${symbol} 已从自选列表移除`);
}
} else {
const response = await fetch(`${API_BASE}/watched`, {
@ -259,24 +260,28 @@ async function toggleWatch(symbol, name, event) {
const data = await response.json();
if (data.success) {
watchedSymbols.push(symbol);
showToast('success', '已添加自选', `${name}(${symbol}) 已添加到自选列表`);
}
}
document.getElementById('count-watched').textContent = watchedSymbols.length;
const activeTab = document.querySelector('.filter-tab.active');
if (activeTab && activeTab.dataset.category === 'watched') {
// 重新渲染当前视图
const activePill = document.querySelector('.pill.active');
const category = activePill ? activePill.dataset.category : 'all';
if (category === 'watched') {
filterByCategory('watched');
} else {
renderFuturesGrid(getCurrentFilteredData());
}
} catch (error) {
console.error('切换自选失败:', error);
showToast('error', '操作失败', '网络错误,请稍后重试');
}
}
function getCurrentFilteredData() {
const activeTab = document.querySelector('.filter-tab.active');
const category = activeTab ? activeTab.dataset.category : 'all';
const activePill = document.querySelector('.pill.active');
const category = activePill ? activePill.dataset.category : 'all';
return filterDataByCategory(allFuturesData, category);
}
@ -500,6 +505,10 @@ function renderFuturesGrid(data) {
const resistance = item.resistance ? formatNumber(item.resistance) : '--';
const support = item.support ? formatNumber(item.support) : '--';
const isWatched = watchedSymbols.includes(item.symbol);
const watchIcon = isWatched ? 'fa-star' : 'fa-star-o';
const watchClass = isWatched ? 'active' : '';
return `
<div class="card" onclick="showDetailView('${item.symbol}')">
<div class="card-header">
@ -611,8 +620,8 @@ function filterByTrend(trend) {
function filterFuturesList(keyword) {
keyword = keyword.toLowerCase();
const activeTab = document.querySelector('.filter-tab.active');
const category = activeTab ? activeTab.dataset.category : 'all';
const activePill = document.querySelector('.pill.active');
const category = activePill ? activePill.dataset.category : 'all';
let filtered = filterDataByCategory(allFuturesData, category);

Loading…
Cancel
Save