feat: 支持主列表选择每页条数 (#242)
This commit is contained in:
+14
-3
@@ -322,6 +322,12 @@ type TaskListResult struct {
|
||||
// `[必须]` 底部统计要跟随当前筛选,所以 Counts 和 Rows 用的是**同一个**
|
||||
// filter,见 #19。
|
||||
func ListTasksView(db *sql.DB, filter repository.TaskFilter, requestedPage int) (*TaskListResult, error) {
|
||||
return ListTasksViewWithPageSize(db, filter, requestedPage, DefaultPageSize)
|
||||
}
|
||||
|
||||
// ListTasksViewWithPageSize 按白名单页容量返回任务列表。
|
||||
func ListTasksViewWithPageSize(db *sql.DB, filter repository.TaskFilter, requestedPage, pageSize int) (*TaskListResult, error) {
|
||||
pageSize = NormalizePageSize(pageSize)
|
||||
counts, err := repository.CountTasksByStatus(db, filter)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -330,9 +336,9 @@ func ListTasksView(db *sql.DB, filter repository.TaskFilter, requestedPage int)
|
||||
for _, n := range counts {
|
||||
total += n
|
||||
}
|
||||
totalPages := TotalPages(total)
|
||||
totalPages := TotalPages(total, pageSize)
|
||||
page := ClampPage(requestedPage, totalPages)
|
||||
rows, err := repository.ListTasks(db, filter, PageSize, (page-1)*PageSize)
|
||||
rows, err := repository.ListTasks(db, filter, pageSize, (page-1)*pageSize)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -371,6 +377,11 @@ func taskCreatorText(username string) string {
|
||||
|
||||
// ListTasksViewForUser 在服务端固定当前账号范围,忽略采购员伪造的创建人筛选。
|
||||
func ListTasksViewForUser(db *sql.DB, actor *model.User, filter repository.TaskFilter, creatorValue string, requestedPage int) (*TaskListResult, error) {
|
||||
return ListTasksViewForUserWithPageSize(db, actor, filter, creatorValue, requestedPage, DefaultPageSize)
|
||||
}
|
||||
|
||||
// ListTasksViewForUserWithPageSize 固定账号可见范围后按白名单页容量返回任务。
|
||||
func ListTasksViewForUserWithPageSize(db *sql.DB, actor *model.User, filter repository.TaskFilter, creatorValue string, requestedPage, pageSize int) (*TaskListResult, error) {
|
||||
visibleUserID, err := visibleClientUserID(actor)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -386,7 +397,7 @@ func ListTasksViewForUser(db *sql.DB, actor *model.User, filter repository.TaskF
|
||||
filter.CreatorUserID = creatorValue
|
||||
}
|
||||
}
|
||||
return ListTasksView(db, filter, requestedPage)
|
||||
return ListTasksViewWithPageSize(db, filter, requestedPage, pageSize)
|
||||
}
|
||||
|
||||
// StatusLine 拼底部状态条,形如:
|
||||
|
||||
Reference in New Issue
Block a user