From b2b43f2d19dc7fb8199205a615c9b58135bad0ee Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 19 Oct 2025 19:29:45 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E3=80=90mall=20=E5=95=86=E5=9F=8E?= =?UTF-8?q?=E3=80=91=E4=BC=9A=E5=91=98=E7=BB=9F=E8=AE=A1=E3=80=90antd?= =?UTF-8?q?=E3=80=9145%=20area-card.vue=20=E4=BC=98=E5=8C=96=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E9=A3=8E=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/mall/statistics/member/modules/area-card.vue | 7 +------ .../mall/statistics/member/modules/area-chart-options.ts | 9 ++++----- .../views/mall/statistics/member/modules/sex-card.vue | 1 + .../mall/statistics/member/modules/terminal-card.vue | 1 + apps/web-ele/src/views/mall/statistics/member/index.vue | 6 +++--- 5 files changed, 10 insertions(+), 14 deletions(-) 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 81af46123..4478d47f1 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 @@ -86,20 +86,15 @@ async function getMemberAreaStatisticsList() { loading.value = true; try { const list = await MemberStatisticsApi.getMemberAreaStatisticsList(); - areaStatisticsList.value = list.map( (item: MallMemberStatisticsApi.AreaStatistics) => ({ ...item, areaName: areaReplace(item.areaName), }), ); - // 渲染图表 const chartOptions = getAreaChartOptions(areaStatisticsList.value); - await renderEcharts(chartOptions); - } catch (error) { - console.error('地域分布数据获取失败:', error); } finally { loading.value = false; } @@ -116,7 +111,7 @@ onMounted(() => {
- +
{ const payUserCount = item.orderPayUserCount || 0; min = Math.min(min, payUserCount); @@ -33,13 +33,13 @@ export function getAreaChartOptions( value: payUserCount, }; }); - - // 如果所有值都为0,设置合理的最小最大值 + // 如果所有值都为 0,设置合理的 min 和 max 值 if (min === max && min === 0) { min = 0; max = 10; } + // 返回图表配置 return { tooltip: { trigger: 'item', @@ -48,7 +48,6 @@ export function getAreaChartOptions( if (!itemData) { return `${params?.name || ''}
暂无数据`; } - return `${itemData.areaName || params.name}
会员数量:${itemData.userCount || 0}
订单创建数量:${itemData.orderCreateUserCount || 0}
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 5880817e9..151280744 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 @@ -39,6 +39,7 @@ async function getMemberSexStatisticsList() { value: userCount || 0, }; }); + // 更新 Echarts 数据 await renderEcharts(getSexChartOptions(chartData)); } finally { loading.value = false; diff --git a/apps/web-antd/src/views/mall/statistics/member/modules/terminal-card.vue b/apps/web-antd/src/views/mall/statistics/member/modules/terminal-card.vue index b2c8c2b8a..fc5075504 100644 --- a/apps/web-antd/src/views/mall/statistics/member/modules/terminal-card.vue +++ b/apps/web-antd/src/views/mall/statistics/member/modules/terminal-card.vue @@ -34,6 +34,7 @@ const getMemberTerminalStatisticsList = async () => { value: userCount || 0, }; }); + // 更新 Echarts 数据 await renderEcharts(getTerminalChartOptions(chartData)); } finally { loading.value = false; 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 c98ec1b2e..381165e02 100644 --- a/apps/web-ele/src/views/mall/statistics/member/index.vue +++ b/apps/web-ele/src/views/mall/statistics/member/index.vue @@ -8,9 +8,9 @@ import { DocAlert, Page } from '@vben/common-ui'; import { fenToYuan } from '@vben/utils'; import * as MemberStatisticsApi from '#/api/mall/statistics/member'; // 会员统计数据 -import AnalysisOverviewIcon from '#/views/mall/home/components/analysis-overview-icon.vue'; -import MemberFunnelCard from '#/views/mall/home/components/member-funnel-card.vue'; -import MemberTerminalCard from '#/views/mall/home/components/member-terminal-card.vue'; +// import AnalysisOverviewIcon from '#/views/mall/home/components/analysis-overview-icon.vue'; +// import MemberFunnelCard from '#/views/mall/home/components/member-funnel-card.vue'; +// import MemberTerminalCard from '#/views/mall/home/components/member-terminal-card.vue'; import MemberRegionCard from './components/member-region-card.vue'; import MemberSexCard from './components/member-sex-card.vue';