|
@@ -533,4 +533,73 @@ async def delete(
|
|
|
db.rollback()
|
|
|
if str(e)=='':
|
|
|
e = detail
|
|
|
- raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=str(e))
|
|
|
+ raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=str(e))
|
|
|
+
|
|
|
+
|
|
|
+@router.get('/layer_list')
|
|
|
+async def get_list(
|
|
|
+ # request: Request,
|
|
|
+ menuName: str = Query(None, max_length=100),
|
|
|
+ status: str = Query(None, max_length=100),
|
|
|
+ db: Session = Depends(get_db),
|
|
|
+ body = Depends(remove_xss_json),
|
|
|
+ user_id = Depends(valid_access_token)
|
|
|
+):
|
|
|
+ query = db.query(SysMenuLayer)
|
|
|
+ query = query.filter(SysMenuLayer .del_flag != '2')
|
|
|
+ if menuName:
|
|
|
+ query = query.filter(SysMenuLayer.menu_name.like(f'%{menuName}%'))
|
|
|
+ if status:
|
|
|
+ query = query.filter(SysMenuLayer.status.like(f'%{status}%'))
|
|
|
+ # 应用查询
|
|
|
+ # menu_list = db.query(SysMenu).filter(
|
|
|
+ # (SysMenu.menu_name.like(f'%{menu_name}%')) ,
|
|
|
+ # (SysMenu.status.like(f'%{status}%'))
|
|
|
+ # ).all()
|
|
|
+ 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]
|
|
|
+
|
|
|
+ # 构建分页响应
|
|
|
+ # pagination_info = {
|
|
|
+ # "total": total_count,
|
|
|
+ # "page_num": page_num,
|
|
|
+ # "page_size": page_size,
|
|
|
+ # "total_pages": (total_count + page_size - 1) // page_size # 计算总页数
|
|
|
+ # }
|
|
|
+
|
|
|
+ return {
|
|
|
+ "code": 200,
|
|
|
+ "data": menu_list_dict,
|
|
|
+ # 'pages': page_num, # 总页数
|
|
|
+ # 'currentPage': page_num, # 当前页数
|
|
|
+ # # 'current':current,
|
|
|
+ # # 'total' : total,
|
|
|
+ # 'total': total_count, # 总数据量
|
|
|
+ # # 'size':size,
|
|
|
+ # 'pageSize': page_size, # 页码
|
|
|
+ # {
|
|
|
+ # "items": menu_list_dict,
|
|
|
+ # "pagination": pagination_info
|
|
|
+ # },
|
|
|
+ "msg": "操作成功"
|
|
|
+ }
|