feat: 统一后端分页查询与前端服务层适配
后端新增通用分页模块,为报销单、员工、预算、agent 资产等 端点统一接入分页参数和游标查询,优化 repository 层分页实 现,前端服务层适配分页响应结构,完善预算图表和全局样式, 优化侧边栏和企业选择器组件,引入 Element Plus 插件注册。
This commit is contained in:
@@ -14,6 +14,7 @@ from app.api.deps import (
|
||||
require_rule_editor_user,
|
||||
require_rule_reviewer_user,
|
||||
)
|
||||
from app.api.pagination import PageNumber, PageSize, page_payload, wants_page
|
||||
from app.db.session import get_session_factory
|
||||
from app.schemas.agent_asset import (
|
||||
AgentAssetCreate,
|
||||
@@ -43,7 +44,7 @@ from app.schemas.agent_asset import (
|
||||
AgentAssetVersionRead,
|
||||
AgentAssetVersionTimelineItemRead,
|
||||
)
|
||||
from app.schemas.common import ErrorResponse
|
||||
from app.schemas.common import ErrorResponse, PaginatedResponse
|
||||
from app.services.agent_assets import AgentAssetService
|
||||
from app.services.risk_rule_generation_jobs import RiskRuleGenerationJobService
|
||||
|
||||
@@ -94,7 +95,7 @@ def _complete_risk_rule_generation_task(
|
||||
|
||||
@router.get(
|
||||
"",
|
||||
response_model=list[AgentAssetListItem],
|
||||
response_model=list[AgentAssetListItem] | PaginatedResponse[AgentAssetListItem],
|
||||
summary="查询 Agent 资产列表",
|
||||
description="按资产类型、状态、领域和关键字筛选规则、技能、MCP 与任务资产。",
|
||||
)
|
||||
@@ -116,8 +117,22 @@ def list_agent_assets(
|
||||
str | None,
|
||||
Query(description="资产编码、名称关键字模糊查询。"),
|
||||
] = None,
|
||||
) -> list[AgentAssetListItem]:
|
||||
return AgentAssetService(db).list_assets(
|
||||
page: PageNumber = None,
|
||||
page_size: PageSize = None,
|
||||
) -> list[AgentAssetListItem] | PaginatedResponse[AgentAssetListItem]:
|
||||
service = AgentAssetService(db)
|
||||
if wants_page(page, page_size):
|
||||
return page_payload(
|
||||
service.list_assets_page(
|
||||
asset_type=asset_type,
|
||||
status=status_value,
|
||||
domain=domain,
|
||||
keyword=keyword,
|
||||
page=page,
|
||||
page_size=page_size,
|
||||
)
|
||||
)
|
||||
return service.list_assets(
|
||||
asset_type=asset_type,
|
||||
status=status_value,
|
||||
domain=domain,
|
||||
|
||||
Reference in New Issue
Block a user