Files
guilixu-admin/.workbuddy/memory/2026-07-14.md
赵忠林 8918daa6a1 feat(shopOrder): 支持订单商品图片OSS压缩及新增支付方式
- 新增utils/image.ts,提供图片URL补全及OSS压缩参数拼接功能
- 订单列表商品图片列改为使用压缩后图片URL,提高加载性能
- shopOrder相关支付类型注释更新,新增银联支付、POS机支付等多种方式
- 更新支付组件及订单信息界面,新增并显示银联支付、POS机支付、免费、积分支付、货到付款等支付标签
- 订单支付状态标签支持区分“已付款”和“待收货付款”状态
- shopOrder数据model中支付类型及代付类型描述同步更新
- 修复shop utils中payType标签获取的边界条件错误
- 注释掉dashboard待办事项中优惠券使用项,暂停显示该统计数据
2026-07-14 19:47:17 +08:00

2.9 KiB
Raw Blame History

2026-07-14 修复 Dashboard 统计数据问题

问题描述

用户反馈 /shop/dashboard 页面所有统计数据都显示为 0包括用户总数、订单总数、总营业额、运行天数、今日数据概况等。

修复内容

1. 修复 src/store/modules/statistics.ts

  • 添加了 todaySalestodayOrderstodayUserscmsStatistics 表数据中提取的逻辑
  • fetchStatistics 中传入 page: 1, limit: 1 参数,减少不必要的数据传输
  • 确保在没有 cmsStatistics 记录时,仍然能使用基础统计数据(用户总数、订单总数、总销售额)

2. 修复 src/views/shop/dashboard/index.vue

  • coreStatstodayStatstodoItemsreactive 改为 computed,确保数据响应式更新
  • 修复了今日数据使用错误来源的问题:
    • 之前:todayStats.salesAmount = totalSales.value(使用总销售额作为今日销售额)
    • 现在:todayStats.salesAmount = todaySales.value(使用真正的今日销售额)
  • 添加了从 API 获取待处理事项数据的逻辑:
    • 待发货订单:statusFilter: 1 查询
    • 退款/售后:statusFilter: 6 查询
    • 今日订单数:通过 createTimeStartcreateTimeEnd 查询

注意事项

如果后端 cmsStatistics 表中没有今日数据todaySales、todayOrders、todayUsers今日数据仍会显示为 0。建议

  1. 检查后端是否有定时任务更新 cmsStatistics
  2. 或手动触发统计数据更新
  3. 检查浏览器控制台是否有 API 调用失败的错误日志

2026-07-14 Dashboard 标题改用 tenantName + 订单提醒同步刷新

Dashboard 标题

  • src/views/shop/dashboard/index.vue 欢迎横幅标题从 siteStore.appName 改为 userStore.info?.tenantName,显示当前登录用户所属租户名称。

订单新订单语音提醒同步刷新

  • src/views/shop/shopOrder/useOrderNotify.ts 增加 onNewOrder 回调参数,检测到新订单触发提醒(叮声+语音)时同时调用回调。
  • src/views/shop/shopOrder/index.vue 调用 useOrderNotify({ onNewOrder: () => reload() }),使新订单提醒时自动刷新表格数据,保持数据同步。

2026-07-14 订单列表商品图片接入 OSS 压缩

改动内容

  • 参考 /Users/gxwebsoft/VUE/xinlong-shop-taro/src/utils/image.ts,在管理后台新增 src/utils/image.ts
    • ensureFullUrl(url):补全 OSS 域名为完整 URL
    • getCompressedImageUrl(url, options?):拼接 x-oss-process=image/resize,w_${width}/quality,Q_${quality} 压缩参数
  • src/views/shop/shopOrder/index.vue
    • 引入 getCompressedImageUrl
    • 订单列表商品图片列 <a-avatar :src="item.image" /> 改为 <a-avatar :src="getCompressedImageUrl(item.image)" />

待办

  • 用户提到后端也需要此方法,但当前工作区只有前端代码,后端实现需在后端项目补充。