Files
guilixu-admin/.workbuddy/memory/2026-07-14.md
赵忠林 894592c290 feat(shop): 新增线下付款支持及优化Dashboard数据统计
- 新增线下付款(payType=9)支付方式,支持订单中标识和确认收款操作
- 实现商家确认线下付款后订单进入待发货状态功能
- 更新支付方式组件和订单列表及详情页的支付状态显示
- 优化shop/dashboard快捷操作按钮为商城常用功能,修正快速入口路由路径
- 修复Dashboard待发货订单数统计时未过滤商城订单导致数据不准的问题
- 修复Dashboard运行天数为0的异常,将租户信息请求独立处理,避免某些请求失败影响
- 修复statisticsStore中couponUsedCount与getter同名冲突,改名为safeCouponUsedCount并同步更新引用
2026-07-14 22:17:39 +08:00

2.8 KiB
Raw Blame History

2026-07-14

为 Dashboard 页面添加新订单声音提醒

  • src/views/shop/shopOrder/useOrderNotify.ts 改造为实例安全的 Composable模块级状态enabled/polling/timerId/lastOrderId/initialized/callback移入函数作用域AudioContext 和音频解锁监听器保持模块级共享。每个页面调用可创建独立实例,互不冲突。
  • src/views/shop/dashboard/index.vue 的欢迎横幅右侧添加新订单提醒开关栏(开关 + 测试按钮),检测到新订单后自动调用 loadData() 刷新 Dashboard 数据。
  • src/views/cms/dashboard/index.vue 的概况卡片标题栏添加新订单提醒控件,同样检测到新订单后刷新数据。
  • 提取了 CMS Dashboard 的 loadData 函数使其可复用。

更新 shop/dashboard 快捷操作按钮为商城常用功能

  • 快捷操作按钮从原来的通用功能(参数配置/用户管理/站点管理/登录日志)改为商城系统常用功能:订单管理、商品管理、商品分类、优惠券管理、会员管理、商城设置、清除缓存。
  • 路由路径统一使用 /shop/shopXxx 格式(与 /shop/shopOrder 等已确认路径一致),修复了快速入口中 /shopGoods/shop/shopGoods 的路径不一致问题。
  • 快速入口九宫格也同步改为商城相关入口。
  • 图标导入更新:移除 UngroupOutlined/CalendarOutlined/UserOutlined/FileTextOutlined新增 ShoppingCartOutlined/AppstoreOutlined/GiftOutlined/TeamOutlined/SettingOutlined。

修复 shop/dashboard 待发货订单数量统计不准确

  • 根因:订单列表页 datasource 中 where.type = 0(只查商城订单),但 Dashboard 统计未传 type: 0,导致把预定订单/外卖(type=1)和会员卡订单(type=2)也计入。
  • 修复:为 pendingShipmentCount 和 pendingRefundCount 查询都加上 type: 0

修复 Dashboard 运行天数为 0 的问题

  • 根因:getTenantInfo() 被放在 await Promise.all([...]) 之后,如果 statisticsStore.fetchStatistics() 抛异常(couponUsedCount 错误),Promise.all reject 后直接跳到 catchgetTenantInfo 根本不会执行,tenantCreateTime 永远是空值。
  • 修复:在 shop/dashboard/index.vuecms/dashboard/index.vueloadData 中,把 getTenantInfo() 放到 Promise.all 外面,用 .then 独立执行,不受其他请求失败影响。
  • 运行天数计算基于 getTenantInfo() 返回的 Company.createTime(租户创建时间)。

修复 statisticsStore couponUsedCount 冲突

  • 根因:couponUsedCount 同时被定义成 state 属性和 getterPinia 中同名冲突导致 action 里 this.couponUsedCount = ... 报错:'set' on proxy: trap returned falsish
  • 修复:将 getter 改名为 safeCouponUsedCountshop/dashboard/index.vue 中同步更新引用(该引用当前被注释,但保持一致性)。