feat: 统一后端分页查询与前端服务层适配
后端新增通用分页模块,为报销单、员工、预算、agent 资产等 端点统一接入分页参数和游标查询,优化 repository 层分页实 现,前端服务层适配分页响应结构,完善预算图表和全局样式, 优化侧边栏和企业选择器组件,引入 Element Plus 插件注册。
This commit is contained in:
39
server/src/app/services/employee_pagination.py
Normal file
39
server/src/app/services/employee_pagination.py
Normal 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)
|
||||
Reference in New Issue
Block a user