diff --git a/my-vue-app/src/views/secondTop/components/GroupRanking.vue b/my-vue-app/src/views/secondTop/components/GroupRanking.vue index cfa0b13..9880b2e 100644 --- a/my-vue-app/src/views/secondTop/components/GroupRanking.vue +++ b/my-vue-app/src/views/secondTop/components/GroupRanking.vue @@ -30,7 +30,7 @@
@@ -72,79 +72,58 @@ const props = defineProps({ } }) -// 转化率数据 +// 转化率数据(含人数) 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 - } - ] + // 兼容新的数据结构: + // { + // conversion_rate_and_count: { + // center_conversion_rate: { "加微": "20.23%", ... }, + // center_conversion_count: { "加微": 53, ... } + // }, + // company_conversion_rate_and_count: { + // company_conversion_rate: { "加微": "8.44%", ... }, + // company_conversion_count: { "加微": 558, ... } + // } + // } + if ( + props.conversionData && + props.conversionData.conversion_rate_and_count && + props.conversionData.company_conversion_rate_and_count + ) { + const user = props.conversionData.conversion_rate_and_count + const company = props.conversionData.company_conversion_rate_and_count + + const userRates = user.center_conversion_rate || {} + const userCounts = user.center_conversion_count || {} + const companyRates = company.company_conversion_rate || {} + const companyCounts = company.company_conversion_count || {} + + const toNumber = (v) => { + if (v === null || v === undefined) return 0 + if (typeof v === 'number') return v + // v 可能是 "20.23%" 这样的字符串 + const n = parseFloat(String(v)) + return isNaN(n) ? 0 : n + } + + const stages = ['加微', '填表', '通话', '到课', '付定金', '付费'] + return stages.map(name => ({ + name, + teamRate: toNumber(userRates[name]), + teamCount: toNumber(userCounts[name]), + companyRate: toNumber(companyRates[name]), + companyCount: toNumber(companyCounts[name]) + })) } - // 默认数据 + // 默认数据(名称对齐新接口) 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 - } + { name: '加微', teamRate: 80, companyRate: 85, teamCount: 0, companyCount: 0 }, + { name: '填表', teamRate: 90, companyRate: 92, teamCount: 0, companyCount: 0 }, + { name: '通话', teamRate: 95, companyRate: 95, teamCount: 0, companyCount: 0 }, + { name: '到课', teamRate: 60, companyRate: 65, teamCount: 0, companyCount: 0 }, + { name: '付定金', teamRate: 18, companyRate: 20, teamCount: 0, companyCount: 0 }, + { name: '付费', teamRate: 15, companyRate: 20, teamCount: 0, companyCount: 0 } ] }) diff --git a/my-vue-app/src/views/secondTop/secondTop.vue b/my-vue-app/src/views/secondTop/secondTop.vue index ce283c3..82d1a0e 100644 --- a/my-vue-app/src/views/secondTop/secondTop.vue +++ b/my-vue-app/src/views/secondTop/secondTop.vue @@ -328,28 +328,6 @@ const conversionRateVsAverage = ref({}) 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) diff --git a/my-vue-app/src/views/topOne/components/DetailedDataTable.vue b/my-vue-app/src/views/topOne/components/DetailedDataTable.vue index 0a6012d..7993250 100644 --- a/my-vue-app/src/views/topOne/components/DetailedDataTable.vue +++ b/my-vue-app/src/views/topOne/components/DetailedDataTable.vue @@ -19,10 +19,10 @@