diff --git a/static/js/app.js b/static/js/app.js index bfa6eaa..b6bd977 100644 --- a/static/js/app.js +++ b/static/js/app.js @@ -3439,6 +3439,11 @@ function displayModalGroupedQueryLogs(groupedLogs) { return; } + // 获取当前的过滤器状态,如果复选框不存在则默认显示所有 + const showInfo = document.getElementById('modal-log-level-info')?.checked ?? true; + const showWarning = document.getElementById('modal-log-level-warning')?.checked ?? true; + const showError = document.getElementById('modal-log-level-error')?.checked ?? true; + let html = ''; // 为每个批次生成折叠面板 @@ -3447,7 +3452,19 @@ function displayModalGroupedQueryLogs(groupedLogs) { const isExpanded = index === groupedLogs.length - 1; // 默认展开最新批次 const collapseId = `modal-batch-${batchId}`; - // 统计批次信息 + // 过滤日志 + const filteredLogs = logs.filter(log => { + return (log.level === 'INFO' && showInfo) || + (log.level === 'WARNING' && showWarning) || + (log.level === 'ERROR' && showError); + }); + + // 如果过滤后没有日志,跳过这个批次 + if (filteredLogs.length === 0) { + return; + } + + // 统计批次信息(基于原始日志) const logCounts = { INFO: logs.filter(log => log.level === 'INFO').length, WARNING: logs.filter(log => log.level === 'WARNING').length, @@ -3455,6 +3472,7 @@ function displayModalGroupedQueryLogs(groupedLogs) { }; const totalLogs = logs.length; + const filteredCount = filteredLogs.length; const firstLog = logs[0]; const lastLog = logs[logs.length - 1]; const duration = firstLog && lastLog ? calculateDuration(firstLog.timestamp, lastLog.timestamp) : '0秒'; @@ -3466,7 +3484,7 @@ function displayModalGroupedQueryLogs(groupedLogs) { const batchIcon = hasErrors ? 'fas fa-times-circle' : hasWarnings ? 'fas fa-exclamation-triangle' : 'fas fa-check-circle'; // 提取查询类型 - const batchTypeMatch = firstLog?.message.match(/开始(\w+)查询批次/); + const batchTypeMatch = firstLog?.message.match(/开始(\w+)查询批次/) || firstLog?.message.match(/🚀 开始执行(\w+)数据比较/); const batchType = batchTypeMatch ? batchTypeMatch[1] : '未知'; // 提取并格式化查询日期 @@ -3479,13 +3497,6 @@ function displayModalGroupedQueryLogs(groupedLogs) { second: '2-digit' }) : '未知时间'; - // 简化的日期显示(仅显示日期部分) - const queryDateShort = firstLog ? new Date(firstLog.timestamp).toLocaleDateString('zh-CN', { - year: 'numeric', - month: '2-digit', - day: '2-digit' - }) : '未知'; - // 检查是否有关联的历史记录ID const historyId = firstLog?.history_id; const historyBadge = historyId ? @@ -3505,7 +3516,7 @@ function displayModalGroupedQueryLogs(groupedLogs) {
${batchType}查询批次 ${batchId} - ${totalLogs}条日志 + ${filteredCount}/${totalLogs}条日志 ${historyBadge}
@@ -3533,41 +3544,31 @@ function displayModalGroupedQueryLogs(groupedLogs) {
`; - // 显示该批次的日志条目 - logs.forEach(log => { - const showInfo = document.getElementById('modal-log-level-info').checked; - const showWarning = document.getElementById('modal-log-level-warning').checked; - const showError = document.getElementById('modal-log-level-error').checked; + // 显示过滤后的日志条目 + filteredLogs.forEach(log => { + const levelClass = log.level === 'ERROR' ? 'danger' : + log.level === 'WARNING' ? 'warning' : 'info'; + const levelIcon = log.level === 'ERROR' ? 'fas fa-times-circle' : + log.level === 'WARNING' ? 'fas fa-exclamation-triangle' : 'fas fa-info-circle'; - const shouldShow = (log.level === 'INFO' && showInfo) || - (log.level === 'WARNING' && showWarning) || - (log.level === 'ERROR' && showError); + // 简化时间戳显示 + const timeOnly = log.timestamp ? (log.timestamp.split(' ')[1] || log.timestamp) : '未知时间'; - if (shouldShow) { - const levelClass = log.level === 'ERROR' ? 'danger' : - log.level === 'WARNING' ? 'warning' : 'info'; - const levelIcon = log.level === 'ERROR' ? 'fas fa-times-circle' : - log.level === 'WARNING' ? 'fas fa-exclamation-triangle' : 'fas fa-info-circle'; - - // 简化时间戳显示 - const timeOnly = log.timestamp.split(' ')[1] || log.timestamp; - - html += ` -
-
- - ${log.level} - - - ${timeOnly} - -
- ${formatLogMessage(log.message)} -
+ html += ` +
+
+ + ${log.level} + + + ${timeOnly} + +
+ ${formatLogMessage(log.message || '无消息内容')}
- `; - } +
+ `; }); html += ` @@ -3578,6 +3579,10 @@ function displayModalGroupedQueryLogs(groupedLogs) { `; }); + if (html === '') { + html = '
没有符合过滤条件的日志
'; + } + container.innerHTML = html; }