feat(secondTop): 添加各阶段转化率功能并集成到组排名组件

- 新增获取各阶段转化率API接口
- 在secondTop页面中调用API并获取数据
- 将转化率数据传递给GroupRanking组件
- 修改GroupRanking组件以动态显示转化率数据
This commit is contained in:
2025-08-15 16:17:16 +08:00
parent 353a3f194d
commit bcab4995e3
3 changed files with 125 additions and 35 deletions

View File

@@ -55,6 +55,12 @@ export const getTeamRankingInfo = (params) => {
return https.post('/api/v1/level_four/overview/team_ranking_info', params)
}
// 各阶段转化率 /api/v1/level_four/overview/conversion_rate_vs_average
export const getConversionRateVsAverage = (params) => {
return https.post('/api/v1/level_four/overview/conversion_rate_vs_average', params)
}

View File

@@ -55,8 +55,6 @@
</div>
</div>
</div>
</div>
</template>
@@ -67,42 +65,88 @@ const props = defineProps({
selectedGroup: {
type: Object,
default: null
},
conversionData: {
type: Object,
default: () => ({})
}
})
// 转化率数据
const conversionStages = ref([
{
name: '加微',
teamRate: 80,
companyRate: 85
},
{
name: '填表',
teamRate: 90,
companyRate: 92
},
{
name: '通话',
teamRate: 95,
companyRate: 95
},
{
name: '首课',
teamRate: 60,
companyRate: 65
},
{
name: '三课',
teamRate: 85,
companyRate: 88
},
{
name: '付费',
teamRate: 15,
companyRate: 20
const conversionStages = computed(() => {
// 如果有传入的转化率数据,使用传入的数据
if (props.conversionData && props.conversionData.conversion_rate && props.conversionData.company_conversion_rate) {
const userRates = props.conversionData.conversion_rate
const companyRates = props.conversionData.company_conversion_rate
return [
{
name: '加微',
teamRate: parseFloat(userRates['加微']) || 0,
companyRate: parseFloat(companyRates['加微']) || 0
},
{
name: '填表',
teamRate: parseFloat(userRates['填表']) || 0,
companyRate: parseFloat(companyRates['填表']) || 0
},
{
name: '通话',
teamRate: parseFloat(userRates['通话']) || 0,
companyRate: parseFloat(companyRates['通话']) || 0
},
{
name: '首课',
teamRate: parseFloat(userRates['首课']) || 0,
companyRate: parseFloat(companyRates['首课']) || 0
},
{
name: '三课',
teamRate: parseFloat(userRates['三课']) || 0,
companyRate: parseFloat(companyRates['三课']) || 0
},
{
name: '付费',
teamRate: parseFloat(userRates['付费']) || 0,
companyRate: parseFloat(companyRates['付费']) || 0
}
]
}
])
// 默认数据
return [
{
name: '加微',
teamRate: 80,
companyRate: 85
},
{
name: '填表',
teamRate: 90,
companyRate: 92
},
{
name: '通话',
teamRate: 95,
companyRate: 95
},
{
name: '首课',
teamRate: 60,
companyRate: 65
},
{
name: '三课',
teamRate: 85,
companyRate: 88
},
{
name: '付费',
teamRate: 15,
companyRate: 20
}
]
})
// Y轴标签
const yAxisLabels = ref(['100%', '80%', '60%', '40%', '20%', '0%'])

View File

@@ -46,7 +46,7 @@
<div class="bottom-section">
<!-- Left Section - Group Performance Ranking -->
<div class="left-section">
<GroupRanking :groups="groups" :selected-group="selectedGroup" @select-group="selectGroup" />
<GroupRanking :groups="groups" :selected-group="selectedGroup" :conversion-data="conversionRateVsAverage" @select-group="selectGroup" />
</div>
<!-- Right Section - Group Comparison -->
@@ -152,7 +152,9 @@
import UserDropdown from '@/components/UserDropdown.vue'
import {
getOverallCenterPerformance, getTotalGroupCount, getCenterConversionRate, getTotalCallCount, getNewCustomer
, getDepositConversionRate, getCustomerTypeDistribution, getUrgentNeedToAddress, getCenterAdvancedManagerList, getTeamRanking, getTeamRankingInfo
, getDepositConversionRate, getCustomerTypeDistribution, getUrgentNeedToAddress, getCenterAdvancedManagerList, getTeamRanking,
getTeamRankingInfo, getConversionRateVsAverage
} from '@/api/secondTop.js'
import { useRouter } from 'vue-router'
import { useUserStore } from '@/stores/user.js'
@@ -317,6 +319,42 @@
console.error('获取中心整体概览失败:', error)
}
}
// 各阶段转化率
const conversionRateVsAverage = ref({})
async function CenterConversionRateVsAverage() {
const params = getRequestParams()
const hasParams = params.user_name
try {
const res = await getConversionRateVsAverage(hasParams ? params : undefined)
if (res.code === 200) {
conversionRateVsAverage.value = res.data
/**
* "data": {
"user_name": "刘瑞",
"user_level": 4,
"conversion_rate": {
"加微": "21.72%",
"填表": "21.72%",
"通话": "0.00%",
"首课": "37.08%",
"三课": "14.61%",
"付费": "1.87%"
},
"company_conversion_rate": {
"加微": "12.49%",
"填表": "12.49%",
"通话": "0.00%",
"首课": "39.07%",
"三课": "24.27%",
"付费": "1.27%"
}
}
*/
}
} catch (error) {
console.error('获取中心整体概览失败:', error)
}
}
// 综合排名---高级经理列表
const seniorManagerList = ref([])
@@ -409,6 +447,8 @@
await CenterDepositConversionRate()
await CenterCustomerType()
await CenterUrgentNeedToAddress()
await CenterConversionRateVsAverage()
await CenterSeniorManagerList()
await CenterGroupList('all') // 初始化加载全部高级经理数据
})