diff --git a/services/update_service.py b/services/update_service.py
index 3bbb2e6..2a197a5 100644
--- a/services/update_service.py
+++ b/services/update_service.py
@@ -77,7 +77,8 @@ class UpdateService:
self._task: Optional[asyncio.Task] = None
self._running = False
self.status: dict = {"state": "idle", "progress": 0, "error": "",
- "last_check": 0, "update_available": False}
+ "last_check": 0, "checked": False, "update_available": False,
+ "current_version": "", "latest_version": ""}
# 从配置读取分支和仓库地址
try:
init = self.sm.get_service("init")
@@ -109,6 +110,7 @@ class UpdateService:
loop = asyncio.get_event_loop()
data = await loop.run_in_executor(None, self._sync_fetch_json, self.version_url)
self.status["last_check"] = time.time()
+ self.status["checked"] = True
if not data:
return
remote_fw = data.get("framework", {})
diff --git a/static/web_panel/pages/settings.html b/static/web_panel/pages/settings.html
index 5d72ca1..7ed21c2 100644
--- a/static/web_panel/pages/settings.html
+++ b/static/web_panel/pages/settings.html
@@ -93,12 +93,13 @@
var r = await fetch("./api/updates"), d = await r.json();
document.getElementById("ver-current").textContent = d.current_version || d.latest_version || "?";
var badge = document.getElementById("ver-badge");
+ var notesHtml = "";
if (d.update_available) {
badge.textContent = "↻ " + d.latest_version + " 可用";
badge.style.background = "var(--success,#4caf50)";
badge.style.color = "#fff";
document.getElementById("btn-apply").style.display = "inline-block";
- document.getElementById("update-notes").innerHTML = d.latest_version ? "最新版本: "+esc(d.latest_version)+"" : "";
+ notesHtml = d.latest_version ? "最新版本: "+esc(d.latest_version)+"" : "";
} else if (d.checked) {
badge.textContent = "✓ 已是最新";
badge.style.background = "var(--md-sys-color-surface-container-lowest)";
@@ -108,8 +109,9 @@
badge.textContent = "⏳ 等待检查...";
}
if (d.last_check) {
- document.getElementById("update-notes").innerHTML += " 上次检查: "+new Date(d.last_check*1000).toLocaleString()+"";
+ notesHtml += (notesHtml ? " | " : "") + "上次检查: "+new Date(d.last_check*1000).toLocaleString();
}
+ document.getElementById("update-notes").innerHTML = notesHtml;
} catch(e) {}
}