后台商品档案:点击表头排序 #18

Merged
lixu merged 1 commits from devin/1782028836-product-sort into main 2026-06-21 16:01:57 +08:00
Owner

概述

商品档案列表支持点击表头排序。点击列头在 升序↑ → 降序↓ → 取消(恢复默认按最近更新)间循环。

可排序列:名称、品牌、条码、品类、状态、质量分。

实现

  • 后端 ListProducts 新增 sort/order 参数;排序列经白名单映射到 SQL 列(防注入),NULLS LAST 并以 updated_at DESC 兜底。
  • GET /api/products?sort=<key>&order=asc|desc
  • 前端 ProductList 表头改为 SortableTh 按钮,带升/降/未排序图标;切换排序时回到第 1 页。

本地 go vet/gofmt/go test 与前端 tsc && vite build 通过。

## 概述 商品档案列表支持点击表头排序。点击列头在 升序↑ → 降序↓ → 取消(恢复默认按最近更新)间循环。 可排序列:名称、品牌、条码、品类、状态、质量分。 ## 实现 - 后端 `ListProducts` 新增 `sort`/`order` 参数;排序列经白名单映射到 SQL 列(防注入),`NULLS LAST` 并以 `updated_at DESC` 兜底。 - `GET /api/products?sort=<key>&order=asc|desc`。 - 前端 `ProductList` 表头改为 `SortableTh` 按钮,带升/降/未排序图标;切换排序时回到第 1 页。 本地 `go vet`/`gofmt`/`go test` 与前端 `tsc && vite build` 通过。
lixu added 1 commit 2026-06-21 16:00:55 +08:00
feat(admin): sortable product list column headers
CI / Go (api) (pull_request) Successful in 11s
CI / Python (ingestion) (pull_request) Successful in 9s
CI / Migrations (postgres) (pull_request) Successful in 14s
241fd38a56
Click a column header (名称/品牌/条码/品类/状态/质量分) to sort asc, click
again for desc, and a third time to clear back to the default
most-recently-updated order. Sort key/direction are whitelisted server-side.

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
lixu merged commit ddda61252b into main 2026-06-21 16:01:57 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lixu/goods#18