feat: 统一后端分页查询与前端服务层适配

后端新增通用分页模块,为报销单、员工、预算、agent 资产等
端点统一接入分页参数和游标查询,优化 repository 层分页实
现,前端服务层适配分页响应结构,完善预算图表和全局样式,
优化侧边栏和企业选择器组件,引入 Element Plus 插件注册。
This commit is contained in:
caoxiaozhu
2026-05-29 14:11:06 +08:00
parent e080105f9f
commit 678f64d772
43 changed files with 1863 additions and 378 deletions

View File

@@ -0,0 +1,39 @@
from __future__ import annotations
from sqlalchemy.orm import Session
from app.core.logging import get_logger
from app.schemas.employee import EmployeeRead
from app.services.employee import EmployeeService
from app.services.pagination import PageResult
logger = get_logger("app.services.employee")
class EmployeePaginationService:
def __init__(self, db: Session) -> None:
self.service = EmployeeService(db)
def list_employees_page(
self,
*,
status: str | None = None,
keyword: str | None = None,
page: int | None,
page_size: int | None,
) -> PageResult[EmployeeRead]:
self.service.ensure_directory_ready()
result = self.service.repository.list_page(
status=status,
keyword=keyword,
page=page,
page_size=page_size,
)
logger.info(
"Listed employees page (count=%d, total=%d, page=%d, page_size=%d)",
len(result.items),
result.total,
result.page,
result.page_size,
)
return result.map(self.service._serialize_employee)