bec3a6f1b8
- 将专区商品抽屉已关联商品列表的图片src改为压缩URL,减少缩略图体积 - 调整banner图片压缩宽度为300,保证清晰度与加载速度平衡 - 统一调用getCompressedImageUrl方法,无需额外引入 - 优化图片加载性能,提升用户体验
33 lines
2.4 KiB
Markdown
33 lines
2.4 KiB
Markdown
# 2026-08-17 工作日志
|
||
|
||
## 专区销量统计功能(/special/zone)
|
||
- 调研:专区与商品靠 `ShopGoods.section_ids`(逗号串)关联;`ShopOrderGoods` 无 sectionId,有 `goodsId/totalNum/price/payStatus/orderStatus/tenantId`;商品有 `sales` 累计字段。
|
||
- 确认方案:方案B(订单真实成交聚合)+ 列表汇总列 + 独立统计弹窗,指标=销量件数+销售额。
|
||
- 后端 guilixu-java(shop 模块)改动:
|
||
- ShopHomeSection 实体加 salesNum/salesAmount(@TableField(exist=false))
|
||
- 新建 VO:SectionSalesSummaryVO / ShopSectionGoodsRankVO / SectionSalesStatsVO(vo 包)
|
||
- ShopHomeSectionMapper 加 selectSectionSalesSummary(批量)/ selectSectionGoodsRank(TOP50)
|
||
- ShopHomeSectionServiceImpl.pageRel 批量填充汇总 + 新增 getSectionSalesStats
|
||
- ShopHomeSectionController 新增 GET /{id}/stats?start=&end=
|
||
- 口径:payStatus=1 且 orderStatus NOT IN(2,6),tenantId 隔离,时间对应 create_time
|
||
- 前端 guilixu-admin:
|
||
- shopZone API 加 getSectionSalesStats;model 加字段与 VO 类型
|
||
- zone/index.vue 列表加「销量件数」「销售额」列 + 操作列「销量」按钮
|
||
- 新建 SectionSalesStatsModal.vue(时间筛选 + 汇总卡片 + 商品排行)
|
||
- vite build 通过(exit 0)
|
||
- 待办:后端需 maven 编译并部署到 shop-api.websoft.top 才生效(本环境未部署)。
|
||
|
||
## 修复专区商品抽屉分页点击无效
|
||
- 文件:`src/views/special/zone/index.vue`
|
||
- 问题:抽屉里 `a-table` 的 `:pagination` 直接内联写 `{ current: goodsPage, pageSize: goodsPageSize, total: goodsTotal }`,对象属性中的 ref 不会被 Vue 自动解包,Pagination 拿到的是 ref 对象而非 number,导致分页按钮点不动。
|
||
- 修复:
|
||
- 提取 `goodsPagination = computed(() => ({ total: goodsTotal.value, current: goodsPage.value, pageSize: goodsPageSize.value, showSizeChanger: true, onChange: ... }))`
|
||
- `:pagination="goodsPagination"`
|
||
- `onChange` 里 `loadGoods(currentSectionId.value)` 修正为 `.value`
|
||
- 验证:`vite build` 通过(exit 0)。
|
||
|
||
## 专区商品图片走压缩 URL
|
||
- 文件:`src/views/special/zone/index.vue`
|
||
- 改动:专区商品抽屉的已关联商品列表「图片」列,从直接 `:src="text"` 改为 `:src="getCompressedImageUrl(text, { width: 120 })"`,缩小缩略图体积并统一走 OSS 图片处理。
|
||
- 说明:`getCompressedImageUrl` 已导入,无需额外引入。
|