feat(shopGoods): 新增商品置顶功能及批量上下架操作

- 在商品模型中新增 isTop 字段支持置顶状态(1置顶,0不置顶)
- 商品列表新增置顶列,支持列表内联切换置顶状态
- 启用排序号列排序功能,置顶列参与前端排序
- 新增单个商品上架/下架切换接口及批量上下架操作
- 优化商品列表工具栏和选中操作栏,加入批量上架、下架按钮
- 商品分类及图片列表调用 OSS 图片压缩接口处理展示图片
- 新增删除商品导入模板及图片导入模板下载链接与使用说明
- 优化图片压缩工具,新增去除 URL 中 x-oss-process 参数功能,确保调用参数生效
This commit is contained in:
2026-07-24 10:57:23 +08:00
parent 44e416525d
commit e2f6dce7a1
11 changed files with 453 additions and 107 deletions

View File

@@ -0,0 +1,37 @@
-- ============================================================
-- 下架「分类ID = 10332 且 没有图片」的商品
-- ------------------------------------------------------------
-- 约定说明(依据本项目代码 /Users/gxwebsoft/VUE/guilixu-admin
-- 1. 下架 = status = 1项目约定0 上架 / 1 下架,见 shopGoodsEdit.vue 状态 radio
-- 2. 「没有图片」以封面图 image 是否为空判断(封面图为必填项)
-- 3. 已删除商品deleted = 1不参与避免误改
-- 4. 表名/字段名按 snake_case 约定Node + TypeORM 常见);
-- 若你的库列名是驼峰goodsId / categoryId请自行替换
-- 5. 分类 10332 若是父分类、需连同其子分类商品一起处理,
-- 请把 category_id = 10332 改为 category_id IN (10332, 子分类ID...)
-- ============================================================
-- 第一步:先预览,确认影响范围(务必先执行核对,再跑 UPDATE
SELECT goods_id,
name,
image,
status
FROM shop_goods
WHERE category_id = 10332
AND (image IS NULL OR image = '')
AND (deleted = 0 OR deleted IS NULL);
-- 第二步:确认无误后执行下架
UPDATE shop_goods
SET status = 1,
update_time = NOW()
WHERE category_id = 10332
AND (image IS NULL OR image = '')
AND (deleted = 0 OR deleted IS NULL);
-- ------------------------------------------------------------
-- (可选)若你认为「没有图片」应同时要求轮播图也为空,
-- 即封面图和轮播图都没有才算没图,使用下面更严格的条件:
-- AND (image IS NULL OR image = '')
-- AND (files IS NULL OR files = '' OR files = '[]')
-- ------------------------------------------------------------