From 0937e1610d31bf6da27437e00601c598af38af1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=B1=BC=E9=AA=A8=E5=89=AA?= <1580622474@qq.com> Date: Sun, 11 Aug 2024 15:08:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=98=BE=E7=A4=BA=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E6=95=B0=E6=8D=AE=E7=9A=84=E6=97=B6=E9=97=B4=EF=BC=8C?= =?UTF-8?q?=E6=9B=B4=E8=AF=A6=E7=BB=86=E7=9A=84=E9=94=99=E8=AF=AF=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.py | 20 ++++++++++++++------ index.html | 22 ++++++++++++++++++++-- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/app.py b/app.py index 3dc9ae4..d233bd7 100644 --- a/app.py +++ b/app.py @@ -1,4 +1,5 @@ from flask import Flask, jsonify +from datetime import datetime from flask_cors import CORS import threading import paramiko @@ -121,24 +122,31 @@ def get_all_data(): # 根据key过滤所需的服务器数据 def filter_data(title_list: list): result = dict() + server_data = dict() for title in title_list: - result[title] = {} + server_data[title] = {} # 不存在该title的数据 if title not in data_dict: - result[title]['err_info'] = f'title \'{title}\' not exist!' + server_data[title]['err_info'] = f'title \'{title}\' not exist!' continue # 还没获取到数据 info_list = data_dict[title].get('info_list', None) if info_list is None: - result[title]['err_info'] = f'\'{title}\' still empty.' + err_info = data_dict[title].get('err_info', None) + if err_info is not None: + server_data[title]['err_info'] = data_dict[title]['err_info'] + else: + server_data[title]['err_info'] = f'\'{title}\' still empty.' continue # 记录数据 data_updated = data_dict[title].get('updated', False) err_info = data_dict[title].get('err_info', '') - result[title]['info_list'] = info_list - result[title]['updated'] = data_updated - result[title]['err_info'] = err_info + server_data[title]['info_list'] = info_list + server_data[title]['updated'] = data_updated + server_data[title]['err_info'] = err_info + result['time'] = datetime.now().strftime('%Y-%m-%d %H:%M:%S') + result['server_data'] = server_data return result def start_connect(): diff --git a/index.html b/index.html index 90d35bc..851ea94 100644 --- a/index.html +++ b/index.html @@ -38,15 +38,33 @@ displayServerData(data); // 调用显示数据的函数 }) .catch(error => { - console.error('Error fetching data:', error); + // console.error('Error fetching data:', error); + displayError(error + " (多半是没有正确连接服务器端,可能是没开、网络错误)"); }); } - function displayServerData(serverData) { + function displayError(err_info){ + let serverDataContainer = document.getElementById('server-data'); + serverDataContainer.innerHTML = ''; // 清空容器 + + let errDiv = document.createElement('div'); + errDiv.classList.add('error-info'); + errDiv.innerHTML = err_info; + serverDataContainer.appendChild(errDiv); + } + + function displayServerData(data) { // 绘制 ------------------- let serverDataContainer = document.getElementById('server-data'); serverDataContainer.innerHTML = ''; // 清空容器 + let timeStr = data['time'] + let serverData = data['server_data'] + + let timeDiv = document.createElement('div'); + timeDiv.textContent = timeStr; + serverDataContainer.appendChild(timeDiv); + let greenDot = ' 空闲'; let yellowDot = ' 占用'; let redDot = ' 占用';