feat: 统一后端分页查询与前端服务层适配
后端新增通用分页模块,为报销单、员工、预算、agent 资产等 端点统一接入分页参数和游标查询,优化 repository 层分页实 现,前端服务层适配分页响应结构,完善预算图表和全局样式, 优化侧边栏和企业选择器组件,引入 Element Plus 插件注册。
This commit is contained in:
@@ -37,6 +37,7 @@ from app.services.agent_asset_spreadsheet_helpers import AgentAssetSpreadsheetHe
|
||||
from app.services.agent_asset_timeline import AgentAssetTimelineMixin
|
||||
from app.services.agent_foundation import AgentFoundationService
|
||||
from app.services.audit import AuditLogService
|
||||
from app.services.pagination import PageResult
|
||||
from app.services.risk_rule_score_backfill import backfill_missing_risk_rule_score
|
||||
|
||||
logger = get_logger("app.services.agent_assets")
|
||||
@@ -75,6 +76,32 @@ class AgentAssetService(
|
||||
version_stats = self._collect_version_stats(assets)
|
||||
return [self._serialize_list_item(asset, version_stats.get(asset.id)) for asset in assets]
|
||||
|
||||
def list_assets_page(
|
||||
self,
|
||||
*,
|
||||
asset_type: str | None = None,
|
||||
status: str | None = None,
|
||||
domain: str | None = None,
|
||||
keyword: str | None = None,
|
||||
page: int | None,
|
||||
page_size: int | None,
|
||||
) -> PageResult[AgentAssetListItem]:
|
||||
self._ensure_ready()
|
||||
if asset_type in {None, "", AgentAssetType.RULE.value}:
|
||||
self.sync_platform_risk_rules_from_library()
|
||||
result = self.repository.list_page(
|
||||
asset_type=asset_type,
|
||||
status=status,
|
||||
domain=domain,
|
||||
keyword=keyword,
|
||||
page=page,
|
||||
page_size=page_size,
|
||||
)
|
||||
version_stats = self._collect_version_stats(result.items)
|
||||
return result.map(
|
||||
lambda asset: self._serialize_list_item(asset, version_stats.get(asset.id))
|
||||
)
|
||||
|
||||
def get_asset(self, asset_id: str) -> AgentAssetRead | None:
|
||||
self._ensure_ready()
|
||||
asset = self.repository.get(asset_id)
|
||||
|
||||
Reference in New Issue
Block a user