- 将图片显示统一替换为 getCompressedImageUrl 函数处理压缩 - 覆盖 35 个文件,包括 4 个组件和 31 个页面 - 主要组件:LazyImage、ProductCard、OrderCard、SkuSelector 内部自动压缩图片 - 主要页面:购物车、订单、积分、活动、拼团、秒杀、收藏、浏览历史等 - 跳过用户头像、二维码、商品详情大图及所有 Taro.previewImage 调用 - 调整压缩默认宽度为 300,保持质量90,启用压缩功能
7.2 KiB
7.2 KiB
2026-07-06 工作日志
修复收藏列表页面空白问题
- 文件:
src/api/shop/shopGoodsFavorite/index.ts - 问题:
listShopGoodsFavorite和pageShopGoodsFavorite使用request.get(默认returnRaw: true),返回完整{ code, message, data }对象而非业务数据,页面拿到对象当数组用导致list.length为undefined,始终显示空状态 - 修复: 改为与同文件
addShopGoodsFavorite等函数一致的模式 — 接收ApiResult<T>,检查res.code === 0后返回res.data - 注意:
src/pages/favorite-list.tsx是src/pages/user/favorite-list/index.tsx的重复文件,内容完全一样
修复领券中心页面 SQL 报错
- 错误:
Unknown column 'venue_type' in 'field list' - 根因: 后端运行中的
ShopCoupon实体类包含venue_type、venue_id、use_count、use_duration字段,但数据库表shop_coupon缺少这 4 列 - 后端项目路径:
/Users/gxwebsoft/JAVA/guilixu-java(实际运行项目) - 修复内容:
- 更新后端实体类
ShopCoupon.java,补充receiveTarget、receiveUserIds、venueType、venueId、useCount、useDuration字段(源码之前缺失,与运行时版本对齐) - 将
enabled字段从Boolean改为Integer,解决 Jackson 反序列化"1"失败 - 修正
ShopCouponController.page()中expire_type查询条件:0/1改为10/20(与数据库实际枚举值一致) - 生成数据库迁移 SQL:
src/main/resources/sql/shop_coupon_add_venue_fields.sql
- 更新后端实体类
- 需执行: 重新编译部署后端
补充商品数据解决微信审核驳回
背景
微信小程序审核被驳回:「积分商城」页面无具体运营内容。根本原因是 tenant_id=10611(鑫龙家电)下没有任何商品分类和商品数据。
数据创建
通过 Python + pymysql 直连 MySQL 数据库(47.119.165.234:13308/modules),为 tenant 10611 创建:
- 5 个一级分类:大家电、厨房电器、生活电器、个护健康、智能设备
- 15 个二级分类:冰箱、洗衣机、空调、电视、电饭煲、微波炉、抽油烟机、吸尘器、电风扇、加湿器、电动牙刷、理发器、智能音箱、智能门锁、智能手表
- 34 个商品(全部 status=0 上架):
- 每个分类 2-3 个商品
- 包含真实品牌名(美的、海尔、格力、小米、华为等)、型号、规格
- 三档价格:price(到手价)、sale_price(市场价划线)、dealer_price(VIP 价)
- 12 个商品标记为推荐(recommend=1)
- 图片复用 oss.wsdns.cn 已有图片 URL
- 商品详情为 HTML 格式,含商品描述和图片
- 轮播图字段(files)为 JSON 数组格式
- 分类 count 字段已同步更新
注意事项
- 图片是复用其他租户的商品图片,后续可替换为真实商品图
- 商品数据为模拟数据,用于通过审核,后续可在后台管理系统中编辑替换
修复门店商品管理页 Tab 标签不一致
- 文件:
src/pages/store/goods/index.tsx - 问题: 商品状态 status=0 在后端定义是「已上架」,但页面 Tab 标签写的是「出售中」,与商品状态标签文字不一致
- 修复: Tab「出售中」→「已上架」,让 Tab 标签与商品状态文字保持一致
- 附带修复:
src/api/shop/shopGoods/model/index.ts中ShopGoodsParam.status注释从「0上架 1下架」改为「0上架 1待上架 2待审核 3审核不通过」
门店商品管理页编辑弹窗补充会员价字段
- 文件:
src/pages/store/goods/index.tsx - 问题: 编辑弹窗只有到手价和市场价,缺少会员价(dealerPrice)输入框
- 修复:
editFormstate 新增dealerPrice: ''openEditModal中填充dealerPrice: goods.dealerPrice || ''- 表单 UI 在市场价和库存之间新增会员价输入框
submitEdit提交时携带dealerPrice
修复门店商品管理页选择分类需点击两次才生效
- 文件:
src/pages/store/goods/index.tsx - 问题:
handleSelectCategory中先setSelectedCategory再立即调用loadGoods,但loadGoods通过闭包读取到的selectedCategory仍是旧值,导致第一次点击实际用的是上次选中的分类 - 修复:
loadGoods增加可选参数categoryId,handleSelectCategory选择分类后直接把新的cat?.categoryId传入loadGoods,避免闭包取到旧状态
门店商品管理页添加图片上传/更换功能
- 文件:
src/pages/store/goods/index.tsx - 问题: 编辑弹窗只能修改价格库存等字段,缺少商品图片上传和更换功能
- 修复:
- 引入
uploadFilefrom@/api/system/file - 新增
uploadingImage状态追踪上传进度 - 新增
handleUploadImage函数:调用uploadFile()上传图片,获取返回的path更新editGoods.image - 编辑弹窗商品信息区:图片改为可点击触发上传,蒙层显示「更换」/「上传中...」,无图时显示照相机占位符
submitEdit提交时携带editGoods.image保存新图片
- 引入
门店商品管理页添加轮播图上传/删除功能
- 文件:
src/pages/store/goods/index.tsx - 问题: 编辑弹窗缺少轮播图(
files字段)管理能力;实际files为对象数组[{uid,url,status}],首次实现只按字符串数组解析导致图片无法显示 - 修复:
editForm新增files状态,元素为{ uid?, url, status? }对象openEditModal解析goods.files:兼容对象数组[{uid,url,status}]、字符串数组["url"]、逗号分隔字符串三种格式- 新增
handleAddBanner上传新轮播图(生成{ uid: file.id, url, status: 'done' }),handleRemoveBanner删除指定位置轮播图 - 编辑弹窗新增轮播图区域:显示现有图片+删除按钮,底部「上传」入口
submitEdit提交时将files数组JSON.stringify后保存
新增图片压缩工具函数
- 文件:
src/utils/image.ts(新建) - 函数:
getCompressedImageUrl(url, options?)— 给 OSS 图片 URL 拼接阿里云图片处理参数 - 默认参数:
width=750, quality=90, enabled=true - 安全处理: 空 URL 返回空串、已含
x-oss-process不重复拼接、根据已有 query 参数自动选?/&分隔符 - 使用约定: 列表/卡片等缩略图场景使用此函数;预览大图(
Taro.previewImage)直接用原 URL,不调用此函数
全项目应用 getCompressedImageUrl
- 修改范围: 35 个文件(4 个组件 + 31 个页面文件)
- 组件: LazyImage、ProductCard、OrderCard、SkuSelector — 组件内部自动压缩
- 页面: shop/cart/checkout/category/index/seckill-list/group-buy-list/group-buy-detail, order/detail/evaluate/evaluate-detail/after-sale-, order-list, user/favorite-list/history-list/benefit-, points/, store/goods/orders, index/index/article-list, activity/event/, group-buy-list/detail, seckill-list/detail, history-list, favorite-list
- 跳过(不压缩): 头像(user/user, user/member, user/profile, user/index, user/team, store/center)、二维码(share, user/promotion)、商品详情大图/轮播(shop/product-detail, shop/seckill-detail)、所有 Taro.previewImage 调用