CRM: 新增商机赢单转化率分析

liutao_branch
puhui999 2 years ago
parent 014d1f8cd2
commit 4e640bae88

@ -134,81 +134,109 @@ watch(
) )
/** 柱状图配置:纵向 */ /** 柱状图配置:纵向 */
const echartsOption = reactive<EChartsOption>({ const echartsOption = reactive<EChartsOption>({
color: ['#6ca2ff', '#6ac9d7', '#ff7474'],
tooltip: {
trigger: 'axis',
axisPointer: {
//
type: 'shadow' // 线'line' | 'shadow'
}
},
legend: {
data: ['赢单转化率', '商机总数', '赢单商机数'],
bottom: '0px',
itemWidth: 14
},
grid: { grid: {
left: 30, top: '40px',
right: 30, // X left: '40px',
bottom: 20, right: '40px',
containLabel: true bottom: '40px',
containLabel: true,
borderColor: '#fff'
}, },
legend: {}, xAxis: [
series: [
{
name: '商机总数',
type: 'bar',
yAxisIndex: 0,
data: []
},
{
name: '赢单商机数',
type: 'bar',
yAxisIndex: 1,
data: []
},
{ {
name: '赢单转化率', type: 'category',
type: 'bar', data: [],
yAxisIndex: 2, axisTick: {
data: [] alignWithLabel: true,
} lineStyle: { width: 0 }
],
toolbox: {
feature: {
dataZoom: {
xAxisIndex: false // Y
}, },
brush: { axisLabel: {
type: ['lineX', 'clear'] // color: '#BDBDBD'
}, },
saveAsImage: { show: true, name: '商机转化率分析' } // /** 坐标轴轴线相关设置 */
} axisLine: {
}, lineStyle: { color: '#BDBDBD' }
tooltip: { },
trigger: 'axis', splitLine: {
axisPointer: { show: false
type: 'shadow' }
} }
}, ],
yAxis: [ yAxis: [
{ {
type: 'value', type: 'value',
name: '商机总数', name: '赢单转化率',
min: 0, axisTick: {
minInterval: 1 // alignWithLabel: true,
}, lineStyle: { width: 0 }
{ },
type: 'value', axisLabel: {
name: '赢单商机数', color: '#BDBDBD',
min: 0, formatter: '{value}%'
minInterval: 1 // },
/** 坐标轴轴线相关设置 */
axisLine: {
lineStyle: { color: '#BDBDBD' }
},
splitLine: {
show: false
}
}, },
{ {
type: 'value', type: 'value',
name: '赢单转化率', name: '商机数',
min: 0, axisTick: {
minInterval: 1, // alignWithLabel: true,
lineStyle: { width: 0 }
},
axisLabel: {
color: '#BDBDBD',
formatter: '{value}个'
},
/** 坐标轴轴线相关设置 */
axisLine: {
lineStyle: { color: '#BDBDBD' }
},
splitLine: { splitLine: {
lineStyle: { show: false
type: 'dotted', // 线,
opacity: 0.7
}
} }
} }
], ],
xAxis: { series: [
type: 'category', {
name: '日期', name: '赢单转化率',
data: [] type: 'line',
} yAxisIndex: 0,
data: []
},
{
name: '商机总数',
type: 'bar',
yAxisIndex: 1,
barWidth: 15,
data: []
},
{
name: '赢单商机数',
type: 'bar',
yAxisIndex: 1,
barWidth: 15,
data: []
}
]
}) as EChartsOption }) as EChartsOption
/** 获取数据并填充图表 */ /** 获取数据并填充图表 */
@ -218,27 +246,28 @@ const fetchAndFill = async () => {
props.queryParams props.queryParams
) )
// 2.1 Echarts // 2.1 Echarts
if (echartsOption.xAxis && echartsOption.xAxis['data']) { if (echartsOption.xAxis && echartsOption.xAxis[0] && echartsOption.xAxis[0]['data']) {
echartsOption.xAxis['data'] = businessSummaryByDate.map( echartsOption.xAxis[0]['data'] = businessSummaryByDate.map(
(s: CrmStatisticsBusinessInversionRateSummaryByDateRespVO) => s.time (s: CrmStatisticsBusinessInversionRateSummaryByDateRespVO) => s.time
) )
} }
if (echartsOption.series && echartsOption.series[0] && echartsOption.series[0]['data']) { if (echartsOption.series && echartsOption.series[0] && echartsOption.series[0]['data']) {
echartsOption.series[0]['data'] = businessSummaryByDate.map( echartsOption.series[0]['data'] = businessSummaryByDate.map(
(s: CrmStatisticsBusinessInversionRateSummaryByDateRespVO) => s.businessCount (s: CrmStatisticsBusinessInversionRateSummaryByDateRespVO) =>
erpCalculatePercentage(s.businessWinCount, s.businessCount)
) )
} }
if (echartsOption.series && echartsOption.series[1] && echartsOption.series[1]['data']) { if (echartsOption.series && echartsOption.series[1] && echartsOption.series[1]['data']) {
echartsOption.series[1]['data'] = businessSummaryByDate.map( echartsOption.series[1]['data'] = businessSummaryByDate.map(
(s: CrmStatisticsBusinessInversionRateSummaryByDateRespVO) => s.businessWinCount (s: CrmStatisticsBusinessInversionRateSummaryByDateRespVO) => s.businessCount
) )
} }
if (echartsOption.series && echartsOption.series[2] && echartsOption.series[2]['data']) { if (echartsOption.series && echartsOption.series[2] && echartsOption.series[2]['data']) {
echartsOption.series[2]['data'] = businessSummaryByDate.map( echartsOption.series[2]['data'] = businessSummaryByDate.map(
(s: CrmStatisticsBusinessInversionRateSummaryByDateRespVO) => (s: CrmStatisticsBusinessInversionRateSummaryByDateRespVO) => s.businessWinCount
erpCalculatePercentage(s.businessWinCount, s.businessCount)
) )
} }
// 2.2 // 2.2
await getList() await getList()
} }

Loading…
Cancel
Save