feat(shop): 实时修复今日数据及优化商城设置与商品列表展示
- 修复 dashboard 今日数据统计,改为实时计算订单、销售额、用户数与优惠券使用量 - 统计数据写入 cmsStatistics 表,新增 couponUsedCount 状态与 getter - dashboard 页面移除原有按日期查询逻辑,优惠券使用数改为响应式读取 - 商城设置 Logo 上传改为直接调用 OSS 接口上传,移除图片库选择组件 - 新增商品列表中市场价和会员价列,数据为空时显示 "-" - 同步更新商品列表导出功能,包含新增的价格列与列宽配置 - 商品列表商品图片添加 OSS 压缩访问支持 - 调整商品分类搜索框与关键词输入框宽度以优化布局
This commit is contained in:
@@ -35,6 +35,29 @@
|
||||
- `src/views/shop/shopOrder/useOrderNotify.ts` 增加 `onNewOrder` 回调参数,检测到新订单触发提醒(叮声+语音)时同时调用回调。
|
||||
- `src/views/shop/shopOrder/index.vue` 调用 `useOrderNotify({ onNewOrder: () => reload() })`,使新订单提醒时自动刷新表格数据,保持数据同步。
|
||||
|
||||
## 2026-07-14 实时统计 Dashboard 今日数据
|
||||
|
||||
### 问题
|
||||
用户再次反馈 `/shop/dashboard` 的「今日数据概况」与「待处理事项」全部显示为 0,且已确认存在今日订单/用户数据。根本原因是 `cmsStatistics` 统计表未写入今日数据,而前端仍依赖该表读取 todaySales/todayOrders/todayUsers;另外 dashboard 中直接按日期查询时使用了 `YYYY-MM-DD` 格式,缺少时间部分,导致时间范围不匹配。
|
||||
|
||||
### 修复
|
||||
- `src/store/modules/statistics.ts`:
|
||||
- 引入 `dayjs` 与 `listShopOrder`。
|
||||
- 在 `fetchStatistics` 中实时调用 `listShopOrder({ createTimeStart, createTimeEnd })` 获取今日订单列表,直接计算 `todayOrders`、`todaySales`(仅已付款订单)、`couponUsedCount`。
|
||||
- 调用 `pageUsers({ createTimeStart, createTimeEnd })` 获取 `todayUsers`。
|
||||
- 将今日数据同步写入 `cmsStatistics` 表(若存在记录),同时新增 `couponUsedCount` store 状态与 getter。
|
||||
- `src/views/shop/dashboard/index.vue`:
|
||||
- 移除原来使用 `createTimeStart/End: today`(仅日期)查询今日订单并作为优惠券使用数的占位逻辑。
|
||||
- `couponUsedCount` 改为从 `statisticsStore.couponUsedCount` 读取。
|
||||
- 今日销售额使用 `formatMoney` 保留两位小数显示。
|
||||
|
||||
### 验证
|
||||
- `pnpm run build` 成功。
|
||||
- `vue-tsc --noEmit` 在改动文件中未引入新错误。
|
||||
|
||||
### 备注
|
||||
- 待发货/退款仍使用 `statusFilter=1` 与 `statusFilter=6`;若后续出现货到付款订单未计入待发货,需再检查订单 `payStatus` 在后端是否被正确标记为已付款。
|
||||
|
||||
## 2026-07-14 订单列表商品图片接入 OSS 压缩
|
||||
|
||||
### 改动内容
|
||||
@@ -47,3 +70,34 @@
|
||||
|
||||
### 待办
|
||||
- 用户提到后端也需要此方法,但当前工作区只有前端代码,后端实现需在后端项目补充。
|
||||
|
||||
## 2026-07-14 商城设置 Logo 改为直传
|
||||
|
||||
### 修改文件
|
||||
- `src/views/shop/shopSetting/components/basic.vue`
|
||||
|
||||
### 修改内容
|
||||
- 将商城 Logo 上传方式从 `SelectFile` 图片库选择改为 `a-upload` + `uploadOss` 直接上传,与商品编辑弹窗的商品图片上传方式保持一致。
|
||||
- 已上传图片使用 `a-image` 预览,下方提供"上传"按钮覆盖替换。
|
||||
- 删除不再使用的 `SelectFile` 导入、`logoList` 变量、`chooseImage`/`onDeleteImage` 回调。
|
||||
- 使用 `ele-admin-pro` 的 `messageLoading` 保持上传加载提示与商品编辑弹窗一致。
|
||||
|
||||
## 2026-07-14 商品列表增加三价格展示
|
||||
|
||||
### 改动文件
|
||||
- `src/views/shop/shopGoods/index.vue`
|
||||
|
||||
### 列表页列配置
|
||||
- 原来只显示一列「价格」(`price`)
|
||||
- 新增「市场价」列 (`salePrice`),数据为空时显示 `-`
|
||||
- 新增「会员价」列 (`dealerPrice`),数据为空时显示 `-`
|
||||
- 三列均设置 `width: 110`、`align: 'center'`、`customRender` 带 `¥` 前缀
|
||||
|
||||
### 导出功能同步更新
|
||||
- 导出表头增加「市场价」「会员价」两列
|
||||
- 数据行对应增加 `goods.salePrice` 和 `goods.dealerPrice` 输出
|
||||
- 列宽配置同步增加两列 `{ wch: 12 }`
|
||||
|
||||
### 备注
|
||||
- 编辑表单 `shopGoodsEdit.vue` 已支持三个价格编辑(价格/市场价/会员价),无需修改
|
||||
- 数据模型字段映射:价格=price, 市场价=salePrice, 会员价=dealerPrice
|
||||
|
||||
Reference in New Issue
Block a user