feat(GroupComparison): 添加动态组别列表功能并优化显示
- 新增groupList属性支持动态加载组别数据 - 实现根据高级经理选择过滤组别功能 - 移除静态综合分显示并优化滚动条样式 - 添加数据处理逻辑支持嵌套API响应结构
This commit is contained in:
@@ -51,7 +51,7 @@
|
||||
|
||||
<!-- Right Section - Group Comparison -->
|
||||
<div class="right-section">
|
||||
<GroupComparison :groups="groups" :senior-manager-data="seniorManagerList" @select-group="selectGroup" />
|
||||
<GroupComparison :groups="groups" :senior-manager-data="seniorManagerList" :group-list="groupList" @select-group="selectGroup" @manager-change="handleManagerChange" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -327,23 +327,41 @@
|
||||
const res = await getCenterAdvancedManagerList(hasParams ? params : undefined)
|
||||
if (res.code === 200) {
|
||||
seniorManagerList.value = res.data
|
||||
/**
|
||||
* "data": {
|
||||
"user_name": "刘瑞",
|
||||
"user_level": 4,
|
||||
"center_advanced_managers": [
|
||||
"陈盼良"
|
||||
]
|
||||
}
|
||||
*/
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取中心整体概览失败:', error)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 综合排名---组别列表
|
||||
const groupList = ref([])
|
||||
async function CenterGroupList(selectedManagerId = 'all') {
|
||||
const params = getRequestParams()
|
||||
const hasParams = params.user_name
|
||||
|
||||
// 根据选择的经理构建请求参数
|
||||
let requestParams = hasParams ? { ...params } : {}
|
||||
|
||||
if (selectedManagerId === 'all') {
|
||||
requestParams.get_all = "true"
|
||||
} else {
|
||||
// 根据manager id找到对应的名字
|
||||
const selectedManager = seniorManagerList.value?.center_advanced_managers?.find((name, index) => `manager_${index}` === selectedManagerId)
|
||||
console.log('Found Manager:', selectedManager)
|
||||
if (selectedManager) {
|
||||
requestParams.team_leader_name = selectedManager
|
||||
}
|
||||
}
|
||||
try {
|
||||
const res = await getTeamRanking(requestParams)
|
||||
console.log('API Response:', res)
|
||||
if (res.code === 200) {
|
||||
groupList.value = res.data
|
||||
console.log('Updated groupList:', groupList.value)
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取团队排名失败:', error)
|
||||
}
|
||||
}
|
||||
|
||||
// 当前选中的组别,默认为第一个
|
||||
const selectedGroup = ref(groups[0])
|
||||
@@ -353,6 +371,11 @@
|
||||
selectedGroup.value = group
|
||||
}
|
||||
|
||||
// 处理高级经理选择变化
|
||||
const handleManagerChange = (selectedManagerId) => {
|
||||
CenterGroupList(selectedManagerId)
|
||||
}
|
||||
|
||||
// 格式化货币
|
||||
const formatCurrency = (value) => {
|
||||
if (value >= 10000) {
|
||||
@@ -387,7 +410,7 @@
|
||||
await CenterCustomerType()
|
||||
await CenterUrgentNeedToAddress()
|
||||
await CenterSeniorManagerList()
|
||||
|
||||
await CenterGroupList('all') // 初始化加载全部高级经理数据
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user