const AIReport = (() => {
// 生成AI报表卡片的HTML
const generateAICard = () => {
return `
1. 数据概览:正在读取生产数据...
2. 数据概览:发现总产量数据,分析良品率...
3. 规律发现:分析平台分布规律...
4. 原因推断:分析质量问题和根本原因...
5. 结论形成:生成生产建议和预测...
`;
}
// 延迟后显示模拟结果
setTimeout(() => {
if (thinkingEl) thinkingEl.style.display = 'none';
if (resultEl) {
resultEl.style.display = 'block';
resultEl.innerHTML = `
${data.thinking ? `
🤔 AI思考过程
${data.thinking}
` : ''}
📊 生产总览
总产量
${data.summary?.totalProduction?.toLocaleString() || 'N/A'}
${data.summary?.trend === 'up' ? '↑' : '↓'} vs 上周
良品率
${data.summary?.goodRate || 'N/A'}
稳定
📈 平台分布
${data.platforms ? Object.entries(data.platforms).map(([platform, info]) => `
${platform === 'pdd' ? '拼多多' : '圆通'}
${info.count?.toLocaleString() || 'N/A'} (${info.percentage || 'N/A'}%)
`).join('') : '
暂无平台数据
'}
${data.summary?.insights ? `
💡 AI洞察
${data.summary.insights.map(insight => {
// 检查是否包含警告标记
const hasWarning = insight.includes('⚠️');
const style = hasWarning ?
'background:linear-gradient(135deg,#FEF3C7,#FDE68A);padding:8px;border-radius:6px;border-left:3px solid #F59E0B;margin-bottom:8px;font-weight:600;color:#92400E' :
'margin-bottom:4px';
return `- ${insight}
`;
}).join('')}
` : ''}
`;
const resultEl = document.getElementById('ai-report-result');
if (resultEl) {
resultEl.innerHTML = html;
}
};
// 导出报表
const exportReport = () => {
const resultEl = document.getElementById('ai-report-result');
if (!resultEl || resultEl.style.display === 'none') {
alert('请先生成报表');
return;
}
const textContent = resultEl.innerText || resultEl.textContent;
const blob = new Blob([`智能生产报表\n生成时间:${new Date().toLocaleString()}\n\n${textContent}`], { type: 'text/plain' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = `AI生产报表_${new Date().toISOString().split('T')[0]}.txt`;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
};
// 暴露方法
return {
generateAICard,
generateReport,
exportReport
};
})();
// 添加样式
const style = document.createElement('style');
style.textContent = `
@keyframes spin {
to { transform: rotate(360deg); }
}
`;
document.head.appendChild(style);