Download center: copy code, online/offline status; remove client offline mode.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-10-17 20:09:22 +08:00
parent 09c7ee0188
commit 44c54d6f80
6 changed files with 144 additions and 52 deletions
+29 -4
View File
@@ -621,6 +621,7 @@ class OrderApp(tk.Tk):
self._pos_profit_labels: dict = {}
self._build_ui()
self.after(200, self._try_connect_and_refresh)
self.after(3000, self._hub_heartbeat)
def _build_ui(self) -> None:
style = ttk.Style(self)
@@ -1445,17 +1446,41 @@ class OrderApp(tk.Tk):
self._run_async(work)
def _hub_heartbeat(self) -> None:
"""定期 ping 中控,供网页显示在线;断线则提示(不允许离线运行)。"""
if hub_client is None or not is_activated():
self.after(60000, self._hub_heartbeat)
return
def work():
ok = False
try:
ok = bool(hub_client.ping())
except Exception:
ok = False
return ok
def done(ok: bool):
if not ok:
self.set_status("中控离线:请检查服务器,客户端需保持在线", ok=False)
self.after(60000, self._hub_heartbeat)
def run():
ok = work()
self.after(0, lambda: done(ok))
threading.Thread(target=run, daemon=True).start()
def on_open_review(self) -> None:
"""打开中控复盘登录页(浏览器)。"""
"""打开中控复盘登录页(浏览器),使用已保存地址。"""
server = ""
try:
server = (load_device().get("server") or "").rstrip("/")
except Exception:
server = ""
if not server:
server = simpledialog_ask_server(self)
if not server:
return
self.set_status("未激活:请先完成中控激活", ok=False)
return
url = server.rstrip("/") + "/login"
try:
webbrowser.open(url)