baoyubo 9 saat önce
ebeveyn
işleme
65ce5d571e
1 değiştirilmiş dosya ile 21 ekleme ve 11 silme
  1. 21 11
      routers/api/layerConfiguration/__init__.py

+ 21 - 11
routers/api/layerConfiguration/__init__.py

@@ -107,6 +107,7 @@ def get_video_routers(db:Session):
 @router.get('/getRouters')
 async def getRouters(request: Request, db: Session = Depends(get_db),
     body = Depends(remove_xss_json),
+    ZT: str =  Query(None, max_length=100),
     user_id = Depends(valid_access_token)):
     try:
         # 查询数据库中的所有菜单项,根据 parent_id 排序以构建树形结构
@@ -114,6 +115,8 @@ async def getRouters(request: Request, db: Session = Depends(get_db),
         query = query.filter_by(parent_id=0)
         query = query.filter(SysMenuLayer.del_flag != '2')
         query = query.filter(SysMenuLayer.status != '1')
+        if ZT:
+            query = query.filter(SysMenuLayer.layer_template.like(f"%;{ZT};%"))
         query = query.order_by(SysMenuLayer.order_num)
 
         menus =query.all()  # 顶级菜单
@@ -159,6 +162,8 @@ async def getRouters(request: Request, db: Session = Depends(get_db),
                     query = query.filter_by(parent_id=menu.menu_id)
                     query = query.filter(SysMenuLayer.del_flag != '2')
                     query = query.filter(SysMenuLayer.status != '1')
+                    if ZT:
+                         query = query.filter(SysMenuLayer.layer_template.like(f"%;{ZT};%"))
                     query = query.order_by(SysMenuLayer.order_num)
                     # children_menus = db.query(SysMenu).filter_by(parent_id=menu.menu_id).all()
                     children_menus = query.all()
@@ -178,11 +183,12 @@ async def getRouters(request: Request, db: Session = Depends(get_db),
         for router in routers:
             router_info = router.dict()
             print(router_info)
-            if len(router_info['children'])==0:
-                del router_info['children']
-                del router_info['redirect']
-                del router_info['alwaysShow']
-                router_info['path'] = router_info['path'][1:]
+            if 'children' in router_info:
+                if len(router_info['children'])==0:
+                    del router_info['children']
+                    del router_info['redirect']
+                    del router_info['alwaysShow']
+                    router_info['path'] = router_info['path'][1:]
 
             routers_dict.append(router_info)
         # 返回构建好的路由数据
@@ -203,6 +209,7 @@ async def get_list(
     # request: Request,
     menuName: str = Query(None, max_length=100),
     status: str =  Query(None, max_length=100),
+    ZT: str =  Query(None, max_length=100),
     db: Session = Depends(get_db),
     body = Depends(remove_xss_json),
     user_id = Depends(valid_access_token)
@@ -214,6 +221,8 @@ async def get_list(
         query = query.filter(SysMenuLayer.menu_type=='T')
     if status:
         query = query.filter(SysMenuLayer.status==status)
+    if ZT:
+        query = query.filter(SysMenuLayer.layer_template.like(f"%;{ZT};%"))
     query = query.order_by(SysMenuLayer.order_num)
     # 应用查询
     # menu_list = db.query(SysMenu).filter(
@@ -241,7 +250,7 @@ async def get_list(
             "remark": menu.remark,
             "createTime": menu.create_time.strftime('%Y-%m-%d %H:%M:%S') if menu.create_time else '',
             "children": [] , # 递归调用以获取子菜单
-            # "layer_template":menu.layer_template
+            "ZT":[i for i in menu.layer_template.split(';') if i != '']  if menu.layer_template else []
         } for menu in menu_list]
 
 
@@ -288,7 +297,7 @@ async def get_list(
             "remark": menu.remark,
             "createTime": menu.create_time.strftime('%Y-%m-%d %H:%M:%S') if menu.create_time else '',
             "children": [],  # 递归调用以获取子菜单
-            # "layer_template":menu.layer_template
+            "ZT":[i for i in menu.layer_template.split(';') if i != '']  if menu.layer_template else []
         }
 
     return {
@@ -312,7 +321,7 @@ async def create(
         # 开始事务
         # db.begin()
 
-
+        layer_template = ';'+';'.join(body['ZT'])+';'
         # 创建新的菜单层,此时还不能使用new_menu.menu_id,因为它还没有被赋值
         new_menu_layer = SysMenuLayer(
             menu_name=body['menuName'],
@@ -329,7 +338,7 @@ async def create(
             # perms=body['perms'],
             # query_param=body['queryParam'],
             create_by=user_id,
-            # layer_template=body['layer_template']
+            layer_template=layer_template
         )
         db.add(new_menu_layer)
 
@@ -402,8 +411,9 @@ async def update(
             menu.status = body['status']
         # if 'layer_visible' in body:
         #     menu.layer_visible = body['layerVisible']
-        # if 'layer_template' in body:
-        #     menu.layer_template = body['layer_template']
+        if 'ZT' in body:
+            layer_template = ';' + ';'.join(body['ZT']) + ';'
+            menu.layer_template = layer_template
         
         menu.update_by = user_id
         menu.update_time = datetime.now()