// 解析URL参数 function getQueryParams() { const urlParams = new URLSearchParams(window.location.search); return { serverUUID: urlParams.get('serverUUID'), nodeUUID: urlParams.get('nodeUUID') }; } // 检查是否包含必要的URL参数 function checkParams() { const { serverUUID, nodeUUID } = getQueryParams(); if (!serverUUID || !nodeUUID) { alert('URL中缺少必要的参数: serverUUID 和 nodeUUID'); return false; } return true; } // 显示加载模态框 function showLoadingModal() { document.getElementById('loadingModal').classList.remove('hidden'); } // 隐藏加载模态框 function hideLoadingModal() { document.getElementById('loadingModal').classList.add('hidden'); } // 加载实例信息 function loadInstanceInfo() { showLoadingModal(); const { serverUUID, nodeUUID } = getQueryParams(); fetch(`php/api.php?action=getInstanceInfo&serverUUID=${serverUUID}&nodeUUID=${nodeUUID}`) .then(response => response.json()) .then(data => { hideLoadingModal(); if (data.status !== 200) { alert(`获取实例信息失败: ${data.message || '未知错误'}`); return; } const instanceInfo = data.data; let html = `
实例名称: ${instanceInfo.name || '未命名'}
实例ID: ${instanceInfo.id}
实例UUID: ${serverUUID}
节点UUID: ${nodeUUID}
状态: ${instanceInfo.running ? '运行中' : '已停止'}
CPU使用率: ${instanceInfo.cpuUsage}%
内存使用: ${(instanceInfo.memoryUsage / 1024 / 1024).toFixed(2)} MB / ${(instanceInfo.totalMemory / 1024 / 1024).toFixed(2)} MB
运行时间: ${formatUptime(instanceInfo.uptime)}
` : `实例未运行
`}名称 | 类型 | 大小 | 修改时间 | 操作 |
---|---|---|---|---|
${file.name} | ${file.type} | ${formatFileSize(file.size)} | ${new Date(file.modifiedTime).toLocaleString()} | ${file.type === 'file' ? ` ` : ''} |
这里将显示实例的概览信息。
`; // 绑定按钮事件 document.getElementById('viewInstanceInfo').addEventListener('click', loadInstanceInfo); }); document.getElementById('instancesLink').addEventListener('click', function() { document.getElementById('contentArea').innerHTML = `