fix: 修复数据分析页面JavaScript错误

- 添加缺失的updateAnalyticsReport函数
- 完善分析报告显示功能
- 修复图表更新失败的问题
This commit is contained in:
zhaojie
2025-09-10 23:19:35 +08:00
parent 0c03ff20aa
commit c7043c13b0

View File

@@ -2009,6 +2009,165 @@ class TSPDashboard {
window.print();
}
// 更新分析报告
updateAnalyticsReport(data) {
const reportContainer = document.getElementById('analytics-report');
if (!reportContainer) return;
const summary = data.summary || {};
const workorders = data.workorders || {};
const satisfaction = data.satisfaction || {};
const alerts = data.alerts || {};
const performance = data.performance || {};
const reportHtml = `
<div class="row">
<div class="col-md-6">
<h6><i class="fas fa-chart-bar me-2"></i>工单统计概览</h6>
<div class="table-responsive">
<table class="table table-sm">
<tr>
<td>总工单数</td>
<td><span class="badge bg-primary">${workorders.total || 0}</span></td>
</tr>
<tr>
<td>待处理</td>
<td><span class="badge bg-warning">${workorders.open || 0}</span></td>
</tr>
<tr>
<td>处理中</td>
<td><span class="badge bg-info">${workorders.in_progress || 0}</span></td>
</tr>
<tr>
<td>已解决</td>
<td><span class="badge bg-success">${workorders.resolved || 0}</span></td>
</tr>
<tr>
<td>已关闭</td>
<td><span class="badge bg-secondary">${workorders.closed || 0}</span></td>
</tr>
</table>
</div>
</div>
<div class="col-md-6">
<h6><i class="fas fa-star me-2"></i>满意度分析</h6>
<div class="table-responsive">
<table class="table table-sm">
<tr>
<td>平均满意度</td>
<td><span class="badge bg-success">${satisfaction.average || 0}/5.0</span></td>
</tr>
<tr>
<td>5星评价</td>
<td>${satisfaction.distribution?.['5'] || 0} 个</td>
</tr>
<tr>
<td>4星评价</td>
<td>${satisfaction.distribution?.['4'] || 0} 个</td>
</tr>
<tr>
<td>3星评价</td>
<td>${satisfaction.distribution?.['3'] || 0} 个</td>
</tr>
<tr>
<td>2星及以下</td>
<td>${(satisfaction.distribution?.['2'] || 0) + (satisfaction.distribution?.['1'] || 0)} 个</td>
</tr>
</table>
</div>
</div>
</div>
<div class="row mt-4">
<div class="col-md-6">
<h6><i class="fas fa-exclamation-triangle me-2"></i>预警统计</h6>
<div class="table-responsive">
<table class="table table-sm">
<tr>
<td>总预警数</td>
<td><span class="badge bg-danger">${alerts.total || 0}</span></td>
</tr>
<tr>
<td>活跃预警</td>
<td><span class="badge bg-warning">${alerts.active || 0}</span></td>
</tr>
<tr>
<td>已解决</td>
<td><span class="badge bg-success">${alerts.resolved || 0}</span></td>
</tr>
</table>
</div>
</div>
<div class="col-md-6">
<h6><i class="fas fa-tachometer-alt me-2"></i>性能指标</h6>
<div class="table-responsive">
<table class="table table-sm">
<tr>
<td>响应时间</td>
<td>${performance.response_time || 0} 秒</td>
</tr>
<tr>
<td>系统可用性</td>
<td>${performance.uptime || 0}%</td>
</tr>
<tr>
<td>错误率</td>
<td>${performance.error_rate || 0}%</td>
</tr>
<tr>
<td>吞吐量</td>
<td>${performance.throughput || 0} 请求/小时</td>
</tr>
</table>
</div>
</div>
</div>
<div class="row mt-4">
<div class="col-12">
<h6><i class="fas fa-chart-line me-2"></i>关键指标总结</h6>
<div class="row">
<div class="col-md-3">
<div class="card text-center">
<div class="card-body">
<h5 class="card-title text-primary">${summary.resolution_rate || 0}%</h5>
<p class="card-text">解决率</p>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card text-center">
<div class="card-body">
<h5 class="card-title text-success">${summary.avg_satisfaction || 0}</h5>
<p class="card-text">平均满意度</p>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card text-center">
<div class="card-body">
<h5 class="card-title text-warning">${summary.active_alerts || 0}</h5>
<p class="card-text">活跃预警</p>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card text-center">
<div class="card-body">
<h5 class="card-title text-info">${summary.total_workorders || 0}</h5>
<p class="card-text">总工单数</p>
</div>
</div>
</div>
</div>
</div>
</div>
`;
reportContainer.innerHTML = reportHtml;
}
updateAnalyticsDisplay(analytics) {
// 更新分析报告
const reportContainer = document.getElementById('analytics-report');