Skip to content

Commit 77d59d3

Browse files
authored
Add schema for the tree data (#796)
1 parent 931d6b2 commit 77d59d3

File tree

5 files changed

+20
-7
lines changed

5 files changed

+20
-7
lines changed

backend/app/admin/api/v1/sys/dept.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
#!/usr/bin/env python3
22
# -*- coding: utf-8 -*-
3-
from typing import Annotated, Any
3+
from typing import Annotated
44

55
from fastapi import APIRouter, Depends, Path, Query, Request
66

7-
from backend.app.admin.schema.dept import CreateDeptParam, GetDeptDetail, UpdateDeptParam
7+
from backend.app.admin.schema.dept import CreateDeptParam, GetDeptDetail, GetDeptTree, UpdateDeptParam
88
from backend.app.admin.service.dept_service import dept_service
99
from backend.common.response.response_schema import ResponseModel, ResponseSchemaModel, response_base
1010
from backend.common.security.jwt import DependsJwtAuth
@@ -27,7 +27,7 @@ async def get_dept_tree(
2727
leader: Annotated[str | None, Query(description='部门负责人')] = None,
2828
phone: Annotated[str | None, Query(description='联系电话')] = None,
2929
status: Annotated[int | None, Query(description='状态')] = None,
30-
) -> ResponseSchemaModel[list[dict[str, Any]]]:
30+
) -> ResponseSchemaModel[list[GetDeptTree]]:
3131
dept = await dept_service.get_tree(request=request, name=name, leader=leader, phone=phone, status=status)
3232
return response_base.success(data=dept)
3333

backend/app/admin/api/v1/sys/menu.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from fastapi import APIRouter, Depends, Path, Query, Request
66

7-
from backend.app.admin.schema.menu import CreateMenuParam, GetMenuDetail, UpdateMenuParam
7+
from backend.app.admin.schema.menu import CreateMenuParam, GetMenuDetail, GetMenuTree, UpdateMenuParam
88
from backend.app.admin.service.menu_service import menu_service
99
from backend.common.response.response_schema import ResponseModel, ResponseSchemaModel, response_base
1010
from backend.common.security.jwt import DependsJwtAuth
@@ -30,7 +30,7 @@ async def get_menu(pk: Annotated[int, Path(description='菜单 ID')]) -> Respons
3030
async def get_menu_tree(
3131
title: Annotated[str | None, Query(description='菜单标题')] = None,
3232
status: Annotated[int | None, Query(description='状体')] = None,
33-
) -> ResponseSchemaModel[list[dict[str, Any]]]:
33+
) -> ResponseSchemaModel[list[GetMenuTree]]:
3434
menu = await menu_service.get_tree(title=title, status=status)
3535
return response_base.success(data=menu)
3636

backend/app/admin/api/v1/sys/role.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
#!/usr/bin/env python3
22
# -*- coding: utf-8 -*-
3-
from typing import Annotated, Any
3+
from typing import Annotated
44

55
from fastapi import APIRouter, Depends, Path, Query
66

7+
from backend.app.admin.schema.menu import GetMenuTree
78
from backend.app.admin.schema.role import (
89
CreateRoleParam,
910
DeleteRoleParam,
@@ -33,7 +34,7 @@ async def get_all_roles() -> ResponseSchemaModel[list[GetRoleDetail]]:
3334
@router.get('/{pk}/menus', summary='获取角色菜单树', dependencies=[DependsJwtAuth])
3435
async def get_role_menu_tree(
3536
pk: Annotated[int, Path(description='角色 ID')],
36-
) -> ResponseSchemaModel[list[dict[str, Any] | None]]:
37+
) -> ResponseSchemaModel[list[GetMenuTree] | None]:
3738
menu = await role_service.get_menu_tree(pk=pk)
3839
return response_base.success(data=menu)
3940

backend/app/admin/schema/dept.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,9 @@ class GetDeptDetail(DeptSchemaBase):
3737
del_flag: bool = Field(description='是否删除')
3838
created_time: datetime = Field(description='创建时间')
3939
updated_time: datetime | None = Field(None, description='更新时间')
40+
41+
42+
class GetDeptTree(GetDeptDetail):
43+
"""获取部门树"""
44+
45+
children: list['GetDeptTree'] | None = Field(None, description='子菜单')

backend/app/admin/schema/menu.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,9 @@ class GetMenuDetail(MenuSchemaBase):
4343
id: int = Field(description='菜单 ID')
4444
created_time: datetime = Field(description='创建时间')
4545
updated_time: datetime | None = Field(None, description='更新时间')
46+
47+
48+
class GetMenuTree(GetMenuDetail):
49+
"""获取菜单树"""
50+
51+
children: list['GetMenuTree'] | None = Field(None, description='子菜单')

0 commit comments

Comments
 (0)