baoyubo преди 3 седмици
родител
ревизия
8e198e8f24
променени са 1 файла, в които са добавени 35 реда и са изтрити 25 реда
  1. 35 25
      routers/prod_api/system/menu/__init__.py

+ 35 - 25
routers/prod_api/system/menu/__init__.py

@@ -379,34 +379,44 @@ async def get_list(
     if status:
         query = query.filter(SysMenu.status.like(f'%{status}%'))
     # 应用查询
-    # menu_list = db.query(SysMenu).filter(
-    #     (SysMenu.menu_name.like(f'%{menu_name}%')) ,
-    #     (SysMenu.status.like(f'%{status}%'))
-    # ).all()
+
     query = query.order_by(SysMenu.order_num.asc())
     menu_list = query.all()
     # 将模型实例转换为字典
-    menu_list_dict = [{
-            "menuId": menu.menu_id,
-            "menuName": menu.menu_name,
-            "parentId": menu.parent_id,
-            "orderNum": menu.order_num,
-            "path": menu.path,
-            "component": menu.component,
-            "queryParam": menu.query_param,
-            "isFrame": str(menu.is_frame),
-            "isCache": str(menu.is_cache),
-            "menuType": menu.menu_type,
-            "visible": menu.visible,
-            "status": menu.status,
-            "perms": menu.perms,
-            "icon": menu.icon,
-            "createDept": menu.create_dept,
-            "remark": menu.remark,
-            "createTime": menu.create_time.strftime('%Y-%m-%d %H:%M:%S') if menu.create_time else '',
-            "children": []  # 递归调用以获取子菜单
-        } for menu in menu_list]
-
+    menu_list_dict = []
+    def menu_parent_life(menu_id):
+        query = db.query(SysMenu)
+        query = query.filter(SysMenu.menu_id==menu_id)
+        data = query.filter(SysMenu.del_flag != '2').first()
+        if data is None:
+            return False
+        if data.parent_id==0 or data.parent_id=='0':
+            return True
+        else:
+            return menu_parent_life(data.parent_id)
+
+    for menu in menu_list:
+        if menu_parent_life(menu.menu_id):
+            menu_list_dict.append({
+                "menuId": menu.menu_id,
+                "menuName": menu.menu_name,
+                "parentId": menu.parent_id,
+                "orderNum": menu.order_num,
+                "path": menu.path,
+                "component": menu.component,
+                "queryParam": menu.query_param,
+                "isFrame": str(menu.is_frame),
+                "isCache": str(menu.is_cache),
+                "menuType": menu.menu_type,
+                "visible": menu.visible,
+                "status": menu.status,
+                "perms": menu.perms,
+                "icon": menu.icon,
+                "createDept": menu.create_dept,
+                "remark": menu.remark,
+                "createTime": menu.create_time.strftime('%Y-%m-%d %H:%M:%S') if menu.create_time else '',
+                "children": []  # 递归调用以获取子菜单
+            })
     # 构建分页响应
     # pagination_info = {
     #     "total": total_count,