|
@@ -2,6 +2,7 @@
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
from fastapi import APIRouter, Request, Depends, Query, HTTPException, status
|
|
|
+from fastapi.responses import JSONResponse
|
|
|
from common.security import valid_access_token
|
|
|
from pydantic import BaseModel
|
|
|
from database import get_db
|
|
@@ -70,6 +71,9 @@ async def getRouters(request: Request, db: Session = Depends(get_db),
|
|
|
query = db.query(SysMenuLayer)
|
|
|
query = query.filter_by(parent_id=0)
|
|
|
query = query.filter(SysMenuLayer.del_flag != '2')
|
|
|
+ query = query.filter(SysMenuLayer.status != '1')
|
|
|
+ query = query.order_by(SysMenuLayer.order_num)
|
|
|
+
|
|
|
menus =query.all() # 顶级菜单
|
|
|
|
|
|
# 递归函数用于构建树形结构
|
|
@@ -108,6 +112,8 @@ async def getRouters(request: Request, db: Session = Depends(get_db),
|
|
|
query = db.query(SysMenuLayer)
|
|
|
query = query.filter_by(parent_id=menu.menu_id)
|
|
|
query = query.filter(SysMenuLayer.del_flag != '2')
|
|
|
+ query = query.filter(SysMenuLayer.status != '1')
|
|
|
+ query = query.order_by(SysMenuLayer.order_num)
|
|
|
# children_menus = db.query(SysMenu).filter_by(parent_id=menu.menu_id).all()
|
|
|
children_menus = query.all()
|
|
|
menu_data.children = build_menu_tree(children_menus, menu)
|
|
@@ -162,6 +168,7 @@ async def get_list(
|
|
|
query = query.filter(SysMenuLayer.menu_type=='T')
|
|
|
if status:
|
|
|
query = query.filter(SysMenuLayer.status==status)
|
|
|
+ query = query.order_by(SysMenuLayer.order_num)
|
|
|
# 应用查询
|
|
|
# menu_list = db.query(SysMenu).filter(
|
|
|
# (SysMenu.menu_name.like(f'%{menu_name}%')) ,
|
|
@@ -176,18 +183,19 @@ async def get_list(
|
|
|
"orderNum": menu.order_num,
|
|
|
"path": menu.path,
|
|
|
"component": menu.component,
|
|
|
- "queryParam": menu.query_param,
|
|
|
- "isFrame": str(menu.is_frame),
|
|
|
- "isCache": str(menu.is_cache),
|
|
|
+ # "queryParam": menu.query_param,
|
|
|
+ # "isFrame": str(menu.is_frame),
|
|
|
+ # "isCache": str(menu.is_cache),
|
|
|
"menuType": menu.menu_type,
|
|
|
- "layerVisible": menu.layer_visible,
|
|
|
+ # "layerVisible": menu.layer_visible,
|
|
|
"status": menu.status,
|
|
|
- "perms": menu.perms,
|
|
|
+ # "perms": menu.perms,
|
|
|
"icon": menu.icon,
|
|
|
- "createDept": menu.create_dept,
|
|
|
+ # "createDept": menu.create_dept,
|
|
|
"remark": menu.remark,
|
|
|
"createTime": menu.create_time.strftime('%Y-%m-%d %H:%M:%S') if menu.create_time else '',
|
|
|
- "children": [] # 递归调用以获取子菜单
|
|
|
+ "children": [] , # 递归调用以获取子菜单
|
|
|
+ # "layer_template":menu.layer_template
|
|
|
} for menu in menu_list]
|
|
|
|
|
|
|
|
@@ -222,19 +230,19 @@ async def get_list(
|
|
|
"orderNum": menu.order_num,
|
|
|
"path": menu.path,
|
|
|
"component": menu.component,
|
|
|
- "queryParam": menu.query_param,
|
|
|
- "isFrame": str(menu.is_frame),
|
|
|
- "isCache": str(menu.is_cache),
|
|
|
+ # "queryParam": menu.query_param,
|
|
|
+ # "isFrame": str(menu.is_frame),
|
|
|
+ # "isCache": str(menu.is_cache),
|
|
|
"menuType": menu.menu_type,
|
|
|
- "layerVisible": menu.layer_visible,
|
|
|
+ # "layerVisible": menu.layer_visible,
|
|
|
"status": menu.status,
|
|
|
- "perms": menu.perms,
|
|
|
+ # "perms": menu.perms,
|
|
|
"icon": menu.icon,
|
|
|
- "createDept": menu.create_dept,
|
|
|
+ # "createDept": menu.create_dept,
|
|
|
"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
|
|
|
+ # "layer_template":menu.layer_template
|
|
|
}
|
|
|
|
|
|
return {
|
|
@@ -265,17 +273,17 @@ async def create(
|
|
|
parent_id=body['parentId'],
|
|
|
order_num=body['orderNum'],
|
|
|
path=body['path'],
|
|
|
- is_frame=int(body['isFrame']),
|
|
|
- is_cache=int(body['isCache']),
|
|
|
+ # is_frame=int(body['isFrame']),
|
|
|
+ # is_cache=int(body['isCache']),
|
|
|
menu_type=body['menuType'],
|
|
|
- layer_visible=body['layerVisible'],
|
|
|
+ # layer_visible=body['layerVisible'],
|
|
|
status=body['status'],
|
|
|
icon=body['icon'],
|
|
|
component=body['component'],
|
|
|
- perms=body['perms'],
|
|
|
- query_param=body['queryParam'],
|
|
|
+ # perms=body['perms'],
|
|
|
+ # query_param=body['queryParam'],
|
|
|
create_by=user_id,
|
|
|
- layer_template=body['layer_template']
|
|
|
+ # layer_template=body['layer_template']
|
|
|
)
|
|
|
db.add(new_menu_layer)
|
|
|
|
|
@@ -326,10 +334,10 @@ async def update(
|
|
|
menu.component = body['component']
|
|
|
if 'icon' in body:
|
|
|
menu.icon = body['icon']
|
|
|
- if 'isCache' in body:
|
|
|
- menu.is_cache = body['isCache']
|
|
|
- if 'isFrame' in body:
|
|
|
- menu.is_frame = body['isFrame']
|
|
|
+ # if 'isCache' in body:
|
|
|
+ # menu.is_cache = body['isCache']
|
|
|
+ # if 'isFrame' in body:
|
|
|
+ # menu.is_frame = body['isFrame']
|
|
|
if 'menuName' in body:
|
|
|
menu.menu_name = body['menuName']
|
|
|
if 'menuType' in body:
|
|
@@ -340,16 +348,16 @@ async def update(
|
|
|
menu.parent_id = body['parentId']
|
|
|
if 'path' in body:
|
|
|
menu.path = body['path']
|
|
|
- if 'perms' in body:
|
|
|
- menu.perms = body['perms']
|
|
|
- if 'queryParam' in body:
|
|
|
- menu.query_param = body['queryParam']
|
|
|
+ # if 'perms' in body:
|
|
|
+ # menu.perms = body['perms']
|
|
|
+ # if 'queryParam' in body:
|
|
|
+ # menu.query_param = body['queryParam']
|
|
|
if 'status' in body:
|
|
|
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 'layer_visible' in body:
|
|
|
+ # menu.layer_visible = body['layerVisible']
|
|
|
+ # if 'layer_template' in body:
|
|
|
+ # menu.layer_template = body['layer_template']
|
|
|
|
|
|
menu.update_by = user_id
|
|
|
menu.update_time = datetime.now()
|
|
@@ -384,19 +392,6 @@ async def delete(
|
|
|
user_id = Depends(valid_access_token)
|
|
|
):
|
|
|
try:
|
|
|
- db.begin()
|
|
|
- query = db.query(SysMenu)
|
|
|
- query = query.filter(SysMenu.menu_id == menu_id)
|
|
|
- query = query.filter(SysMenu.del_flag != '2')
|
|
|
-
|
|
|
- menu_to_delete =query.first()
|
|
|
- if not menu_to_delete:
|
|
|
- detail = "菜单不存在"
|
|
|
- raise HTTPException(status_code=404, detail="菜单不存在")
|
|
|
- menu_to_delete.create_by = user_id
|
|
|
- menu_to_delete.del_flag='2'
|
|
|
- # db.delete(menu_to_delete)
|
|
|
- # db.commit()
|
|
|
|
|
|
|
|
|
queryLayer = db.query(SysMenuLayer)
|
|
@@ -406,7 +401,7 @@ async def delete(
|
|
|
menu_to_delete = queryLayer.first()
|
|
|
if not menu_to_delete:
|
|
|
detail = "菜单不存在"
|
|
|
- raise HTTPException(status_code=404, detail="菜单不存在")
|
|
|
+ return JSONResponse(status_code=404,content={"code":404,"msg":"该id不存在"})
|
|
|
menu_to_delete.update_by = user_id
|
|
|
menu_to_delete.update_time = datetime.now()
|
|
|
menu_to_delete.del_flag = '2'
|
|
@@ -423,6 +418,4 @@ async def delete(
|
|
|
traceback.print_exc()
|
|
|
|
|
|
db.rollback()
|
|
|
- if str(e)=='':
|
|
|
- e = detail
|
|
|
- raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=str(e))
|
|
|
+ return JSONResponse(status_code=404, content={"code": 404, "msg": str(e)})
|