refactor(manager): 优化团队成员详情和预警处理逻辑
- 移除硬编码的团队成员数据,改为从API获取 - 添加可选链操作符处理可能为空的成员数据 - 重构异常预警处理逻辑,动态生成预警消息 - 调整UI组件间距和样式 - 清理无用注释和代码
This commit is contained in:
@@ -95,54 +95,6 @@ const teamMembers = [
|
||||
newClients: 12,
|
||||
deals: 5,
|
||||
avgDealValue: 24000,
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: "张明",
|
||||
rank: 2,
|
||||
performance: 85000,
|
||||
conversion: 5.0,
|
||||
calls: 142,
|
||||
callTime: 6.2,
|
||||
newClients: 8,
|
||||
deals: 3,
|
||||
avgDealValue: 28333,
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: "王强",
|
||||
rank: 3,
|
||||
performance: 65000,
|
||||
conversion: 4.0,
|
||||
calls: 128,
|
||||
callTime: 5.8,
|
||||
newClients: 6,
|
||||
deals: 2,
|
||||
avgDealValue: 32500,
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
name: "赵静",
|
||||
rank: 4,
|
||||
performance: 0,
|
||||
conversion: 0.0,
|
||||
calls: 89,
|
||||
callTime: 3.2,
|
||||
newClients: 2,
|
||||
deals: 0,
|
||||
avgDealValue: 0,
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
name: "刘洋",
|
||||
rank: 5,
|
||||
performance: 0,
|
||||
conversion: 0.0,
|
||||
calls: 76,
|
||||
callTime: 2.8,
|
||||
newClients: 1,
|
||||
deals: 0,
|
||||
avgDealValue: 0,
|
||||
}
|
||||
];
|
||||
|
||||
@@ -199,10 +151,46 @@ const groupAbnormalResponse = ref({})
|
||||
async function TeamGetGroupAbnormalResponse() {
|
||||
const params = getRequestParams()
|
||||
const hasParams = params.user_name
|
||||
const res = await getGroupAbnormalResponse(hasParams ? params : undefined)
|
||||
console.log(res)
|
||||
if (res.code === 200) {
|
||||
groupAbnormalResponse.value = res.data
|
||||
try {
|
||||
const response = await getGroupAbnormalResponse(hasParams ? params : undefined)
|
||||
const rawData = response.data
|
||||
|
||||
// 转换数据格式,生成预警消息
|
||||
const processedAlerts = []
|
||||
let alertId = 1
|
||||
|
||||
// 处理严重超时异常人员
|
||||
const timeoutPersons = rawData.erious_timeout_rate_abnorma || []
|
||||
// 处理表格填写异常人员
|
||||
const fillingPersons = rawData.table_filling_abnormal || []
|
||||
|
||||
// 为每个异常人员生成独立的预警消息
|
||||
|
||||
// 处理严重超时率异常人员
|
||||
timeoutPersons.forEach(person => {
|
||||
processedAlerts.push({
|
||||
id: `timeout-${alertId++}`,
|
||||
type: 'warning',
|
||||
icon: '⚠',
|
||||
message: `${person}严重超时率过高`
|
||||
})
|
||||
})
|
||||
|
||||
// 处理表格填写率异常人员
|
||||
fillingPersons.forEach(person => {
|
||||
processedAlerts.push({
|
||||
id: `filling-${alertId++}`,
|
||||
type: 'warning',
|
||||
icon: '⚠',
|
||||
message: `${person}表格填写率过低`
|
||||
})
|
||||
})
|
||||
|
||||
// 设置处理后的数据
|
||||
groupAbnormalResponse.value = { processedAlerts }
|
||||
|
||||
} catch (error) {
|
||||
console.error('获取团队异常预警失败:', error)
|
||||
}
|
||||
}
|
||||
// 团队总通话
|
||||
@@ -281,57 +269,22 @@ async function TeamGetGroupRanking() {
|
||||
console.log(res)
|
||||
if (res.code === 200) {
|
||||
groupRanking.value = res.data
|
||||
/**
|
||||
* "data": {
|
||||
"user_name": "马然",
|
||||
"user_level": 2,
|
||||
"team_data": {
|
||||
"group_list": [
|
||||
{
|
||||
"user_name": "马然",
|
||||
"week_amount": 0,
|
||||
"conversion_rate": "0%",
|
||||
"plus_v_rate": "0%",
|
||||
"group_rate": "0%"
|
||||
},
|
||||
{
|
||||
"user_name": "程慧仟",
|
||||
"week_amount": 7100.0,
|
||||
"conversion_rate": "0.00%",
|
||||
"plus_v_rate": "0.00%",
|
||||
"group_rate": "0.00%"
|
||||
},
|
||||
{
|
||||
"user_name": "常琳",
|
||||
"week_amount": 14500.0,
|
||||
"conversion_rate": "3.51%",
|
||||
"plus_v_rate": "54.39%",
|
||||
"group_rate": "49.12%"
|
||||
},
|
||||
{
|
||||
"user_name": "王娟娟",
|
||||
"week_amount": 600.0,
|
||||
"conversion_rate": "0.00%",
|
||||
"plus_v_rate": "3.08%",
|
||||
"group_rate": "0.00%"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
// 成员详细数据
|
||||
const memberDetails = ref({})
|
||||
|
||||
|
||||
// 当前选中的成员,默认为第一名
|
||||
const selectedMember = ref(teamMembers[0]);
|
||||
// 当前选中的成员,默认为空
|
||||
const selectedMember = ref(null);
|
||||
|
||||
// 选择成员函数
|
||||
const selectMember = (member) => {
|
||||
selectedMember.value = member;
|
||||
};
|
||||
|
||||
// 团队异常预警
|
||||
|
||||
onMounted(async () => {
|
||||
await TeamGetGroupAbnormalResponse()
|
||||
await TeamGetWeekTotalCall()
|
||||
@@ -340,7 +293,6 @@ onMounted(async () => {
|
||||
await TeamGetWeekAddFeeTotal()
|
||||
await TeamGetGroupFunnel()
|
||||
await TeamGetGroupRanking()
|
||||
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user