修复日志显示

This commit is contained in:
Alex Yang
2025-12-06 11:36:01 +08:00
parent b9f32dff3b
commit 5d4da5ddb4
16 changed files with 257487 additions and 4695 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -8,6 +8,7 @@
<script src="js/vendor/tailwind.js"></script>
<!-- Chart.js -->
<script src="js/vendor/chart.js"></script>
<script src="js/app.js"></script>
<!-- Font Awesome -->
<link href="css/font-awesome.min.css" rel="stylesheet">
@@ -612,8 +613,5 @@
</form>
</div>
</div>
<!-- 脚本文件 -->
<script src="js/app.js"></script>
</body>
</html>

View File

@@ -1327,6 +1327,12 @@ async function loadMetrics() {
// 更新刷新状态指示器
updateRefreshStatus();
// 更新进程信息
loadProcessInfo();
// 更新系统日志
loadSystemLogs();
} catch (error) {
console.error('Failed to load metrics:', error);
// 显示友好的错误提示
@@ -3148,7 +3154,10 @@ let processPagination = {
totalItems: 0,
totalPages: 0,
allProcesses: [],
lastDeviceID: '' // 上次请求数据的设备ID
lastDeviceID: '', // 上次请求数据的设备ID
lastTimeRange: '', // 上次请求数据的时间范围
lastCustomStartTime: '', // 上次请求数据的自定义开始时间
lastCustomEndTime: '' // 上次请求数据的自定义结束时间
};
// 系统日志分页状态
@@ -3158,7 +3167,10 @@ let logPagination = {
totalItems: 0,
totalPages: 0,
allLogs: [],
lastDeviceID: '' // 上次请求数据的设备ID
lastDeviceID: '', // 上次请求数据的设备ID
lastTimeRange: '', // 上次请求数据的时间范围
lastCustomStartTime: '', // 上次请求数据的自定义开始时间
lastCustomEndTime: '' // 上次请求数据的自定义结束时间
};
// 加载进程信息
@@ -3187,16 +3199,32 @@ async function loadProcessInfo(page = 1) {
params.append('device_id', state.currentDeviceID);
}
// 检查设备ID是否变化
if (processPagination.lastDeviceID !== state.currentDeviceID) {
// 设备ID变化清空旧数据
// 设置时间范围参数与fetchMetric函数保持一致
if (state.customStartTime && state.customEndTime) {
// 自定义时间范围
params.append('start_time', state.customStartTime);
params.append('end_time', state.customEndTime);
} else {
// 使用状态中的时间范围设置
params.append('start_time', `-${state.currentTimeRange}`);
params.append('end_time', 'now()');
}
// 检查设备ID或时间范围是否变化
const timeRangeChanged =
processPagination.lastTimeRange !== state.currentTimeRange ||
processPagination.lastCustomStartTime !== state.customStartTime ||
processPagination.lastCustomEndTime !== state.customEndTime;
if (processPagination.lastDeviceID !== state.currentDeviceID || timeRangeChanged) {
// 设备ID或时间范围变化清空旧数据
processPagination.allProcesses = [];
processPagination.totalItems = 0;
processPagination.totalPages = 0;
processPagination.currentPage = 1;
}
// 如果是第一次加载或设备ID变化获取全部数据
// 如果是第一次加载或设备ID/时间范围变化,获取全部数据
if (processPagination.allProcesses.length === 0) {
// 发送请求
const response = await fetch(`${API_BASE_URL}/metrics/processes?${params.toString()}`);
@@ -3208,8 +3236,11 @@ async function loadProcessInfo(page = 1) {
processPagination.allProcesses = data.data || [];
processPagination.totalItems = processPagination.allProcesses.length;
processPagination.totalPages = Math.ceil(processPagination.totalItems / processPagination.itemsPerPage);
// 更新上次请求数据的设备ID
// 更新上次请求数据的设备ID和时间范围
processPagination.lastDeviceID = state.currentDeviceID;
processPagination.lastTimeRange = state.currentTimeRange;
processPagination.lastCustomStartTime = state.customStartTime;
processPagination.lastCustomEndTime = state.customEndTime;
}
// 更新当前页码
@@ -3582,16 +3613,32 @@ async function loadSystemLogs(page = 1) {
params.append('device_id', state.currentDeviceID);
}
// 检查设备ID是否变化
if (logPagination.lastDeviceID !== state.currentDeviceID) {
// 设备ID变化清空旧数据
// 设置时间范围参数与fetchMetric函数保持一致
if (state.customStartTime && state.customEndTime) {
// 自定义时间范围
params.append('start_time', state.customStartTime);
params.append('end_time', state.customEndTime);
} else {
// 使用状态中的时间范围设置
params.append('start_time', `-${state.currentTimeRange}`);
params.append('end_time', 'now()');
}
// 检查设备ID或时间范围是否变化
const timeRangeChanged =
logPagination.lastTimeRange !== state.currentTimeRange ||
logPagination.lastCustomStartTime !== state.customStartTime ||
logPagination.lastCustomEndTime !== state.customEndTime;
if (logPagination.lastDeviceID !== state.currentDeviceID || timeRangeChanged) {
// 设备ID或时间范围变化清空旧数据
logPagination.allLogs = [];
logPagination.totalItems = 0;
logPagination.totalPages = 0;
logPagination.currentPage = 1;
}
// 如果是第一次加载或设备ID变化获取全部数据
// 如果是第一次加载或设备ID/时间范围变化,获取全部数据
if (logPagination.allLogs.length === 0) {
console.log('Fetching logs from:', `${API_BASE_URL}/metrics/logs?${params.toString()}`);
// 发送请求
@@ -3601,11 +3648,16 @@ async function loadSystemLogs(page = 1) {
}
const data = await response.json();
logPagination.allLogs = data.data || [];
logPagination.totalItems = logPagination.allLogs.length;
console.log('Logs response data:', data);
// 处理后端返回格式,支持两种格式:{"logs": [...]} 和 {"data": [...], "total": ...}
logPagination.allLogs = data.data || data.logs || [];
logPagination.totalItems = data.total || logPagination.allLogs.length;
logPagination.totalPages = Math.ceil(logPagination.totalItems / logPagination.itemsPerPage);
// 更新上次请求数据的设备ID
// 更新上次请求数据的设备ID和时间范围
logPagination.lastDeviceID = state.currentDeviceID;
logPagination.lastTimeRange = state.currentTimeRange;
logPagination.lastCustomStartTime = state.customStartTime;
logPagination.lastCustomEndTime = state.customEndTime;
}
// 更新当前页码