()
| 1706 | } |
| 1707 | |
| 1708 | function showStatisticsModal() { |
| 1709 | const stats = calculateStatistics(); |
| 1710 | |
| 1711 | document.getElementById('stat-total-connections').textContent = stats.totalConnections; |
| 1712 | document.getElementById('stat-active-connections').textContent = stats.activeConnections; |
| 1713 | document.getElementById('stat-total-messages').textContent = stats.totalMessages; |
| 1714 | document.getElementById('stat-avg-messages').textContent = stats.avgMessages; |
| 1715 | |
| 1716 | const statsConnectionList = document.getElementById('stats-connection-list'); |
| 1717 | |
| 1718 | if (stats.connections.length === 0) { |
| 1719 | statsConnectionList.innerHTML = '<div style="text-align: center; color: var(--text-muted); padding: 20px;">暂无连接数据</div>'; |
| 1720 | } else { |
| 1721 | statsConnectionList.innerHTML = stats.connections.map(conn => ` |
| 1722 | <div class="stats-connection-item"> |
| 1723 | <div class="stats-connection-header"> |
| 1724 | <div class="stats-connection-url" title="${escapeHtml(conn.url)}">${escapeHtml(getUrlPath(conn.url))}</div> |
| 1725 | <span class="stats-connection-status status-${conn.status}">${getStatusText(conn.status)}</span> |
| 1726 | </div> |
| 1727 | <div class="stats-connection-details"> |
| 1728 | <div class="stats-detail-item"> |
| 1729 | <span class="stats-detail-label">消息数</span> |
| 1730 | <span class="stats-detail-value">${conn.messageCount}</span> |
| 1731 | </div> |
| 1732 | <div class="stats-detail-item"> |
| 1733 | <span class="stats-detail-label">持续时间</span> |
| 1734 | <span class="stats-detail-value">${formatDuration(conn.duration)}</span> |
| 1735 | </div> |
| 1736 | <div class="stats-detail-item"> |
| 1737 | <span class="stats-detail-label">ID</span> |
| 1738 | <span class="stats-detail-value">${conn.id.substring(0, 8)}...</span> |
| 1739 | </div> |
| 1740 | </div> |
| 1741 | </div> |
| 1742 | `).join(''); |
| 1743 | } |
| 1744 | |
| 1745 | elements$3.statsModal.style.display = 'flex'; |
| 1746 | } |
| 1747 | |
| 1748 | function closeStatisticsModal() { |
| 1749 | elements$3.statsModal.style.display = 'none'; |
nothing calls this directly
no test coverage detected