|
|
|
@ -143,14 +143,75 @@ function showListView() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function showDetailView(symbol) {
|
|
|
|
async function showDetailView(symbol) {
|
|
|
|
currentSymbol = symbol;
|
|
|
|
currentSymbol = symbol;
|
|
|
|
document.getElementById('list-view').classList.remove('active');
|
|
|
|
document.getElementById('list-view').classList.remove('active');
|
|
|
|
document.getElementById('detail-view').classList.add('active');
|
|
|
|
document.getElementById('detail-view').classList.add('active');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 1. 加载行情数据
|
|
|
|
loadFuturesDetail(symbol);
|
|
|
|
loadFuturesDetail(symbol);
|
|
|
|
loadKlineData(symbol, currentPeriod);
|
|
|
|
loadKlineData(symbol, currentPeriod);
|
|
|
|
loadHistoryList(symbol);
|
|
|
|
|
|
|
|
loadAIAnalysis();
|
|
|
|
// 2. 加载历史记录
|
|
|
|
|
|
|
|
await loadHistoryListForAnalysis(symbol);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async function loadHistoryListForAnalysis(symbol) {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
const response = await fetch(`${API_BASE}/ai-analysis/${symbol}/history?limit=20`);
|
|
|
|
|
|
|
|
const data = await response.json();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (data.success) {
|
|
|
|
|
|
|
|
renderHistoryList(data.data);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 3. 查找今天的最新分析记录
|
|
|
|
|
|
|
|
const today = new Date();
|
|
|
|
|
|
|
|
const todayStr = today.toISOString().split('T')[0];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let todayRecord = null;
|
|
|
|
|
|
|
|
if (data.data && data.data.length > 0) {
|
|
|
|
|
|
|
|
for (const record of data.data) {
|
|
|
|
|
|
|
|
const recordDate = new Date(record.analysis_time);
|
|
|
|
|
|
|
|
const recordDateStr = recordDate.toISOString().split('T')[0];
|
|
|
|
|
|
|
|
if (recordDateStr === todayStr) {
|
|
|
|
|
|
|
|
todayRecord = record;
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 4. 根据是否有今天的记录进行不同处理
|
|
|
|
|
|
|
|
if (todayRecord) {
|
|
|
|
|
|
|
|
console.log(`找到今天的分析记录: ${symbol} (${todayRecord.analysis_time})`);
|
|
|
|
|
|
|
|
currentAIAnalysis = {
|
|
|
|
|
|
|
|
id: todayRecord.id,
|
|
|
|
|
|
|
|
symbol: todayRecord.symbol,
|
|
|
|
|
|
|
|
analysis_time: todayRecord.analysis_time,
|
|
|
|
|
|
|
|
result: todayRecord.analysis_data
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
displayAIAnalysisResult(currentAIAnalysis);
|
|
|
|
|
|
|
|
syncAIToPanels(todayRecord.analysis_data);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
console.log(`没有找到今天的分析记录: ${symbol}`);
|
|
|
|
|
|
|
|
showAIAnalysisPlaceholder();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
showAIAnalysisPlaceholder();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} catch (error) {
|
|
|
|
|
|
|
|
console.error('加载历史记录失败:', error);
|
|
|
|
|
|
|
|
showAIAnalysisPlaceholder();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function showAIAnalysisPlaceholder() {
|
|
|
|
|
|
|
|
const content = document.getElementById('ai-analysis-content');
|
|
|
|
|
|
|
|
content.innerHTML = `
|
|
|
|
|
|
|
|
<div class="ai-analysis-placeholder">
|
|
|
|
|
|
|
|
<i class="fas fa-brain"></i>
|
|
|
|
|
|
|
|
<p>点击"智能分析"按钮获取AI分析结果</p>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
`;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
async function loadWatchedSymbols() {
|
|
|
|
async function loadWatchedSymbols() {
|
|
|
|
|