feat(经理看板): 实现团队战报数据动态展示功能

- 移除manager.js中重复的API函数
- 在TeamReport组件中实现数据绑定和格式化功能
- 在manager.vue中添加数据获取逻辑和参数处理
- 添加数据监听和调试日志
This commit is contained in:
2025-08-13 22:09:51 +08:00
parent 10fdf11026
commit 366d7b6120
3 changed files with 132 additions and 18 deletions

View File

@@ -11,8 +11,8 @@
"
>
<!-- 经理个人看板 -->
<sale style="width: 100%;">
</sale>
<!-- <sale style="width: 100%;">
</sale> -->
<!-- 经理团队看板 -->
<h1>经理团队看板</h1>
<main class="dashboard-main">
@@ -21,7 +21,8 @@
<!-- Team Alerts -->
<TeamAlerts />
<!-- Today's Team Report -->
<TeamReport />
<TeamReport :weekTotalData="weekTotalData" />
</div>
<!-- Sales Funnel Section -->
<SalesFunnel />
@@ -48,7 +49,7 @@
</template>
<script setup>
import { ref } from "vue";
import { ref, onMounted } from "vue";
import TeamAlerts from "./components/TeamAlerts.vue";
import TeamReport from "./components/TeamReport.vue";
import SalesFunnel from "./components/SalesFunnel.vue";
@@ -59,6 +60,10 @@ import SalesTimelineWithTaskList from "../person/components/SalesTimelineWithTas
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";
// 团队成员数据
const teamMembers = [
@@ -184,6 +189,78 @@ const teamMembers = [
},
];
// 路由实例
const router = useRouter();
// 获取通用请求参数的函数
const getRequestParams = () => {
const params = {}
// 只从路由参数获取
const routeUserLevel = router.currentRoute.value.query.user_level || router.currentRoute.value.params.user_level
const routeUserName = router.currentRoute.value.query.user_name || router.currentRoute.value.params.user_name
// 如果路由有参数,使用路由参数
if (routeUserLevel) {
params.user_level = routeUserLevel.toString()
}
if (routeUserName) {
params.user_name = routeUserName
}
return params
}
// 团队战报总览
const weekTotalData = ref({
week_total_call: {},
week_add_customer_total: {},
week_add_deal_total: {},
week_add_fee_total: {},
});
// 团队总通话
async function TeamGetWeekTotalCall() {
const params = getRequestParams()
const hasParams = params.user_name
const res = await getWeekTotalCall(hasParams ? params : undefined)
console.log(res)
if (res.code === 200) {
weekTotalData.value.week_total_call = res.data
}
}
// 新增客户
async function TeamGetWeekAddCustomerTotal() {
const params = getRequestParams()
const hasParams = params.user_name
const res = await getWeekAddCustomerTotal(hasParams ? params : undefined)
console.log(res)
if (res.code === 200) {
weekTotalData.value.week_add_customer_total = res.data
}
}
// 新增成交
async function TeamGetWeekAddDealTotal() {
const params = getRequestParams()
const hasParams = params.user_name
const res = await getWeekAddDealTotal(hasParams ? params : undefined)
console.log(res)
if (res.code === 200) {
weekTotalData.value.week_add_deal_total = res.data
}
}
// 总业绩
// 销售漏斗
async function TeamGetGroupFunnel() {
const params = getRequestParams()
const hasParams = params.user_name
const res = await getGroupFunnel(hasParams ? params : undefined)
console.log(res)
if (res.code === 200) {
weekTotalData.value.week_add_fee_total = res.data
}
}
// 当前选中的成员,默认为第一名
const selectedMember = ref(teamMembers[0]);
@@ -191,6 +268,15 @@ const selectedMember = ref(teamMembers[0]);
const selectMember = (member) => {
selectedMember.value = member;
};
onMounted(async () => {
await TeamGetWeekTotalCall()
await TeamGetWeekAddCustomerTotal()
await TeamGetWeekAddDealTotal()
// await TeamGetWeekAddFeeTotal()
await TeamGetGroupFunnel()
})
</script>
<style lang="scss" scoped>