feat: 进程列表显示开关(默认不显示)
This commit is contained in:
34
app.py
34
app.py
@@ -1155,7 +1155,7 @@ HTML_TEMPLATE = '''<!DOCTYPE html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>项目服务管理面板 v3.3</title>
|
||||
<title>项目服务管理面板 v3.3.1</title>
|
||||
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>📊</text></svg>">
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
<link href="https://cdn.jsdelivr.net/npm/remixicon@3.5.0/fonts/remixicon.css" rel="stylesheet">
|
||||
@@ -1516,6 +1516,10 @@ HTML_TEMPLATE = '''<!DOCTYPE html>
|
||||
</select>
|
||||
<span id="realtimeIndicator" class="text-xs text-green-400 ml-1 hidden">●</span>
|
||||
</div>
|
||||
<div class="flex items-center gap-2 ml-4">
|
||||
<input type="checkbox" id="showProcessListCheck" class="w-4 h-4 cursor-pointer" onchange="toggleProcessList()">
|
||||
<label for="showProcessListCheck" class="text-gray-300 text-xs cursor-pointer">显示进程列表</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 进程列表(实时监控时显示) -->
|
||||
@@ -1908,6 +1912,7 @@ HTML_TEMPLATE = '''<!DOCTYPE html>
|
||||
clearInterval(realtimeTimer);
|
||||
realtimeTimer = null;
|
||||
document.getElementById('realtimeCheck').checked = false;
|
||||
document.getElementById('showProcessListCheck').checked = false;
|
||||
document.getElementById('realtimeToggle').classList.remove('active');
|
||||
document.getElementById('realtimeIndicator').classList.add('hidden');
|
||||
document.getElementById('processListSection').classList.add('hidden');
|
||||
@@ -2134,8 +2139,8 @@ HTML_TEMPLATE = '''<!DOCTYPE html>
|
||||
// 检查阈值
|
||||
checkThresholds(data);
|
||||
|
||||
// 如果实时监控开启,加载进程列表
|
||||
if (document.getElementById('realtimeCheck').checked) {
|
||||
// 如果实时监控和进程列表都开启,加载进程列表
|
||||
if (document.getElementById('realtimeCheck').checked && document.getElementById('showProcessListCheck').checked) {
|
||||
loadTopProcesses();
|
||||
}
|
||||
|
||||
@@ -2195,21 +2200,23 @@ HTML_TEMPLATE = '''<!DOCTYPE html>
|
||||
const checked = document.getElementById('realtimeCheck').checked;
|
||||
const toggle = document.getElementById('realtimeToggle');
|
||||
const indicator = document.getElementById('realtimeIndicator');
|
||||
const processSection = document.getElementById('processListSection');
|
||||
|
||||
if (checked) {
|
||||
toggle.classList.add('active');
|
||||
indicator.classList.remove('hidden');
|
||||
processSection.classList.remove('hidden');
|
||||
// 立即加载一次
|
||||
loadSystemStats();
|
||||
loadTopProcesses();
|
||||
// 启动定时器
|
||||
realtimeTimer = setInterval(loadSystemStats, realtimeInterval * 1000);
|
||||
// 如果进程列表开关也开启,则显示并加载
|
||||
if (document.getElementById('showProcessListCheck').checked) {
|
||||
document.getElementById('processListSection').classList.remove('hidden');
|
||||
loadTopProcesses();
|
||||
}
|
||||
} else {
|
||||
toggle.classList.remove('active');
|
||||
indicator.classList.add('hidden');
|
||||
processSection.classList.add('hidden');
|
||||
document.getElementById('processListSection').classList.add('hidden');
|
||||
// 停止定时器
|
||||
if (realtimeTimer) {
|
||||
clearInterval(realtimeTimer);
|
||||
@@ -2218,6 +2225,19 @@ HTML_TEMPLATE = '''<!DOCTYPE html>
|
||||
}
|
||||
}
|
||||
|
||||
function toggleProcessList() {
|
||||
const checked = document.getElementById('showProcessListCheck').checked;
|
||||
const realtimeChecked = document.getElementById('realtimeCheck').checked;
|
||||
const processSection = document.getElementById('processListSection');
|
||||
|
||||
if (checked && realtimeChecked) {
|
||||
processSection.classList.remove('hidden');
|
||||
loadTopProcesses();
|
||||
} else {
|
||||
processSection.classList.add('hidden');
|
||||
}
|
||||
}
|
||||
|
||||
// IP 保存
|
||||
function saveExternalIp() {
|
||||
externalIp = document.getElementById('externalIp').value.trim();
|
||||
|
||||
102
logs/app.log
102
logs/app.log
@@ -1,8 +1,8 @@
|
||||
[2026-04-23 23:57:38] ==================================================
|
||||
[2026-04-23 23:57:38] 项目服务管理面板 v2.0.0 启动
|
||||
[2026-04-23 23:57:38] 访问地址: http://localhost:19013
|
||||
[2026-04-23 23:57:38] 进程PID: 1274690
|
||||
[2026-04-23 23:57:38] ==================================================
|
||||
[2026-04-24 00:19:49] ==================================================
|
||||
[2026-04-24 00:19:49] 项目服务管理面板 v2.0.0 启动
|
||||
[2026-04-24 00:19:49] 访问地址: http://localhost:19013
|
||||
[2026-04-24 00:19:49] 进程PID: 1284917
|
||||
[2026-04-24 00:19:49] ==================================================
|
||||
* Serving Flask app 'app'
|
||||
* Debug mode: off
|
||||
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
|
||||
@@ -10,32 +10,66 @@ WARNING: This is a development server. Do not use it in a production deployment.
|
||||
* Running on http://127.0.0.1:19013
|
||||
* Running on http://192.168.2.17:19013
|
||||
Press CTRL+C to quit
|
||||
127.0.0.1 - - [23/Apr/2026 23:57:42] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [23/Apr/2026 23:57:43] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [23/Apr/2026 23:57:45] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.8 - - [23/Apr/2026 23:57:47] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [23/Apr/2026 23:57:52] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [23/Apr/2026 23:57:53] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [23/Apr/2026 23:57:55] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.8 - - [23/Apr/2026 23:57:57] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [23/Apr/2026 23:58:02] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [23/Apr/2026 23:58:02] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [23/Apr/2026 23:58:03] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.8 - - [23/Apr/2026 23:58:04] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [23/Apr/2026 23:58:05] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.8 - - [23/Apr/2026 23:58:07] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [23/Apr/2026 23:58:12] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [23/Apr/2026 23:58:13] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [23/Apr/2026 23:58:15] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.8 - - [23/Apr/2026 23:58:17] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [23/Apr/2026 23:58:19] "GET /api/system/processes?limit=5 HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [23/Apr/2026 23:58:22] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [23/Apr/2026 23:58:23] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [23/Apr/2026 23:58:25] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.8 - - [23/Apr/2026 23:58:27] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [23/Apr/2026 23:58:32] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [23/Apr/2026 23:58:32] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [23/Apr/2026 23:58:33] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.8 - - [23/Apr/2026 23:58:34] "GET /api/projects HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [23/Apr/2026 23:58:35] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.8 - - [23/Apr/2026 23:58:37] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:49] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:49] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:49] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:50] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:50] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:50] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:50] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:50] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:50] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:50] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [24/Apr/2026 00:19:51] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:51] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:51] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:51] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [24/Apr/2026 00:19:51] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:52] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [24/Apr/2026 00:19:52] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:52] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:52] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:53] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:53] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:53] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:53] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:53] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:54] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:54] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:54] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [24/Apr/2026 00:19:55] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:55] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [24/Apr/2026 00:19:55] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [24/Apr/2026 00:19:55] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:55] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:56] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:56] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:56] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:57] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:57] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:57] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [24/Apr/2026 00:19:57] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:58] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [24/Apr/2026 00:19:58] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:58] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:59] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.8 - - [24/Apr/2026 00:19:59] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:19:59] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:20:00] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:20:00] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:20:00] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [24/Apr/2026 00:20:01] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:20:01] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:20:02] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [24/Apr/2026 00:20:03] "GET / HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [24/Apr/2026 00:20:03] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:20:04] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.8 - - [24/Apr/2026 00:20:04] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:20:04] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:20:06] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [24/Apr/2026 00:20:08] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:20:08] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
192.168.2.8 - - [24/Apr/2026 00:20:09] "GET /api/projects HTTP/1.1" 200 -
|
||||
192.168.2.14 - - [24/Apr/2026 00:20:10] "GET /api/system/stats HTTP/1.1" 200 -
|
||||
127.0.0.1 - - [24/Apr/2026 00:20:18] "GET / HTTP/1.1" 200 -
|
||||
192.168.2.8 - - [24/Apr/2026 00:20:19] "GET /api/projects HTTP/1.1" 200 -
|
||||
|
||||
Reference in New Issue
Block a user