Browse Source

修复前端时间戳解析RangeError - 增加对无效或缺失时间戳的健壮性检查

master
root 1 month ago
parent
commit
68936a4f6a
  1. 36
      LTEMvcApp/Views/Home/Logs.cshtml

36
LTEMvcApp/Views/Home/Logs.cshtml

@ -311,13 +311,24 @@
// 格式化日志条目为 HTML 字符串
function formatLogItem(log, index) {
// 时间戳是毫秒数,直接用于Date构造函数
const timestamp = new Date(log.timestamp).toISOString();
let timestamp = 'Invalid Date';
if (log && log.timestamp) {
const date = new Date(log.timestamp);
// 验证创建的日期对象是否有效
if (date instanceof Date && !isNaN(date)) {
timestamp = date.toISOString();
} else {
console.warn(`Could not parse timestamp: ${log.timestamp} for log:`, log);
}
} else {
console.warn('Timestamp is missing for log:', log);
}
return `<div class="log-item" data-index="${index}">
<span class="log-timestamp" title="${timestamp}">${timestamp}</span>
<span class="log-layer" title="${log.layer}">${log.layer}</span>
<span class="log-layer" title="${log.layer || ''}">${log.layer || ''}</span>
<span class="log-direction" title="${formatDirection(log.direction)}">${formatDirection(log.direction)}</span>
<span class="log-message" title="${log.message}">${log.message}</span>
<span class="log-message" title="${log.message || ''}">${log.message || ''}</span>
<span class="log-info" title="${log.info || ''}">${log.info || ''}</span>
</div>`;
}
@ -352,7 +363,18 @@
detailPlaceholder.classList.add('d-none');
const timestamp = new Date(log.timestamp).toISOString();
let timestamp = 'Invalid Date';
if (log && log.timestamp) {
const date = new Date(log.timestamp);
// 验证创建的日期对象是否有效
if (date instanceof Date && !isNaN(date)) {
timestamp = date.toISOString();
} else {
console.warn(`Could not parse timestamp in detail view: ${log.timestamp} for log:`, log);
}
} else {
console.warn('Timestamp is missing for log detail:', log);
}
const detailHtml = `
<div class="detail-item">
@ -361,7 +383,7 @@
</div>
<div class="detail-item">
<div class="detail-item-label">Layer</div>
<div class="detail-item-value">${log.layer}</div>
<div class="detail-item-value">${log.layer || 'N/A'}</div>
</div>
<div class="detail-item">
<div class="detail-item-label">Direction</div>
@ -381,7 +403,7 @@
</div>
<div class="detail-item">
<div class="detail-item-label">Message</div>
<div class="detail-item-value">${log.message}</div>
<div class="detail-item-value">${log.message || ''}</div>
</div>
<div class="detail-item">
<div class="detail-item-label">Info</div>

Loading…
Cancel
Save