Files
guilixu-admin/.workbuddy/memory/2026-07-24.md
赵忠林 e2f6dce7a1 feat(shopGoods): 新增商品置顶功能及批量上下架操作
- 在商品模型中新增 isTop 字段支持置顶状态(1置顶,0不置顶)
- 商品列表新增置顶列,支持列表内联切换置顶状态
- 启用排序号列排序功能,置顶列参与前端排序
- 新增单个商品上架/下架切换接口及批量上下架操作
- 优化商品列表工具栏和选中操作栏,加入批量上架、下架按钮
- 商品分类及图片列表调用 OSS 图片压缩接口处理展示图片
- 新增删除商品导入模板及图片导入模板下载链接与使用说明
- 优化图片压缩工具,新增去除 URL 中 x-oss-process 参数功能,确保调用参数生效
2026-07-24 10:57:23 +08:00

1.6 KiB
Raw Blame History

2026-07-24 工作日志

shopGoods 商品列表排序机制分析

  • 现状:列表「排序号」列(src/views/shop/shopGoods/index.vue 约 273-279 行)只做展示,未启用 sorter,列表默认也不按 sortNumber 排序(默认排序由后端决定,前端 orders 仅来自「创建时间」列的排序)。
  • 编辑表单里「排序号」是 a-input-number0-9999默认 100且在 rules 里是 必填
  • 已存在类似的布尔开关 recommend列表内联切换index.vue 约 47-58 行),「置顶」可复用同一 UI 模式。
  • 结论倾向:纯排序号在商品多时难用,建议「置顶开关 + 少量置顶项内排序 + 其余按默认(创建时间/销量)」的混合方案,而非完全替换。

已实现:方案 B商品置顶功能

  • 数据模型 src/api/shop/shopGoods/model/index.ts:新增 isTop?: number(置顶 1/不置顶 0
  • 列表 src/views/shop/shopGoods/index.vue
    • 新增「置顶」列,列表内联一键切换(复用 recommend 的 CheckOutlined/CloseOutlined 模式),新增 onTop 处理函数。
    • 「排序号」列开启 sorter: true(之前只展示、不可排序)。
  • 后端迁移脚本 add-is-top-shop-goods.sql:新增 is_top TINYINT 字段;分页默认排序需改为 ORDER BY is_top DESC, sort_number ASC, create_time DESC(后端不在本仓库,需手动改 page 接口 ORDER BY / 放开 orders 白名单)。
  • 注意:置顶真正"排到最前"依赖后端默认排序改动;点击列排序也需后端放开 is_top / sort_number。