diff --git a/src/api/crm/statistics/customer.ts b/src/api/crm/statistics/customer.ts index 815fe653..c2092e48 100644 --- a/src/api/crm/statistics/customer.ts +++ b/src/api/crm/statistics/customer.ts @@ -67,6 +67,18 @@ export interface CrmStatisticsCustomerDealCycleByUserRespVO { customerDealCount: number } +export interface CrmStatisticsCustomerDealCycleByAreaRespVO { + areaName: string + customerDealCycle: number + customerDealCount: number +} + +export interface CrmStatisticsCustomerDealCycleByProductRespVO { + productName: string + customerDealCycle: number + customerDealCount: number +} + // 客户分析 API export const StatisticsCustomerApi = { // 1.1 客户总量分析(按日期) @@ -138,5 +150,19 @@ export const StatisticsCustomerApi = { url: '/crm/statistics-customer/get-customer-deal-cycle-by-user', params }) + }, + // 6.2 获取客户成交周期(按用户) + getCustomerDealCycleByArea: (params: any) => { + return request.get({ + url: '/crm/statistics-customer/get-customer-deal-cycle-by-area', + params + }) + }, + // 6.2 获取客户成交周期(按用户) + getCustomerDealCycleByProduct: (params: any) => { + return request.get({ + url: '/crm/statistics-customer/get-customer-deal-cycle-by-product', + params + }) } } diff --git a/src/views/crm/statistics/customer/components/CustomerDealCycleByArea.vue b/src/views/crm/statistics/customer/components/CustomerDealCycleByArea.vue new file mode 100644 index 00000000..e168b773 --- /dev/null +++ b/src/views/crm/statistics/customer/components/CustomerDealCycleByArea.vue @@ -0,0 +1,153 @@ + + + diff --git a/src/views/crm/statistics/customer/components/CustomerDealCycleByProduct.vue b/src/views/crm/statistics/customer/components/CustomerDealCycleByProduct.vue new file mode 100644 index 00000000..3dff3645 --- /dev/null +++ b/src/views/crm/statistics/customer/components/CustomerDealCycleByProduct.vue @@ -0,0 +1,153 @@ + + + diff --git a/src/views/crm/statistics/customer/components/CustomerDealCycle.vue b/src/views/crm/statistics/customer/components/CustomerDealCycleByUser.vue similarity index 98% rename from src/views/crm/statistics/customer/components/CustomerDealCycle.vue rename to src/views/crm/statistics/customer/components/CustomerDealCycleByUser.vue index 23ce1448..e3d877e5 100644 --- a/src/views/crm/statistics/customer/components/CustomerDealCycle.vue +++ b/src/views/crm/statistics/customer/components/CustomerDealCycleByUser.vue @@ -30,7 +30,7 @@ import { } from '@/api/crm/statistics/customer' import { EChartsOption } from 'echarts' -defineOptions({ name: 'CustomerDealCycle' }) +defineOptions({ name: 'CustomerDealCycleByUser' }) const props = defineProps<{ queryParams: any }>() // 搜索参数 diff --git a/src/views/crm/statistics/customer/index.vue b/src/views/crm/statistics/customer/index.vue index 88a324e5..207dc350 100644 --- a/src/views/crm/statistics/customer/index.vue +++ b/src/views/crm/statistics/customer/index.vue @@ -102,8 +102,14 @@ - - + + + + + + + + @@ -117,7 +123,9 @@ import { DICT_TYPE, getIntDictOptions } from '@/utils/dict' import { beginOfDay, defaultShortcuts, endOfDay, formatDate } from '@/utils/formatTime' import { defaultProps, handleTree } from '@/utils/tree' import CustomerConversionStat from './components/CustomerConversionStat.vue' -import CustomerDealCycle from './components/CustomerDealCycle.vue' +import CustomerDealCycleByUser from './components/CustomerDealCycleByUser.vue' +import CustomerDealCycleByArea from './components/CustomerDealCycleByArea.vue' +import CustomerDealCycleByProduct from './components/CustomerDealCycleByProduct.vue' import CustomerFollowUpSummary from './components/CustomerFollowUpSummary.vue' import CustomerFollowUpType from './components/CustomerFollowUpType.vue' import CustomerSummary from './components/CustomerSummary.vue' @@ -153,7 +161,9 @@ const followUpSummaryRef = ref() // 2. 客户跟进次数分析 const followUpTypeRef = ref() // 3. 客户跟进方式分析 const conversionStatRef = ref() // 4. 客户转化率分析 const customerPoolSummaryRef = ref() // 5. 客户公海分析 -const dealCycleRef = ref() // 6. 成交周期分析 +const dealCycleByUserRef = ref() // 6. 成交周期分析(按员工) +const dealCycleByAreaRef = ref() // 7. 成交周期分析(按地区) +const dealCycleByProductRef = ref() // 8. 成交周期分析(按产品) /** 搜索按钮操作 */ const handleQuery = () => { @@ -173,8 +183,14 @@ const handleQuery = () => { case 'poolSummary': // 公海客户分析 customerPoolSummaryRef.value?.loadData?.() break - case 'dealCycle': // 成交周期分析 - dealCycleRef.value?.loadData?.() + case 'dealCycleByUser': // 成交周期分析 + dealCycleByUserRef.value?.loadData?.() + break + case 'dealCycleByArea': // 成交周期分析 + dealCycleByAreaRef.value?.loadData?.() + break + case 'dealCycleByProduct': // 成交周期分析 + dealCycleByProductRef.value?.loadData?.() break } }