diff --git a/apps/web-antd/src/api/mall/statistics/member.ts b/apps/web-antd/src/api/mall/statistics/member.ts index 1411389d4..e812270b5 100644 --- a/apps/web-antd/src/api/mall/statistics/member.ts +++ b/apps/web-antd/src/api/mall/statistics/member.ts @@ -1,6 +1,6 @@ import type { DataComparisonRespVO } from './common'; -import { formatDate } from '@vben/utils'; +import { formatDate, formatDateTime } from '@vben/utils'; import { requestClient } from '#/api/request'; @@ -82,7 +82,10 @@ export function getMemberAnalyse(params: MallMemberStatisticsApi.AnalyseReq) { '/statistics/member/analyse', { params: { - times: [formatDate(params.times[0]), formatDate(params.times[1])], + times: [ + formatDateTime(params.times[0]), + formatDateTime(params.times[1]), + ], }, }, ); diff --git a/apps/web-antd/src/api/system/user/index.ts b/apps/web-antd/src/api/system/user/index.ts index c9f23a403..fb12be7eb 100644 --- a/apps/web-antd/src/api/system/user/index.ts +++ b/apps/web-antd/src/api/system/user/index.ts @@ -23,6 +23,7 @@ export namespace SystemUserApi { /** 查询用户管理列表 */ export function getUserPage(params: PageParam) { + debugger return requestClient.get>( '/system/user/page', { params }, diff --git a/apps/web-antd/src/components/shortcut-date-range-picker/index.ts b/apps/web-antd/src/components/shortcut-date-range-picker/index.ts new file mode 100644 index 000000000..a3ee51539 --- /dev/null +++ b/apps/web-antd/src/components/shortcut-date-range-picker/index.ts @@ -0,0 +1 @@ +export { default as ShortcutDateRangePicker } from './shortcut-date-range-picker.vue'; diff --git a/apps/web-antd/src/components/shortcut-date-range-picker/shortcut-date-range-picker.vue b/apps/web-antd/src/components/shortcut-date-range-picker/shortcut-date-range-picker.vue new file mode 100644 index 000000000..cb342aa1b --- /dev/null +++ b/apps/web-antd/src/components/shortcut-date-range-picker/shortcut-date-range-picker.vue @@ -0,0 +1,119 @@ + + + diff --git a/apps/web-antd/src/views/mall/home/modules/member-funnel-card.vue b/apps/web-antd/src/views/mall/home/modules/member-funnel-card.vue index 4543c2ca5..f22bdaf66 100644 --- a/apps/web-antd/src/views/mall/home/modules/member-funnel-card.vue +++ b/apps/web-antd/src/views/mall/home/modules/member-funnel-card.vue @@ -3,11 +3,12 @@ import type { Dayjs } from 'dayjs'; import { ref } from 'vue'; -import { Card, DatePicker } from 'ant-design-vue'; +import { fenToYuan } from '@vben/utils'; -import { erpCalculatePercentage, fenToYuan } from '@vben/utils'; +import { Card } from 'ant-design-vue'; import * as MemberStatisticsApi from '#/api/mall/statistics/member'; +import { ShortcutDateRangePicker } from '#/components/shortcut-date-range-picker'; /** 会员概览卡片 */ defineOptions({ name: 'MemberFunnelCard' }); @@ -16,15 +17,25 @@ const loading = ref(false); const analyseData = ref(); /** 查询会员概览数据列表 */ -const handleTimeRangeChange = async (times: [Dayjs, Dayjs]) => { - if (!times || times.length !== 2) return; +async function loadData(times: [Dayjs, Dayjs]) { + if (!times || times.length !== 2) { + return; + } + loading.value = true; try { // 查询数据 - analyseData.value = await MemberStatisticsApi.getMemberAnalyse({ times }); + analyseData.value = await MemberStatisticsApi.getMemberAnalyse({ + times: [times[0].toDate(), times[1].toDate()], + }); } finally { loading.value = false; } +} + +/** 时间范围改变 */ +const handleTimeRangeChange = (times: [Dayjs, Dayjs]) => { + loadData(times); }; /** 计算环比增长率 */ @@ -39,7 +50,7 @@ const calculateRelativeRate = (value?: number, reference?: number) => {
@@ -148,4 +159,3 @@ const calculateRelativeRate = (value?: number, reference?: number) => { transform: perspective(3em) rotateX(-13deg); } - diff --git a/apps/web-antd/src/views/mall/home/modules/member-terminal-card.vue b/apps/web-antd/src/views/mall/home/modules/member-terminal-card.vue index 1abef2b48..fc0c86a30 100644 --- a/apps/web-antd/src/views/mall/home/modules/member-terminal-card.vue +++ b/apps/web-antd/src/views/mall/home/modules/member-terminal-card.vue @@ -3,10 +3,10 @@ import type { EchartsUIType } from '@vben/plugins/echarts'; import { onMounted, ref } from 'vue'; -import { Card, Spin } from 'ant-design-vue'; - -import { EchartsUI, useEcharts } from '@vben/plugins/echarts'; import { getDictOptions } from '@vben/hooks'; +import { EchartsUI, useEcharts } from '@vben/plugins/echarts'; + +import { Card, Spin } from 'ant-design-vue'; import * as MemberStatisticsApi from '#/api/mall/statistics/member'; @@ -47,10 +47,9 @@ onMounted(() => { -