From cffc3762f24bb0d2796a3791f74bae8a8482e8c6 Mon Sep 17 00:00:00 2001 From: HibiKier <775757368@qq.com> Date: Wed, 12 Mar 2025 12:33:55 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E6=B7=BB=E5=8A=A0=E5=85=B3?= =?UTF-8?q?=E4=BA=8E=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web_ui/api/menu/data_source.py | 83 +++++++++++-------- 1 file changed, 49 insertions(+), 34 deletions(-) diff --git a/zhenxun/builtin_plugins/web_ui/api/menu/data_source.py b/zhenxun/builtin_plugins/web_ui/api/menu/data_source.py index 9cfcd244..1696c61c 100644 --- a/zhenxun/builtin_plugins/web_ui/api/menu/data_source.py +++ b/zhenxun/builtin_plugins/web_ui/api/menu/data_source.py @@ -5,6 +5,33 @@ from zhenxun.services.log import logger from .model import MenuData, MenuItem +default_menus = [ + MenuItem( + name="仪表盘", + module="dashboard", + router="/dashboard", + icon="dashboard", + default=True, + ), + MenuItem( + name="真寻控制台", + module="command", + router="/command", + icon="command", + ), + MenuItem(name="插件列表", module="plugin", router="/plugin", icon="plugin"), + MenuItem(name="插件商店", module="store", router="/store", icon="store"), + MenuItem(name="好友/群组", module="manage", router="/manage", icon="user"), + MenuItem( + name="数据库管理", + module="database", + router="/database", + icon="database", + ), + MenuItem(name="系统信息", module="system", router="/system", icon="system"), + MenuItem(name="关于我们", module="about", router="/about", icon="about"), +] + class MenuManage: def __init__(self) -> None: @@ -12,44 +39,32 @@ class MenuManage: self.menu = [] if self.file.exists(): try: + temp_menu = [] self.menu = json.load(self.file.open(encoding="utf8")) + self_menu_name = [menu["name"] for menu in self.menu] + for module in [m.module for m in default_menus]: + if module in self_menu_name: + temp_menu.append( + MenuItem( + **next(m for m in self.menu if m["module"] == module) + ) + ) + else: + temp_menu.append( + default_menus[ + next( + i + for i, m in enumerate(default_menus) + if m.module == module + ) + ] + ) + self.menu = temp_menu except Exception as e: logger.warning("菜单文件损坏,已重新生成...", "WebUi", e=e) if not self.menu: - self.menu = [ - MenuItem( - name="仪表盘", - module="dashboard", - router="/dashboard", - icon="dashboard", - default=True, - ), - MenuItem( - name="真寻控制台", - module="command", - router="/command", - icon="command", - ), - MenuItem( - name="插件列表", module="plugin", router="/plugin", icon="plugin" - ), - MenuItem( - name="插件商店", module="store", router="/store", icon="store" - ), - MenuItem( - name="好友/群组", module="manage", router="/manage", icon="user" - ), - MenuItem( - name="数据库管理", - module="database", - router="/database", - icon="database", - ), - MenuItem( - name="系统信息", module="system", router="/system", icon="system" - ), - ] - self.save() + self.menu = default_menus + self.save() def get_menus(self): return MenuData(menus=self.menu)