## 2026-07-14 修复 Dashboard 统计数据问题
### 问题描述
用户反馈 `/shop/dashboard` 页面所有统计数据都显示为 0,包括用户总数、订单总数、总营业额、运行天数、今日数据概况等。
### 修复内容
#### 1. 修复 `src/store/modules/statistics.ts`
- 添加了 `todaySales`、`todayOrders`、`todayUsers` 从 `cmsStatistics` 表数据中提取的逻辑
- 在 `fetchStatistics` 中传入 `page: 1, limit: 1` 参数,减少不必要的数据传输
- 确保在没有 `cmsStatistics` 记录时,仍然能使用基础统计数据(用户总数、订单总数、总销售额)
#### 2. 修复 `src/views/shop/dashboard/index.vue`
- 将 `coreStats`、`todayStats`、`todoItems` 从 `reactive` 改为 `computed`,确保数据响应式更新
- 修复了今日数据使用错误来源的问题:
- 之前:`todayStats.salesAmount = totalSales.value`(使用总销售额作为今日销售额)
- 现在:`todayStats.salesAmount = todaySales.value`(使用真正的今日销售额)
- 添加了从 API 获取待处理事项数据的逻辑:
- 待发货订单:`statusFilter: 1` 查询
- 退款/售后:`statusFilter: 6` 查询
- 今日订单数:通过 `createTimeStart` 和 `createTimeEnd` 查询
### 注意事项
如果后端 `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`
- 订单列表商品图片列 `` 改为 ``
### 待办
- 用户提到后端也需要此方法,但当前工作区只有前端代码,后端实现需在后端项目补充。