feat(manager): 实现团队管理页面的数据对接和功能优化
- 新增团队异常预警API接口和数据展示 - 完善销售漏斗组件,对接实际数据 - 优化业绩排名组件,支持多种数据源 - 更新成员详情组件,适配新数据结构 - 重构管理页面,整合多个API调用
This commit is contained in:
@@ -19,13 +19,13 @@
|
||||
<!-- Top Section - Team Alerts and Today's Report -->
|
||||
<div class="top-section">
|
||||
<!-- Team Alerts -->
|
||||
<TeamAlerts />
|
||||
<TeamAlerts :abnormalData="groupAbnormalResponse" />
|
||||
<!-- Today's Team Report -->
|
||||
<TeamReport :weekTotalData="weekTotalData" />
|
||||
|
||||
</div>
|
||||
<!-- Sales Funnel Section -->
|
||||
<SalesFunnel />
|
||||
<SalesFunnel :funnelData="weekTotalData.group_funnel" />
|
||||
|
||||
<!-- Bottom Section -->
|
||||
<div class="bottom-section">
|
||||
@@ -34,6 +34,7 @@
|
||||
<PerformanceRanking
|
||||
:team-members="teamMembers"
|
||||
:selected-member="selectedMember"
|
||||
:group-ranking="groupRanking"
|
||||
@select-member="selectMember"
|
||||
/>
|
||||
</div>
|
||||
@@ -61,9 +62,7 @@ import RawDataCards from "../person/components/RawDataCards.vue";
|
||||
import CustomerDetail from "../person/components/CustomerDetail.vue";
|
||||
import { useUserStore } from "@/stores/user";
|
||||
import { useRouter } from "vue-router";
|
||||
import { getWeekTotalCall, getWeekAddCustomerTotal, getWeekAddDealTotal, getWeekAddFeeTotal, getGroupFunnel } from "@/api/manager.js";
|
||||
|
||||
|
||||
import {getGroupAbnormalResponse, getWeekTotalCall, getWeekAddCustomerTotal, getWeekAddDealTotal, getWeekAddFeeTotal, getGroupFunnel,getPayDepositToMoneyRate,getGroupRanking } from "@/api/manager.js";
|
||||
|
||||
// 团队成员数据
|
||||
const teamMembers = [
|
||||
@@ -214,8 +213,21 @@ const weekTotalData = ref({
|
||||
week_add_customer_total: {},
|
||||
week_add_deal_total: {},
|
||||
week_add_fee_total: {},
|
||||
pay_deposit_to_money_rate: {},
|
||||
group_funnel: {},
|
||||
week_add_fee_total: {},
|
||||
});
|
||||
|
||||
// 团队异常预警
|
||||
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
|
||||
}
|
||||
}
|
||||
// 团队总通话
|
||||
async function TeamGetWeekTotalCall() {
|
||||
const params = getRequestParams()
|
||||
@@ -246,9 +258,19 @@ async function TeamGetWeekAddDealTotal() {
|
||||
weekTotalData.value.week_add_deal_total = res.data
|
||||
}
|
||||
}
|
||||
// 总业绩
|
||||
// 月度总业绩
|
||||
|
||||
|
||||
// 定金转化
|
||||
async function TeamGetWeekAddFeeTotal() {
|
||||
const params = getRequestParams()
|
||||
const hasParams = params.user_name
|
||||
const res = await getPayDepositToMoneyRate(hasParams ? params : undefined)
|
||||
console.log(res)
|
||||
if (res.code === 200) {
|
||||
weekTotalData.value.pay_deposit_to_money_rate = res.data
|
||||
}
|
||||
}
|
||||
// 销售漏斗
|
||||
async function TeamGetGroupFunnel() {
|
||||
const params = getRequestParams()
|
||||
@@ -256,9 +278,74 @@ async function TeamGetGroupFunnel() {
|
||||
const res = await getGroupFunnel(hasParams ? params : undefined)
|
||||
console.log(res)
|
||||
if (res.code === 200) {
|
||||
weekTotalData.value.week_add_fee_total = res.data
|
||||
weekTotalData.value.group_funnel = res.data
|
||||
/**
|
||||
* "data": {
|
||||
"user_name": "马然",
|
||||
"user_level": 2,
|
||||
"customers_count": {
|
||||
"线索总数": 132,
|
||||
"有效沟通": 33,
|
||||
"到课数据": 59,
|
||||
"预付定金": 7,
|
||||
"成功签单": 2
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
// 团队业绩排名
|
||||
const groupRanking = ref({})
|
||||
|
||||
async function TeamGetGroupRanking() {
|
||||
const params = getRequestParams()
|
||||
const hasParams = params.user_name
|
||||
const res = await getGroupRanking(hasParams ? params : undefined)
|
||||
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({})
|
||||
|
||||
|
||||
// 当前选中的成员,默认为第一名
|
||||
@@ -269,11 +356,13 @@ const selectMember = (member) => {
|
||||
selectedMember.value = member;
|
||||
};
|
||||
onMounted(async () => {
|
||||
await TeamGetGroupAbnormalResponse()
|
||||
await TeamGetWeekTotalCall()
|
||||
await TeamGetWeekAddCustomerTotal()
|
||||
await TeamGetWeekAddDealTotal()
|
||||
// await TeamGetWeekAddFeeTotal()
|
||||
await TeamGetWeekAddFeeTotal()
|
||||
await TeamGetGroupFunnel()
|
||||
await TeamGetGroupRanking()
|
||||
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user