fix: 修复数据分析页面JavaScript错误
- 添加缺失的updateAnalyticsReport函数 - 完善分析报告显示功能 - 修复图表更新失败的问题
This commit is contained in:
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user