|
@@ -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()
|