feat(销售管理): 实现团队业绩排名和客户问题统计功能
- 添加团队业绩排名和客户迫切问题API接口 - 重构ProblemRanking组件以使用真实API数据 - 修改GroupComparison组件以支持团队排名数据展示 - 优化样式和移除调试日志 - 添加数据默认值处理防止渲染错误
This commit is contained in:
@@ -41,11 +41,16 @@
|
||||
/>
|
||||
</div>
|
||||
<div class="problem-ranking">
|
||||
<ProblemRanking />
|
||||
<!-- 客户迫切解决的问题 -->
|
||||
<ProblemRanking :problemRanking="problemRanking" />
|
||||
</div>
|
||||
<!-- Right Section - Group Comparison -->
|
||||
<div class="right-section">
|
||||
<GroupComparison :groups="groups" @select-group="selectGroup" />
|
||||
<GroupComparison
|
||||
:groups="groups"
|
||||
:teamRanking="teamRanking"
|
||||
@select-group="selectGroup"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Team Members Detail Section -->
|
||||
@@ -145,7 +150,11 @@ import TeamAlerts from '../maneger/components/TeamAlerts.vue'
|
||||
import ProblemRanking from './components/ProblemRanking.vue'
|
||||
import StatisticalIndicators from './components/StatisticalIndicators.vue'
|
||||
import UserDropdown from '@/components/UserDropdown.vue'
|
||||
import { getOverallTeamPerformance,getTotalGroupCount,getConversionRate,getTotalCallCount,getNewCustomer,getDepositConversionRate,getActiveCustomerCommunicationRate,getAverageAnswerTime,getTimeoutRate,getTableFillingRate } from '@/api/senorManger.js'
|
||||
import { getOverallTeamPerformance,getTotalGroupCount,getConversionRate,getTotalCallCount,
|
||||
getNewCustomer,getDepositConversionRate,getActiveCustomerCommunicationRate,getAverageAnswerTime,
|
||||
getTimeoutRate,getTableFillingRate,getUrgentNeedToAddress,getTeamRanking } from '@/api/senorManger.js'
|
||||
|
||||
|
||||
|
||||
|
||||
import { useUserStore } from '@/stores/user.js'
|
||||
@@ -311,18 +320,99 @@ async function fetchTableFillingRate() {
|
||||
console.error('获取表格填写率失败:', error)
|
||||
}
|
||||
}
|
||||
const problemRanking = ref({})
|
||||
|
||||
// 客户迫切解决的问题
|
||||
async function fetchUrgentNeedToAddress() {
|
||||
const params={
|
||||
user_name: userStore.userInfo.username,
|
||||
user_level: userStore.userInfo.user_level.toString()
|
||||
}
|
||||
try {
|
||||
const response = await getUrgentNeedToAddress(params)
|
||||
problemRanking.value = response.data
|
||||
/**
|
||||
* "data": {
|
||||
"user_name": "陈盼良",
|
||||
"user_level": 3,
|
||||
"calculate_urgent_issue_ratio": {
|
||||
"成绩提升": "0.00%",
|
||||
"少玩手机": "0.00%",
|
||||
"回归学校": "0.00%",
|
||||
"心理健康": "0.00%"
|
||||
},
|
||||
"urgent_issue_consultations": {
|
||||
"成绩提升": 0,
|
||||
"少玩手机": 0,
|
||||
"回归学校": 0,
|
||||
"心理健康": 0
|
||||
}
|
||||
}
|
||||
*/
|
||||
// console.log('客户迫切解决的问题:', response.data)
|
||||
} catch (error) {
|
||||
console.error('获取客户迫切解决的问题失败:', error)
|
||||
}
|
||||
}
|
||||
//综合表现排名
|
||||
const teamRanking = ref({})
|
||||
|
||||
async function fetchTeamRanking() {
|
||||
console.log(555555,userStore.userInfo)
|
||||
const params={
|
||||
user_name: userStore.userInfo.username,
|
||||
user_level: userStore.userInfo.user_level.toString(),
|
||||
}
|
||||
try {
|
||||
const response = await getTeamRanking(params)
|
||||
teamRanking.value = response.data
|
||||
/**
|
||||
* "data": {
|
||||
"user_name": "陈盼良",
|
||||
"user_level": 3,
|
||||
"formal_plural": {
|
||||
"巅峰五部-时永帅": 2,
|
||||
"技术部": 0,
|
||||
"星火一部--张瑾": 4,
|
||||
"美团业务支持部": 0,
|
||||
"星耀三部-周毅": 3,
|
||||
"亮剑二部-田贵星": 2,
|
||||
"巅峰三部--刘东洋": 0
|
||||
},
|
||||
"composition_transformation": {
|
||||
"巅峰五部-时永帅": "0.00%",
|
||||
"技术部": "0.00%",
|
||||
"星火一部--张瑾": "11.43%",
|
||||
"美团业务支持部": "0.00%",
|
||||
"星耀三部-周毅": "15.00%",
|
||||
"亮剑二部-田贵星": "5.71%",
|
||||
"巅峰三部--刘东洋": "0.00%"
|
||||
}
|
||||
}
|
||||
*/
|
||||
console.log('团队业绩排名:', response.data)
|
||||
} catch (error) {
|
||||
console.error('获取团队业绩排名失败:', error)
|
||||
}
|
||||
}
|
||||
|
||||
// 初始化时获取数据
|
||||
onMounted(async ()=>{
|
||||
await fetchOverallTeamPerformance()
|
||||
await fetchActiveGroups()
|
||||
await fetchConversionRate()
|
||||
await fetchTotalCallCount()
|
||||
await fetchNewCustomers()
|
||||
await fetchDepositConversions()
|
||||
await fetchCustomerCommunicationRate()
|
||||
await fetchAverageResponseTime()
|
||||
await fetchTimeoutRate()
|
||||
await fetchTableFillingRate()
|
||||
// await fetchOverallTeamPerformance()
|
||||
// await fetchActiveGroups()
|
||||
// await fetchConversionRate()
|
||||
// await fetchTotalCallCount()
|
||||
// await fetchNewCustomers()
|
||||
// await fetchDepositConversions()
|
||||
// await fetchCustomerCommunicationRate()
|
||||
// await fetchAverageResponseTime()
|
||||
// await fetchTimeoutRate()
|
||||
// await fetchTableFillingRate()
|
||||
await fetchUrgentNeedToAddress()
|
||||
await fetchTeamRanking()
|
||||
// await fetchProblemRanking()
|
||||
|
||||
|
||||
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user