diff --git a/apps/web-antd/src/api/mall/statistics/member.ts b/apps/web-antd/src/api/mall/statistics/member.ts index 71423b131..e6bf9ffa7 100644 --- a/apps/web-antd/src/api/mall/statistics/member.ts +++ b/apps/web-antd/src/api/mall/statistics/member.ts @@ -12,24 +12,24 @@ export namespace MallMemberStatisticsApi { times: Date[] | Dayjs[]; // 时间范围 } + /** 会员分析 Response */ + export interface AnalyseRespVO { + visitUserCount: number; // 访问用户数 + orderUserCount: number; // 下单用户数 + payUserCount: number; // 支付用户数 + atv: number; // 平均客单价 + comparison: DataComparisonRespVO; // 对照数据 + } + /** 会员分析对照数据 Response */ - export interface AnalyseComparison { + export interface AnalyseDataRespVO { registerUserCount: number; // 注册用户数 visitUserCount: number; // 访问用户数 rechargeUserCount: number; // 充值用户数 } - /** 会员分析 Response */ - export interface Analyse { - visitUserCount: number; // 访问用户数 - orderUserCount: number; // 下单用户数 - payUserCount: number; // 支付用户数 - atv: number; // 平均客单价 - comparison: DataComparisonRespVO; // 对照数据 - } - /** 会员地区统计 Response */ - export interface AreaStatistics { + export interface AreaStatisticsRespVO { areaId: number; // 地区ID areaName: string; // 地区名称 userCount: number; // 用户数 @@ -39,13 +39,13 @@ export namespace MallMemberStatisticsApi { } /** 会员性别统计 Response */ - export interface SexStatistics { + export interface SexStatisticsRespVO { sex: number; // 性别 userCount: number; // 用户数 } /** 会员统计 Response */ - export interface Summary { + export interface SummaryRespVO { userCount: number; // 用户数 rechargeUserCount: number; // 充值用户数 rechargePrice: number; // 充值金额 @@ -53,7 +53,7 @@ export namespace MallMemberStatisticsApi { } /** 会员终端统计 Response */ - export interface TerminalStatistics { + export interface TerminalStatisticsRespVO { terminal: number; // 终端 userCount: number; // 用户数 } @@ -65,7 +65,7 @@ export namespace MallMemberStatisticsApi { } /** 会员注册数量 Response */ - export interface RegisterCount { + export interface RegisterCountRespVO { date: string; // 日期 count: number; // 数量 } @@ -73,7 +73,7 @@ export namespace MallMemberStatisticsApi { /** 查询会员统计 */ export function getMemberSummary() { - return requestClient.get( + return requestClient.get( '/statistics/member/summary', ); } @@ -82,7 +82,7 @@ export function getMemberSummary() { export function getMemberAnalyse( params: MallMemberStatisticsApi.MemberAnalyseReqVO, ) { - return requestClient.get( + return requestClient.get( '/statistics/member/analyse', { params: { @@ -97,21 +97,21 @@ export function getMemberAnalyse( /** 按照省份,查询会员统计列表 */ export function getMemberAreaStatisticsList() { - return requestClient.get( + return requestClient.get( '/statistics/member/area-statistics-list', ); } /** 按照性别,查询会员统计列表 */ export function getMemberSexStatisticsList() { - return requestClient.get( + return requestClient.get( '/statistics/member/sex-statistics-list', ); } /** 按照终端,查询会员统计列表 */ export function getMemberTerminalStatisticsList() { - return requestClient.get( + return requestClient.get( '/statistics/member/terminal-statistics-list', ); } @@ -125,7 +125,7 @@ export function getUserCountComparison() { /** 获得会员注册数量列表 */ export function getMemberRegisterCountList(beginTime: Date, endTime: Date) { - return requestClient.get( + return requestClient.get( '/statistics/member/register-count-list', { params: { diff --git a/apps/web-antd/src/api/mall/statistics/product.ts b/apps/web-antd/src/api/mall/statistics/product.ts index 2e83f945a..a3746cc2b 100644 --- a/apps/web-antd/src/api/mall/statistics/product.ts +++ b/apps/web-antd/src/api/mall/statistics/product.ts @@ -6,50 +6,35 @@ import { requestClient } from '#/api/request'; export namespace MallProductStatisticsApi { /** 商品统计数据 */ - export interface ProductStatistics { - /** 编号 */ - id: number; - /** 统计日期 */ - day: string; - /** 商品 SPU 编号 */ - spuId: number; - /** 商品 SPU 名称 */ - spuName: string; - /** 商品 SPU 图片 */ - spuPicUrl: string; - /** 浏览次数 */ - browseCount: number; - /** 浏览人数 */ - browseUserCount: number; - /** 收藏次数 */ - favoriteCount: number; - /** 加购次数 */ - cartCount: number; - /** 下单次数 */ - orderCount: number; - /** 支付次数 */ - orderPayCount: number; - /** 支付金额 */ - orderPayPrice: number; - /** 售后次数 */ - afterSaleCount: number; - /** 退款金额 */ - afterSaleRefundPrice: number; - /** 浏览转化率 */ - browseConvertPercent: number; + export interface ProductStatisticsRespVO { + id: number; // 编号 + day: string; // 统计日期 + spuId: number; // 商品 SPU 编号 + spuName: string; // 商品 SPU 名称 + spuPicUrl: string; // 商品 SPU 图片 + browseCount: number; // 浏览次数 + browseUserCount: number; // 浏览人数 + favoriteCount: number; // 收藏次数 + cartCount: number; // 加购次数 + orderCount: number; // 下单次数 + orderPayCount: number; // 支付次数 + orderPayPrice: number; // 支付金额 + afterSaleCount: number; // 售后次数 + afterSaleRefundPrice: number; // 退款金额 + browseConvertPercent: number; // 浏览转化率 } } /** 获得商品统计分析 */ export function getProductStatisticsAnalyse(params: any) { return requestClient.get< - DataComparisonRespVO + DataComparisonRespVO >('/statistics/product/analyse', { params }); } /** 获得商品状况明细 */ export function getProductStatisticsList(params: any) { - return requestClient.get( + return requestClient.get( '/statistics/product/list', { params }, ); @@ -63,6 +48,6 @@ export function exportProductStatisticsExcel(params: any) { /** 获得商品排行榜分页 */ export function getProductStatisticsRankPage(params: PageParam) { return requestClient.get< - PageResult + PageResult >('/statistics/product/rank-page', { params }); } diff --git a/apps/web-antd/src/views/mall/statistics/member/index.vue b/apps/web-antd/src/views/mall/statistics/member/index.vue index 8ccd67237..9524f9bb1 100644 --- a/apps/web-antd/src/views/mall/statistics/member/index.vue +++ b/apps/web-antd/src/views/mall/statistics/member/index.vue @@ -19,7 +19,7 @@ import MemberTerminalCard from './modules/terminal-card.vue'; defineOptions({ name: 'MemberStatistics' }); const loading = ref(true); // 加载中 -const summary = ref(); // 会员统计数据 +const summary = ref(); // 会员统计数据 /** 查询会员统计 */ async function loadMemberSummary() { diff --git a/apps/web-antd/src/views/mall/statistics/member/modules/area-card.vue b/apps/web-antd/src/views/mall/statistics/member/modules/area-card.vue index dc7c67e1a..e9284a436 100644 --- a/apps/web-antd/src/views/mall/statistics/member/modules/area-card.vue +++ b/apps/web-antd/src/views/mall/statistics/member/modules/area-card.vue @@ -18,9 +18,9 @@ import { getAreaChartOptions, getAreaTableColumns } from './area-chart-options'; defineOptions({ name: 'MemberAreaCard' }); const loading = ref(true); -const areaStatisticsList = shallowRef( - [], -); +const areaStatisticsList = shallowRef< + MallMemberStatisticsApi.AreaStatisticsRespVO[] +>([]); const chartRef = ref(); const { renderEcharts } = useEcharts(chartRef); @@ -49,7 +49,7 @@ async function loadMemberAreaStatisticsList() { try { const list = await getMemberAreaStatisticsList(); areaStatisticsList.value = list.map( - (item: MallMemberStatisticsApi.AreaStatistics) => ({ + (item: MallMemberStatisticsApi.AreaStatisticsRespVO) => ({ ...item, areaName: areaReplace(item.areaName), }), diff --git a/apps/web-antd/src/views/mall/statistics/member/modules/area-chart-options.ts b/apps/web-antd/src/views/mall/statistics/member/modules/area-chart-options.ts index b2d0c6a66..b09f492f0 100644 --- a/apps/web-antd/src/views/mall/statistics/member/modules/area-chart-options.ts +++ b/apps/web-antd/src/views/mall/statistics/member/modules/area-chart-options.ts @@ -5,7 +5,7 @@ import { fenToYuan } from '@vben/utils'; /** 会员地域分布图表配置 */ export function getAreaChartOptions( - data: MallMemberStatisticsApi.AreaStatistics[], + data: MallMemberStatisticsApi.AreaStatisticsRespVO[], ): any { if (!data || data.length === 0) { return { diff --git a/apps/web-antd/src/views/mall/statistics/member/modules/sex-card.vue b/apps/web-antd/src/views/mall/statistics/member/modules/sex-card.vue index 567ecc424..b765475ab 100644 --- a/apps/web-antd/src/views/mall/statistics/member/modules/sex-card.vue +++ b/apps/web-antd/src/views/mall/statistics/member/modules/sex-card.vue @@ -31,7 +31,7 @@ async function loadMemberSexStatisticsList() { dictDataList.push({ label: '未知', value: null } as any); const chartData = dictDataList.map((dictData: any) => { const userCount = list.find( - (item: MallMemberStatisticsApi.SexStatistics) => + (item: MallMemberStatisticsApi.SexStatisticsRespVO) => item.sex === dictData.value, )?.userCount; return { diff --git a/apps/web-antd/src/views/mall/statistics/product/modules/summary-card.vue b/apps/web-antd/src/views/mall/statistics/product/modules/summary-card.vue index 9f2fde400..b38b4517a 100644 --- a/apps/web-antd/src/views/mall/statistics/product/modules/summary-card.vue +++ b/apps/web-antd/src/views/mall/statistics/product/modules/summary-card.vue @@ -37,7 +37,7 @@ defineOptions({ name: 'ProductSummaryCard' }); const trendLoading = ref(true); // 商品状态加载中 const exportLoading = ref(false); // 导出的加载中 const trendSummary = - ref>(); // 商品状况统计数据 + ref>(); // 商品状况统计数据 const searchTimes = ref([]); const chartRef = ref(); diff --git a/apps/web-ele/src/api/mall/statistics/member.ts b/apps/web-ele/src/api/mall/statistics/member.ts index 71423b131..e6bf9ffa7 100644 --- a/apps/web-ele/src/api/mall/statistics/member.ts +++ b/apps/web-ele/src/api/mall/statistics/member.ts @@ -12,24 +12,24 @@ export namespace MallMemberStatisticsApi { times: Date[] | Dayjs[]; // 时间范围 } + /** 会员分析 Response */ + export interface AnalyseRespVO { + visitUserCount: number; // 访问用户数 + orderUserCount: number; // 下单用户数 + payUserCount: number; // 支付用户数 + atv: number; // 平均客单价 + comparison: DataComparisonRespVO; // 对照数据 + } + /** 会员分析对照数据 Response */ - export interface AnalyseComparison { + export interface AnalyseDataRespVO { registerUserCount: number; // 注册用户数 visitUserCount: number; // 访问用户数 rechargeUserCount: number; // 充值用户数 } - /** 会员分析 Response */ - export interface Analyse { - visitUserCount: number; // 访问用户数 - orderUserCount: number; // 下单用户数 - payUserCount: number; // 支付用户数 - atv: number; // 平均客单价 - comparison: DataComparisonRespVO; // 对照数据 - } - /** 会员地区统计 Response */ - export interface AreaStatistics { + export interface AreaStatisticsRespVO { areaId: number; // 地区ID areaName: string; // 地区名称 userCount: number; // 用户数 @@ -39,13 +39,13 @@ export namespace MallMemberStatisticsApi { } /** 会员性别统计 Response */ - export interface SexStatistics { + export interface SexStatisticsRespVO { sex: number; // 性别 userCount: number; // 用户数 } /** 会员统计 Response */ - export interface Summary { + export interface SummaryRespVO { userCount: number; // 用户数 rechargeUserCount: number; // 充值用户数 rechargePrice: number; // 充值金额 @@ -53,7 +53,7 @@ export namespace MallMemberStatisticsApi { } /** 会员终端统计 Response */ - export interface TerminalStatistics { + export interface TerminalStatisticsRespVO { terminal: number; // 终端 userCount: number; // 用户数 } @@ -65,7 +65,7 @@ export namespace MallMemberStatisticsApi { } /** 会员注册数量 Response */ - export interface RegisterCount { + export interface RegisterCountRespVO { date: string; // 日期 count: number; // 数量 } @@ -73,7 +73,7 @@ export namespace MallMemberStatisticsApi { /** 查询会员统计 */ export function getMemberSummary() { - return requestClient.get( + return requestClient.get( '/statistics/member/summary', ); } @@ -82,7 +82,7 @@ export function getMemberSummary() { export function getMemberAnalyse( params: MallMemberStatisticsApi.MemberAnalyseReqVO, ) { - return requestClient.get( + return requestClient.get( '/statistics/member/analyse', { params: { @@ -97,21 +97,21 @@ export function getMemberAnalyse( /** 按照省份,查询会员统计列表 */ export function getMemberAreaStatisticsList() { - return requestClient.get( + return requestClient.get( '/statistics/member/area-statistics-list', ); } /** 按照性别,查询会员统计列表 */ export function getMemberSexStatisticsList() { - return requestClient.get( + return requestClient.get( '/statistics/member/sex-statistics-list', ); } /** 按照终端,查询会员统计列表 */ export function getMemberTerminalStatisticsList() { - return requestClient.get( + return requestClient.get( '/statistics/member/terminal-statistics-list', ); } @@ -125,7 +125,7 @@ export function getUserCountComparison() { /** 获得会员注册数量列表 */ export function getMemberRegisterCountList(beginTime: Date, endTime: Date) { - return requestClient.get( + return requestClient.get( '/statistics/member/register-count-list', { params: { diff --git a/apps/web-ele/src/api/mall/statistics/product.ts b/apps/web-ele/src/api/mall/statistics/product.ts index 2e83f945a..a3746cc2b 100644 --- a/apps/web-ele/src/api/mall/statistics/product.ts +++ b/apps/web-ele/src/api/mall/statistics/product.ts @@ -6,50 +6,35 @@ import { requestClient } from '#/api/request'; export namespace MallProductStatisticsApi { /** 商品统计数据 */ - export interface ProductStatistics { - /** 编号 */ - id: number; - /** 统计日期 */ - day: string; - /** 商品 SPU 编号 */ - spuId: number; - /** 商品 SPU 名称 */ - spuName: string; - /** 商品 SPU 图片 */ - spuPicUrl: string; - /** 浏览次数 */ - browseCount: number; - /** 浏览人数 */ - browseUserCount: number; - /** 收藏次数 */ - favoriteCount: number; - /** 加购次数 */ - cartCount: number; - /** 下单次数 */ - orderCount: number; - /** 支付次数 */ - orderPayCount: number; - /** 支付金额 */ - orderPayPrice: number; - /** 售后次数 */ - afterSaleCount: number; - /** 退款金额 */ - afterSaleRefundPrice: number; - /** 浏览转化率 */ - browseConvertPercent: number; + export interface ProductStatisticsRespVO { + id: number; // 编号 + day: string; // 统计日期 + spuId: number; // 商品 SPU 编号 + spuName: string; // 商品 SPU 名称 + spuPicUrl: string; // 商品 SPU 图片 + browseCount: number; // 浏览次数 + browseUserCount: number; // 浏览人数 + favoriteCount: number; // 收藏次数 + cartCount: number; // 加购次数 + orderCount: number; // 下单次数 + orderPayCount: number; // 支付次数 + orderPayPrice: number; // 支付金额 + afterSaleCount: number; // 售后次数 + afterSaleRefundPrice: number; // 退款金额 + browseConvertPercent: number; // 浏览转化率 } } /** 获得商品统计分析 */ export function getProductStatisticsAnalyse(params: any) { return requestClient.get< - DataComparisonRespVO + DataComparisonRespVO >('/statistics/product/analyse', { params }); } /** 获得商品状况明细 */ export function getProductStatisticsList(params: any) { - return requestClient.get( + return requestClient.get( '/statistics/product/list', { params }, ); @@ -63,6 +48,6 @@ export function exportProductStatisticsExcel(params: any) { /** 获得商品排行榜分页 */ export function getProductStatisticsRankPage(params: PageParam) { return requestClient.get< - PageResult + PageResult >('/statistics/product/rank-page', { params }); } diff --git a/apps/web-ele/src/views/mall/statistics/member/index.vue b/apps/web-ele/src/views/mall/statistics/member/index.vue index 5a1a9221a..1e3f9ddbe 100644 --- a/apps/web-ele/src/views/mall/statistics/member/index.vue +++ b/apps/web-ele/src/views/mall/statistics/member/index.vue @@ -19,7 +19,7 @@ import MemberTerminalCard from './modules/terminal-card.vue'; defineOptions({ name: 'MemberStatistics' }); const loading = ref(true); // 加载中 -const summary = ref(); // 会员统计数据 +const summary = ref(); // 会员统计数据 /** 查询会员统计 */ async function loadMemberSummary() { diff --git a/apps/web-ele/src/views/mall/statistics/member/modules/area-card.vue b/apps/web-ele/src/views/mall/statistics/member/modules/area-card.vue index 9e2c820ed..7c713851a 100644 --- a/apps/web-ele/src/views/mall/statistics/member/modules/area-card.vue +++ b/apps/web-ele/src/views/mall/statistics/member/modules/area-card.vue @@ -18,9 +18,9 @@ import { getAreaChartOptions, getAreaTableColumns } from './area-chart-options'; defineOptions({ name: 'MemberAreaCard' }); const loading = ref(true); -const areaStatisticsList = shallowRef( - [], -); +const areaStatisticsList = shallowRef< + MallMemberStatisticsApi.AreaStatisticsRespVO[] +>([]); const chartRef = ref(); const { renderEcharts } = useEcharts(chartRef); @@ -49,7 +49,7 @@ async function loadMemberAreaStatisticsList() { try { const list = await getMemberAreaStatisticsList(); areaStatisticsList.value = list.map( - (item: MallMemberStatisticsApi.AreaStatistics) => ({ + (item: MallMemberStatisticsApi.AreaStatisticsRespVO) => ({ ...item, areaName: areaReplace(item.areaName), }), diff --git a/apps/web-ele/src/views/mall/statistics/member/modules/area-chart-options.ts b/apps/web-ele/src/views/mall/statistics/member/modules/area-chart-options.ts index b2d0c6a66..b09f492f0 100644 --- a/apps/web-ele/src/views/mall/statistics/member/modules/area-chart-options.ts +++ b/apps/web-ele/src/views/mall/statistics/member/modules/area-chart-options.ts @@ -5,7 +5,7 @@ import { fenToYuan } from '@vben/utils'; /** 会员地域分布图表配置 */ export function getAreaChartOptions( - data: MallMemberStatisticsApi.AreaStatistics[], + data: MallMemberStatisticsApi.AreaStatisticsRespVO[], ): any { if (!data || data.length === 0) { return { diff --git a/apps/web-ele/src/views/mall/statistics/member/modules/sex-card.vue b/apps/web-ele/src/views/mall/statistics/member/modules/sex-card.vue index a41d8b469..b646619c6 100644 --- a/apps/web-ele/src/views/mall/statistics/member/modules/sex-card.vue +++ b/apps/web-ele/src/views/mall/statistics/member/modules/sex-card.vue @@ -31,7 +31,7 @@ async function loadMemberSexStatisticsList() { dictDataList.push({ label: '未知', value: null } as any); const chartData = dictDataList.map((dictData: any) => { const userCount = list.find( - (item: MallMemberStatisticsApi.SexStatistics) => + (item: MallMemberStatisticsApi.SexStatisticsRespVO) => item.sex === dictData.value, )?.userCount; return { diff --git a/apps/web-ele/src/views/mall/statistics/product/modules/summary-card.vue b/apps/web-ele/src/views/mall/statistics/product/modules/summary-card.vue index 156aace69..5d6b9bffe 100644 --- a/apps/web-ele/src/views/mall/statistics/product/modules/summary-card.vue +++ b/apps/web-ele/src/views/mall/statistics/product/modules/summary-card.vue @@ -37,7 +37,7 @@ defineOptions({ name: 'ProductSummaryCard' }); const trendLoading = ref(true); // 商品状态加载中 const exportLoading = ref(false); // 导出的加载中 const trendSummary = - ref>(); // 商品状况统计数据 + ref>(); // 商品状况统计数据 const searchTimes = ref([]); const chartRef = ref();