feat: 支持主列表选择每页条数 (#242)
This commit is contained in:
@@ -28,8 +28,13 @@ func (h *Handler) PddList(c *gin.Context) {
|
||||
func (h *Handler) renderPddList(c *gin.Context, keyword, statusRaw, pageRaw, message string, importResult *service.PddImportResult) {
|
||||
status := service.ParseCollectStatus(statusRaw)
|
||||
pageNum := service.ParsePage(pageRaw)
|
||||
pageSizeRaw := c.Query("page_size")
|
||||
if pageSizeRaw == "" && c.Request.Method == http.MethodPost {
|
||||
pageSizeRaw = c.PostForm("page_size")
|
||||
}
|
||||
pageSize := service.ParsePageSize(pageSizeRaw)
|
||||
|
||||
result, err := service.ListPddProducts(h.db, keyword, status, pageNum)
|
||||
result, err := service.ListPddProductsWithPageSize(h.db, keyword, status, pageNum, pageSize)
|
||||
if err != nil {
|
||||
fail(c, http.StatusInternalServerError,
|
||||
"读取 PDD 商品列表失败,数据没有被改动。刷新页面重试;一直失败请把这句话报给维护者。")
|
||||
@@ -59,6 +64,7 @@ func (h *Handler) renderPddList(c *gin.Context, keyword, statusRaw, pageRaw, mes
|
||||
if status != "" {
|
||||
values.Set("status", string(status))
|
||||
}
|
||||
values.Set("page_size", strconv.Itoa(pageSize))
|
||||
detailValues := url.Values{}
|
||||
for key, entries := range values {
|
||||
detailValues[key] = append([]string(nil), entries...)
|
||||
@@ -73,7 +79,8 @@ func (h *Handler) renderPddList(c *gin.Context, keyword, statusRaw, pageRaw, mes
|
||||
"HasAnyProducts": result.Total > 0,
|
||||
"IsFiltered": result.IsFiltered,
|
||||
"CurrentPage": result.Page,
|
||||
"Pagination": service.NewPaginationView(result.Page, result.TotalPages, values.Encode()),
|
||||
"Pagination": service.NewPaginationView(result.Page, pageSize, result.TotalPages, values.Encode()),
|
||||
"CurrentPageSize": pageSize,
|
||||
"DetailURL": "/pdd/detail?" + detailValues.Encode(),
|
||||
"AssignableClients": assignableClients,
|
||||
"ImportResult": importResult,
|
||||
@@ -112,7 +119,8 @@ func (h *Handler) PddDetail(c *gin.Context) {
|
||||
"CSRFToken": csrfToken(c),
|
||||
"AssignableClients": assignableClients,
|
||||
"Keyword": c.Query("q"), "StatusFilter": c.Query("status"),
|
||||
"CurrentPage": service.ParsePage(c.Query("page")),
|
||||
"CurrentPage": service.ParsePage(c.Query("page")),
|
||||
"CurrentPageSize": service.ParsePageSize(c.Query("page_size")),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -291,6 +299,7 @@ func (h *Handler) pddRedirect(c *gin.Context, msg string) {
|
||||
if p := c.PostForm("page"); p != "" {
|
||||
params.Set("page", p)
|
||||
}
|
||||
params.Set("page_size", strconv.Itoa(service.ParsePageSize(c.PostForm("page_size"))))
|
||||
if msg != "" {
|
||||
params.Set("msg", msg)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user