Skip to content

Commit 6acfc77

Browse files
author
puhui999
committed
CRM: 完善销售漏斗
1 parent 2512253 commit 6acfc77

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

src/api/crm/statistics/funnel.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ import request from '@/config/axios'
33
export interface CrmStatisticFunnelRespVO {
44
customerCount: number // 客户数
55
businessCount: number // 商机数
6-
winCount: number // 赢单数
6+
businessWinCount: number // 赢单数
77
}
88

99
export interface CrmStatisticsBusinessSummaryByDateRespVO {
1010
time: string // 时间
1111
businessCreateCount: number // 商机数
12-
businessDealCount: number // 商机金额
12+
totalPrice: number | string // 商机金额
1313
}
1414

1515
// 客户分析 API
@@ -22,9 +22,9 @@ export const StatisticFunnelApi = {
2222
})
2323
},
2424
// 2. 获取商机结束状态统计
25-
getBusinessEndStatusSummary: (params: any) => {
25+
getBusinessSummaryByEndStatus: (params: any) => {
2626
return request.get({
27-
url: '/crm/statistics-funnel/get-business-end-status-summary',
27+
url: '/crm/statistics-funnel/get-business-summary-by-end-status',
2828
params
2929
})
3030
},

src/views/crm/statistics/funnel/components/BusinessSummary.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ const queryParams0 = reactive({
118118
const loading = ref(false) // 加载中
119119
const list = ref([]) // 列表的数据
120120
const total = ref(0)
121-
/** 将传进来的值赋值给 formData */
121+
/** 将传进来的值赋值给 queryParams0 */
122122
watch(
123123
() => props.queryParams,
124124
(data) => {
@@ -216,7 +216,7 @@ const fetchAndFill = async () => {
216216
}
217217
if (echartsOption.series && echartsOption.series[1] && echartsOption.series[1]['data']) {
218218
echartsOption.series[1]['data'] = businessSummaryByDate.map(
219-
(s: CrmStatisticsBusinessSummaryByDateRespVO) => s.businessDealCount
219+
(s: CrmStatisticsBusinessSummaryByDateRespVO) => s.totalPrice
220220
)
221221
}
222222

src/views/crm/statistics/funnel/components/FunnelBusiness.vue

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
<el-card shadow="never">
55
<el-row>
66
<el-col :span="24">
7+
<el-button-group class="mb-10px">
8+
<el-button type="primary" @click="handleActive(true)">客户视角</el-button>
9+
<el-button type="primary" @click="handleActive(false)">动态视角</el-button>
10+
</el-button-group>
711
<el-skeleton :loading="loading" animated>
812
<Echart :height="500" :options="echartsOption" />
913
</el-skeleton>
@@ -35,6 +39,7 @@ import { FunnelChart } from 'echarts/charts'
3539
defineOptions({ name: 'FunnelBusiness' })
3640
const props = defineProps<{ queryParams: any }>() // 搜索参数
3741
42+
const active = ref(true)
3843
const loading = ref(false) // 加载中
3944
const list = ref<CrmStatisticFunnelRespVO[]>([]) // 列表的数据
4045
@@ -101,6 +106,11 @@ const echartsOption = reactive<EChartsOption>({
101106
]
102107
}) as EChartsOption
103108
109+
const handleActive = async (val: boolean) => {
110+
active.value = val
111+
await loadData()
112+
}
113+
104114
/** 获取统计数据 */
105115
const loadData = async () => {
106116
loading.value = true
@@ -117,13 +127,20 @@ const loadData = async () => {
117127
) {
118128
// tips:写死 value 值是为了保持漏斗顺序不变
119129
const list: { value: number; name: string }[] = []
120-
list.push({ value: 60, name: `客户-${data.customerCount || 0}个` })
121-
list.push({ value: 40, name: `商机-${data.businessCount || 0}个` })
122-
list.push({ value: 20, name: `赢单-${data.winCount || 0}个` })
130+
if (active.value) {
131+
list.push({ value: 60, name: `客户-${data.customerCount || 0}个` })
132+
list.push({ value: 40, name: `商机-${data.businessCount || 0}个` })
133+
list.push({ value: 20, name: `赢单-${data.businessWinCount || 0}个` })
134+
} else {
135+
list.push({ value: data.customerCount || 0, name: `客户-${data.customerCount || 0}个` })
136+
list.push({ value: data.businessCount || 0, name: `商机-${data.businessCount || 0}个` })
137+
list.push({ value: data.businessWinCount || 0, name: `赢单-${data.businessWinCount || 0}个` })
138+
}
139+
123140
echartsOption.series[0]['data'] = list
124141
}
125142
// 2.2 获取商机结束状态统计
126-
list.value = await StatisticFunnelApi.getBusinessEndStatusSummary(props.queryParams)
143+
list.value = await StatisticFunnelApi.getBusinessSummaryByEndStatus(props.queryParams)
127144
loading.value = false
128145
}
129146
defineExpose({ loadData })

0 commit comments

Comments
 (0)