From 00f2b94b6a6810ffcc28efa802e489f715aed26b Mon Sep 17 00:00:00 2001 From: yangmf_0726 <13243152557@163.com> Date: Fri, 15 Aug 2025 21:13:09 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E9=94=80=E5=94=AE=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/mall/trade/order/salesStatistics.ts | 33 ++++ .../mall/product/summary/SummaryForm.vue | 2 +- src/views/mall/trade/statistics/index.vue | 150 ++++++++++++++++++ 3 files changed, 184 insertions(+), 1 deletion(-) create mode 100644 src/api/mall/trade/order/salesStatistics.ts create mode 100644 src/views/mall/trade/statistics/index.vue diff --git a/src/api/mall/trade/order/salesStatistics.ts b/src/api/mall/trade/order/salesStatistics.ts new file mode 100644 index 00000000..233e01fc --- /dev/null +++ b/src/api/mall/trade/order/salesStatistics.ts @@ -0,0 +1,33 @@ +import request from '@/config/axios' + +// 订单销售统计查询参数 +export interface GetSalesStatisticsReqVO { + pageNo?: number // 页码,从 1 开始 + pageSize?: number // 每页条数 + deviceId?: string // 设备IMEI + barCode?: string // 物料编码 + spuName?: string // 商品名称 + createTime?: string[] // 创建时间范围 +} + +// 订单销售统计响应接口 +export interface GetSalesStatisticsRes { + list: { + deviceId: string // 设备IMEI + barCode: string // 物料编码 + spuName: string // 商品名称 + orderCount: number // 销售数量 + }[] + total: number // 总量 +} + +// 订单销售统计 API +export const OrderSalesStatisticsApi = { + // 获取订单销售统计数据 + getSalesStatistics: async (params: GetSalesStatisticsReqVO) => { + return await request.get({ + url: '/trade/order/sales-statistics', + params + }) + }, +} diff --git a/src/views/mall/product/summary/SummaryForm.vue b/src/views/mall/product/summary/SummaryForm.vue index a5b50db4..23162e02 100644 --- a/src/views/mall/product/summary/SummaryForm.vue +++ b/src/views/mall/product/summary/SummaryForm.vue @@ -70,7 +70,7 @@ import { SummaryApi, SummaryVO } from '@/api/product/summary' /** 商品汇总 表单 */ -defineOptions({ name: 'SummaryForm' }) + defineOptions({ name: 'SummaryForm' }) const { t } = useI18n() // 国际化 const message = useMessage() // 消息弹窗 diff --git a/src/views/mall/trade/statistics/index.vue b/src/views/mall/trade/statistics/index.vue new file mode 100644 index 00000000..832a1240 --- /dev/null +++ b/src/views/mall/trade/statistics/index.vue @@ -0,0 +1,150 @@ + + +