refactor(导航): 优化团队导航逻辑和指标描述
- 统一从高级经理到经理页面的导航路径和参数传递 - 添加团队双击事件处理并跳转到经理页面 - 简化指标描述文本,移除冗余解释
This commit is contained in:
@@ -126,7 +126,7 @@ const metricDescriptions = {
|
|||||||
},
|
},
|
||||||
conversionRate: {
|
conversionRate: {
|
||||||
title: '定金转化率',
|
title: '定金转化率',
|
||||||
description: '支付定金的客户数 ÷ 意向客户总数,反映客户从意向到付费的转化效果。'
|
description: '支付定金的客户数 ÷ 意向客户总数'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -275,10 +275,10 @@ const getRankingClass = (index) => {
|
|||||||
// 处理部门双击事件,跳转到经理页面
|
// 处理部门双击事件,跳转到经理页面
|
||||||
const navigateToManager = (group) => {
|
const navigateToManager = (group) => {
|
||||||
router.push({
|
router.push({
|
||||||
path: '/senior-manager',
|
path: '/manager',
|
||||||
query: {
|
query: {
|
||||||
user_name: group.id,
|
user_name: group.leader,
|
||||||
user_level: 3
|
user_level: 2
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
class="ranking-card"
|
class="ranking-card"
|
||||||
:class="getRankingClass(index)"
|
:class="getRankingClass(index)"
|
||||||
@click="$emit('select-group', group)"
|
@click="$emit('select-group', group)"
|
||||||
|
@dblclick="$emit('team-double-click', group)"
|
||||||
>
|
>
|
||||||
<div class="rank-badge">{{ index + 1 }}</div>
|
<div class="rank-badge">{{ index + 1 }}</div>
|
||||||
<div class="group-info">
|
<div class="group-info">
|
||||||
@@ -48,7 +49,7 @@ const props = defineProps({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const emit = defineEmits(['select-group'])
|
const emit = defineEmits(['select-group', 'team-double-click'])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -87,23 +87,23 @@ const tooltip = reactive({
|
|||||||
const metricDescriptions = {
|
const metricDescriptions = {
|
||||||
customerCommunicationRate: {
|
customerCommunicationRate: {
|
||||||
title: '活跃客户沟通率计算方式',
|
title: '活跃客户沟通率计算方式',
|
||||||
description: '有效沟通的活跃客户数 ÷ 总活跃客户数 × 100%,反映团队与活跃客户的沟通覆盖程度。'
|
description: '有效沟通的活跃客户数 ÷ 总活跃客户数 × 100%'
|
||||||
},
|
},
|
||||||
averageResponseTime: {
|
averageResponseTime: {
|
||||||
title: '平均应答时间计算方式',
|
title: '平均应答时间计算方式',
|
||||||
description: '所有通话的应答时间总和 ÷ 通话总次数,以分钟为单位,反映团队的响应效率。'
|
description: '所有通话的应答时间总和 ÷ 通话总次数'
|
||||||
},
|
},
|
||||||
timeoutResponseRate: {
|
timeoutResponseRate: {
|
||||||
title: '超时应答率计算方式',
|
title: '超时应答率计算方式',
|
||||||
description: '超时应答的通话次数 ÷ 总通话次数 × 100%,超时标准通常为30秒以上。'
|
description: '超时应答的通话次数 ÷ 总通话次数 × 100%'
|
||||||
},
|
},
|
||||||
severeTimeoutRate: {
|
severeTimeoutRate: {
|
||||||
title: '严重超时应答率计算方式',
|
title: '严重超时应答率计算方式',
|
||||||
description: '严重超时应答的通话次数 ÷ 总通话次数 × 100%,严重超时标准通常为60秒以上。'
|
description: '严重超时应答的通话次数 ÷ 总通话次数 × 100%'
|
||||||
},
|
},
|
||||||
formCompletionRate: {
|
formCompletionRate: {
|
||||||
title: '表格填写率计算方式',
|
title: '表格填写率计算方式',
|
||||||
description: '已完成填写的表格数量 ÷ 应填写的表格总数 × 100%,反映团队的工作完成度。'
|
description: '已完成填写的表格数量 ÷ 应填写的表格总数 × 100%'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -71,6 +71,7 @@
|
|||||||
:groups="groups"
|
:groups="groups"
|
||||||
:teamRanking="teamRanking"
|
:teamRanking="teamRanking"
|
||||||
@select-group="selectGroup"
|
@select-group="selectGroup"
|
||||||
|
@team-double-click="handleTeamDoubleClick"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -553,6 +554,7 @@ const selectedGroup = ref(groups[0])
|
|||||||
|
|
||||||
// 选择组别函数
|
// 选择组别函数
|
||||||
const selectGroup = async (group) => {
|
const selectGroup = async (group) => {
|
||||||
|
console.log('选择的组别:', group)
|
||||||
selectedGroup.value = group
|
selectedGroup.value = group
|
||||||
// 获取部门名称并调用团队业绩详情接口
|
// 获取部门名称并调用团队业绩详情接口
|
||||||
// 从teamRanking数据中查找对应的原始部门名称
|
// 从teamRanking数据中查找对应的原始部门名称
|
||||||
@@ -582,6 +584,20 @@ const selectGroup = async (group) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 处理团队双击事件
|
||||||
|
const handleTeamDoubleClick = (group) => {
|
||||||
|
console.log('团队双击事件触发,团队数据:', group)
|
||||||
|
|
||||||
|
// 跳转到manager页面,携带团队负责人和用户等级
|
||||||
|
router.push({
|
||||||
|
path: '/manager',
|
||||||
|
query: {
|
||||||
|
user_name: group.leader,
|
||||||
|
user_level: 2
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 处理成员双击事件
|
// 处理成员双击事件
|
||||||
const handleMemberDoubleClick = (member) => {
|
const handleMemberDoubleClick = (member) => {
|
||||||
console.log('双击事件触发,成员数据:', member)
|
console.log('双击事件触发,成员数据:', member)
|
||||||
|
|||||||
Reference in New Issue
Block a user