requirements.md 3.1 KB

Requirements Document

Introduction

实现工作记录(Work Records)的后端分页功能。当前系统一次性加载所有工作记录数据,在数据量大时会导致性能问题和内存占用过高。需要改为真正的后端分页,每次只从数据库获取当前页的数据。

Glossary

  • Work_Record_Service: 后端工作记录服务,负责处理工作记录的CRUD操作和查询
  • Work_Record_API: 前端调用的工作记录API接口
  • Pagination: 分页机制,包含页码(page)、每页数量(page_size)、总数(total)等信息
  • Backend_Pagination: 后端分页,数据库层面的分页查询,只返回当前页数据
  • Frontend_Pagination: 前端分页,所有数据加载到前端后在客户端进行分页显示

Requirements

Requirement 1: 后端分页查询

User Story: 作为系统用户,我希望工作记录列表支持后端分页,以便在数据量大时也能快速加载和浏览数据。

Acceptance Criteria

  1. WHEN 前端请求工作记录列表时,THE Work_Record_API SHALL 接受 page 和 page_size 参数
  2. WHEN page 参数未提供时,THE Work_Record_Service SHALL 默认使用第1页
  3. WHEN page_size 参数未提供时,THE Work_Record_Service SHALL 默认使用每页20条
  4. WHEN 执行分页查询时,THE Work_Record_Service SHALL 只从数据库获取当前页的数据
  5. THE Work_Record_API SHALL 返回分页元数据,包含 total(总记录数)、page(当前页)、page_size(每页数量)、total_pages(总页数)

Requirement 2: 分页与筛选条件组合

User Story: 作为系统用户,我希望在使用筛选条件时分页功能仍然正常工作,以便精确查找特定记录。

Acceptance Criteria

  1. WHEN 同时提供分页参数和筛选条件(person_id、date、year/month、is_settled)时,THE Work_Record_Service SHALL 先应用筛选条件再进行分页
  2. WHEN 筛选条件改变时,THE Work_Record_Service SHALL 返回筛选后数据的正确总数
  3. THE Work_Record_Service SHALL 保持现有的排序规则(按日期降序、ID升序)

Requirement 3: 前端分页组件适配

User Story: 作为系统用户,我希望分页控件能正确显示总数和页码,以便了解数据规模并快速跳转。

Acceptance Criteria

  1. WHEN 后端返回分页数据时,THE Work_Record_List SHALL 使用返回的 total 值更新分页组件
  2. WHEN 用户切换页码或每页数量时,THE Work_Record_List SHALL 向后端发送新的分页参数请求数据
  3. WHEN 筛选条件改变时,THE Work_Record_List SHALL 重置到第1页并重新请求数据

Requirement 4: 分页参数边界处理

User Story: 作为系统开发者,我希望系统能正确处理异常的分页参数,以保证系统稳定性。

Acceptance Criteria

  1. IF page 参数小于1,THEN THE Work_Record_Service SHALL 使用第1页
  2. IF page_size 参数小于1或大于100,THEN THE Work_Record_Service SHALL 使用默认值20
  3. IF 请求的页码超出总页数,THE Work_Record_Service SHALL 返回空数据列表和正确的分页元数据