From 99cd094cb0d935eb5e477c2992bbb004f869319d Mon Sep 17 00:00:00 2001 From: YunaiV Date: Wed, 19 Nov 2025 09:42:23 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E3=80=90ele=E3=80=91=E3=80=90crm?= =?UTF-8?q?=E3=80=91statistics=20=E7=9A=84=E9=83=A8=E5=88=86=EF=BC=88perfo?= =?UTF-8?q?rmance=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/crm/statistics/performance/data.ts | 19 +++++---------- .../crm/statistics/performance/index.vue | 6 +++++ .../views/crm/statistics/performance/data.ts | 24 +++++-------------- .../crm/statistics/performance/index.vue | 12 ++++++++++ 4 files changed, 30 insertions(+), 31 deletions(-) diff --git a/apps/web-antd/src/views/crm/statistics/performance/data.ts b/apps/web-antd/src/views/crm/statistics/performance/data.ts index 93a15aefd..d3966c926 100644 --- a/apps/web-antd/src/views/crm/statistics/performance/data.ts +++ b/apps/web-antd/src/views/crm/statistics/performance/data.ts @@ -1,11 +1,10 @@ import type { VbenFormSchema } from '#/adapter/form'; import { useUserStore } from '@vben/stores'; -import { beginOfDay, endOfDay, formatDateTime, handleTree } from '@vben/utils'; +import { handleTree } from '@vben/utils'; import { getSimpleDeptList } from '#/api/system/dept'; import { getSimpleUserList } from '#/api/system/user'; -import { getRangePickerDefaultProps } from '#/utils'; const userStore = useUserStore(); @@ -28,21 +27,15 @@ export const customerSummaryTabs = [ export function useGridFormSchema(): VbenFormSchema[] { return [ { - fieldName: 'times', - label: '时间范围', - component: 'RangePicker', - // TODO @AI:这里有问题,只选择年份 + fieldName: 'time', + label: '选择年份', + component: 'DatePicker', componentProps: { - ...getRangePickerDefaultProps(), - presets: {}, picker: 'year', - showTime: false, format: 'YYYY', + valueFormat: 'YYYY', }, - defaultValue: [ - formatDateTime(beginOfDay(new Date(new Date().getFullYear(), 0, 1))), - formatDateTime(endOfDay(new Date(new Date().getFullYear(), 11, 31))), - ], + defaultValue: new Date().getFullYear().toString(), }, { fieldName: 'deptId', diff --git a/apps/web-antd/src/views/crm/statistics/performance/index.vue b/apps/web-antd/src/views/crm/statistics/performance/index.vue index dbbf0bf32..0e029aec1 100644 --- a/apps/web-antd/src/views/crm/statistics/performance/index.vue +++ b/apps/web-antd/src/views/crm/statistics/performance/index.vue @@ -8,6 +8,7 @@ import { onMounted, ref } from 'vue'; import { ContentWrap, Page } from '@vben/common-ui'; import { EchartsUI, useEcharts } from '@vben/plugins/echarts'; +import { beginOfDay, endOfDay, formatDateTime } from '@vben/utils'; import { Tabs } from 'ant-design-vue'; @@ -68,6 +69,11 @@ const [Grid, gridApi] = useVbenVxeGrid({ async function handleTabChange(key: any) { activeTabName.value = key; const queryParams = (await formApi.getValues()) as any; + // 将年份转换为年初和年末的日期时间 + const selectYear = Number.parseInt(queryParams.time); + queryParams.times = []; + queryParams.times[0] = formatDateTime(beginOfDay(new Date(selectYear, 0, 1))); + queryParams.times[1] = formatDateTime(endOfDay(new Date(selectYear, 11, 31))); let data: any[] = []; const columnsData: any[] = []; let tableData: any[] = []; diff --git a/apps/web-ele/src/views/crm/statistics/performance/data.ts b/apps/web-ele/src/views/crm/statistics/performance/data.ts index 78eaa7c29..42516fb82 100644 --- a/apps/web-ele/src/views/crm/statistics/performance/data.ts +++ b/apps/web-ele/src/views/crm/statistics/performance/data.ts @@ -1,11 +1,10 @@ import type { VbenFormSchema } from '#/adapter/form'; import { useUserStore } from '@vben/stores'; -import { beginOfDay, endOfDay, formatDate, handleTree } from '@vben/utils'; +import { handleTree } from '@vben/utils'; import { getSimpleDeptList } from '#/api/system/dept'; import { getSimpleUserList } from '#/api/system/user'; -import { getRangePickerDefaultProps } from '#/utils'; const userStore = useUserStore(); @@ -28,26 +27,15 @@ export const customerSummaryTabs = [ export function useGridFormSchema(): VbenFormSchema[] { return [ { - fieldName: 'times', - label: '时间范围', - component: 'RangePicker', + fieldName: 'time', + label: '选择年份', + component: 'DatePicker', componentProps: { - ...getRangePickerDefaultProps(), - shortcuts: [], - // TODO @AI:这里有问题,只选择年份 type: 'year', format: 'YYYY', + valueFormat: 'YYYY', }, - defaultValue: [ - formatDate( - beginOfDay(new Date(new Date().getFullYear(), 0, 1)), - 'YYYY-MM-DD HH:mm:ss', - ), - formatDate( - endOfDay(new Date(new Date().getFullYear(), 11, 31)), - 'YYYY-MM-DD HH:mm:ss', - ), - ], + defaultValue: new Date().getFullYear().toString(), }, { fieldName: 'deptId', diff --git a/apps/web-ele/src/views/crm/statistics/performance/index.vue b/apps/web-ele/src/views/crm/statistics/performance/index.vue index e6434b7ae..8271ed776 100644 --- a/apps/web-ele/src/views/crm/statistics/performance/index.vue +++ b/apps/web-ele/src/views/crm/statistics/performance/index.vue @@ -8,6 +8,7 @@ import { onMounted, ref } from 'vue'; import { ContentWrap, Page } from '@vben/common-ui'; import { EchartsUI, useEcharts } from '@vben/plugins/echarts'; +import { beginOfDay, endOfDay, formatDate } from '@vben/utils'; import { ElTabPane, ElTabs } from 'element-plus'; @@ -68,6 +69,17 @@ const [Grid, gridApi] = useVbenVxeGrid({ async function handleTabChange(key: any) { activeTabName.value = key; const queryParams = (await formApi.getValues()) as any; + // 将年份转换为年初和年末的日期时间 + const selectYear = Number.parseInt(queryParams.time); + queryParams.times = []; + queryParams.times[0] = formatDate( + beginOfDay(new Date(selectYear, 0, 1)), + 'YYYY-MM-DD HH:mm:ss', + ); + queryParams.times[1] = formatDate( + endOfDay(new Date(selectYear, 11, 31)), + 'YYYY-MM-DD HH:mm:ss', + ); let data: any[] = []; const columnsData: any[] = []; let tableData: any[] = [];