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..9aa6d5e2
--- /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..74558d15
--- /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
}
}