From 6acfc77d087edf33fff05e68bd063ab376575478 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Mon, 15 Apr 2024 15:37:37 +0800 Subject: [PATCH] =?UTF-8?q?CRM:=20=E5=AE=8C=E5=96=84=E9=94=80=E5=94=AE?= =?UTF-8?q?=E6=BC=8F=E6=96=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/crm/statistics/funnel.ts | 8 +++--- .../funnel/components/BusinessSummary.vue | 4 +-- .../funnel/components/FunnelBusiness.vue | 25 ++++++++++++++++--- 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/api/crm/statistics/funnel.ts b/src/api/crm/statistics/funnel.ts index 0ba322b8..ccfd7432 100644 --- a/src/api/crm/statistics/funnel.ts +++ b/src/api/crm/statistics/funnel.ts @@ -3,13 +3,13 @@ import request from '@/config/axios' export interface CrmStatisticFunnelRespVO { customerCount: number // 客户数 businessCount: number // 商机数 - winCount: number // 赢单数 + businessWinCount: number // 赢单数 } export interface CrmStatisticsBusinessSummaryByDateRespVO { time: string // 时间 businessCreateCount: number // 商机数 - businessDealCount: number // 商机金额 + totalPrice: number | string // 商机金额 } // 客户分析 API @@ -22,9 +22,9 @@ export const StatisticFunnelApi = { }) }, // 2. 获取商机结束状态统计 - getBusinessEndStatusSummary: (params: any) => { + getBusinessSummaryByEndStatus: (params: any) => { return request.get({ - url: '/crm/statistics-funnel/get-business-end-status-summary', + url: '/crm/statistics-funnel/get-business-summary-by-end-status', params }) }, diff --git a/src/views/crm/statistics/funnel/components/BusinessSummary.vue b/src/views/crm/statistics/funnel/components/BusinessSummary.vue index 60dd8198..ae4b032a 100644 --- a/src/views/crm/statistics/funnel/components/BusinessSummary.vue +++ b/src/views/crm/statistics/funnel/components/BusinessSummary.vue @@ -118,7 +118,7 @@ const queryParams0 = reactive({ const loading = ref(false) // 加载中 const list = ref([]) // 列表的数据 const total = ref(0) -/** 将传进来的值赋值给 formData */ +/** 将传进来的值赋值给 queryParams0 */ watch( () => props.queryParams, (data) => { @@ -216,7 +216,7 @@ const fetchAndFill = async () => { } if (echartsOption.series && echartsOption.series[1] && echartsOption.series[1]['data']) { echartsOption.series[1]['data'] = businessSummaryByDate.map( - (s: CrmStatisticsBusinessSummaryByDateRespVO) => s.businessDealCount + (s: CrmStatisticsBusinessSummaryByDateRespVO) => s.totalPrice ) } diff --git a/src/views/crm/statistics/funnel/components/FunnelBusiness.vue b/src/views/crm/statistics/funnel/components/FunnelBusiness.vue index 2be24e8d..9b7b08ae 100644 --- a/src/views/crm/statistics/funnel/components/FunnelBusiness.vue +++ b/src/views/crm/statistics/funnel/components/FunnelBusiness.vue @@ -4,6 +4,10 @@ + + 客户视角 + 动态视角 + @@ -35,6 +39,7 @@ import { FunnelChart } from 'echarts/charts' defineOptions({ name: 'FunnelBusiness' }) const props = defineProps<{ queryParams: any }>() // 搜索参数 +const active = ref(true) const loading = ref(false) // 加载中 const list = ref([]) // 列表的数据 @@ -101,6 +106,11 @@ const echartsOption = reactive({ ] }) as EChartsOption +const handleActive = async (val: boolean) => { + active.value = val + await loadData() +} + /** 获取统计数据 */ const loadData = async () => { loading.value = true @@ -117,13 +127,20 @@ const loadData = async () => { ) { // tips:写死 value 值是为了保持漏斗顺序不变 const list: { value: number; name: string }[] = [] - list.push({ value: 60, name: `客户-${data.customerCount || 0}个` }) - list.push({ value: 40, name: `商机-${data.businessCount || 0}个` }) - list.push({ value: 20, name: `赢单-${data.winCount || 0}个` }) + if (active.value) { + list.push({ value: 60, name: `客户-${data.customerCount || 0}个` }) + list.push({ value: 40, name: `商机-${data.businessCount || 0}个` }) + list.push({ value: 20, name: `赢单-${data.businessWinCount || 0}个` }) + } else { + list.push({ value: data.customerCount || 0, name: `客户-${data.customerCount || 0}个` }) + list.push({ value: data.businessCount || 0, name: `商机-${data.businessCount || 0}个` }) + list.push({ value: data.businessWinCount || 0, name: `赢单-${data.businessWinCount || 0}个` }) + } + echartsOption.series[0]['data'] = list } // 2.2 获取商机结束状态统计 - list.value = await StatisticFunnelApi.getBusinessEndStatusSummary(props.queryParams) + list.value = await StatisticFunnelApi.getBusinessSummaryByEndStatus(props.queryParams) loading.value = false } defineExpose({ loadData })