From d7c8a9e173065f5b3d9b16c534c9c26dbc1c9cae Mon Sep 17 00:00:00 2001 From: lbw_9527443 <780139497@qq.com> Date: Tue, 26 Aug 2025 12:00:02 +0800 Subject: [PATCH] =?UTF-8?q?fix(metrics):=20=E6=9B=B4=E6=96=B0=E5=A4=9A?= =?UTF-8?q?=E4=B8=AA=E8=A7=86=E5=9B=BE=E4=B8=AD=E7=9A=84=E6=8C=87=E6=A0=87?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E6=96=B9=E5=BC=8F=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit refactor(header): 重构高级经理指挥台的头部组件,支持路由导航显示 --- .../secondTop/components/CenterOverview.vue | 12 +-- .../senorManger/components/CenterOverview.vue | 12 +-- .../src/views/senorManger/seniorManager.vue | 93 ++++++++++++++++++- .../topOne/components/DetailedDataTable.vue | 10 +- 4 files changed, 106 insertions(+), 21 deletions(-) diff --git a/my-vue-app/src/views/secondTop/components/CenterOverview.vue b/my-vue-app/src/views/secondTop/components/CenterOverview.vue index 99ea236..3a08d73 100644 --- a/my-vue-app/src/views/secondTop/components/CenterOverview.vue +++ b/my-vue-app/src/views/secondTop/components/CenterOverview.vue @@ -160,27 +160,27 @@ const tooltip = reactive({ const metricDescriptions = { centerPerformance: { title: '中心总业绩计算方式', - description: '统计本月中心所有销售团队的成交单数总和,与上期同比计算增长率。月目标完成率 = 当月实际成交单数 / 月度目标单数 × 100%' + description: '月目标完成率 = 当月成交单数 / 月度目标单数 × 100%' }, activeGroups: { title: '活跃组数计算方式', - description: '统计当前有业务活动的销售团队数量。活跃标准:本月有通话记录或成交记录的团队。总人数为所有活跃团队的人员总和' + description: '本月有通话记录或成交记录的团队。总人数为所有活跃团队的人员总和' }, conversionRate: { title: '中心转化率计算方式', - description: '中心转化率 = 总成交客户数 / 总接触客户数 × 100%。与上期对比显示增长趋势,行业平均值作为参考基准' + description: '中心转化率 = 总成交客户数 / 总接触客户数 × 100%' }, totalCalls: { title: '总通话次数计算方式', - description: '统计所有销售人员的通话总次数,包括接听和拨出。有效通话指通话时长超过30秒的通话记录' + description: '所有销售人员的通话总次数,包括接听和拨出。有效通话指通话时长超过30秒的通话记录' }, newCustomers: { title: '新增客户计算方式', - description: '统计本期新录入系统的客户数量。意向客户指经过初步沟通,有明确购买意向的客户数量' + description: '本期新录入系统的客户数量。意向客户指经过初步沟通,有明确购买意向的客户数量' }, depositConversion: { title: '定金转化计算方式', - description: '定金转化率 = 缴纳定金客户数 / 意向客户总数 × 100%。平均定金转化率为本月日均转化率' + description: '定金转化率 = 缴纳定金客户数 / 意向客户总数 × 100%' } } diff --git a/my-vue-app/src/views/senorManger/components/CenterOverview.vue b/my-vue-app/src/views/senorManger/components/CenterOverview.vue index d87ed15..113ec7d 100644 --- a/my-vue-app/src/views/senorManger/components/CenterOverview.vue +++ b/my-vue-app/src/views/senorManger/components/CenterOverview.vue @@ -175,27 +175,27 @@ const tooltip = reactive({ const metricDescriptions = { teamPerformance: { title: '团队总业绩计算方式', - description: '统计所有团队成员在选定时间范围内的成交金额总和,包括全款订单和定金订单的累计业绩。' + description: '所有团队成员在选定时间范围内的成交金额总和,包括全款订单和定金订单的累计业绩。' }, activeGroups: { title: '活跃组数计算方式', - description: '统计当前有成员在线且有业务活动的团队组数,以及各组的总人数统计。' + description: '当前有成员在线且有业务活动的团队组数,以及各组的总人数统计。' }, conversionRate: { title: '团队转化率计算方式', - description: '团队总成交单数 ÷ 团队总新增客户数 × 100%,反映整个团队将潜在客户转化为成交客户的综合能力。' + description: '团队总成交单数 ÷ 团队总新增客户数 × 100%' }, totalCalls: { title: '总通话次数计算方式', - description: '统计所有团队成员在选定时间范围内的通话总次数,包括外呼、接听等所有通话记录。' + description: '所有团队成员在选定时间范围内的通话总次数,包括外呼、接听等所有通话记录。' }, newCustomers: { title: '新增客户计算方式', - description: '统计所有团队成员在选定时间范围内新建档的客户总数,包括意向客户和潜在客户。' + description: '所有团队成员在选定时间范围内新建档的客户总数,包括意向客户和潜在客户。' }, depositConversion: { title: '定金转化计算方式', - description: '定金订单数 ÷ 总成交单数 × 100%,反映客户从意向到实际付定金的转化效果。' + description: '定金订单数 ÷ 总成交单数 × 100%' } } diff --git a/my-vue-app/src/views/senorManger/seniorManager.vue b/my-vue-app/src/views/senorManger/seniorManager.vue index 5632437..1168068 100644 --- a/my-vue-app/src/views/senorManger/seniorManager.vue +++ b/my-vue-app/src/views/senorManger/seniorManager.vue @@ -4,11 +4,31 @@
-
-

高级经理指挥台

-

统筹多组运营,优化资源配置,驱动业绩增长,实现团队协同发展。

+ + +
+ +
+ {{ routeUserName }} +
+
+ + + + +
+ +
-
@@ -204,6 +224,22 @@ const userStore = useUserStore() // 路由实例 const router = useRouter() +// 判断是否为路由导航(有路由参数) +const isRouteNavigation = computed(() => { + const routeUserName = router.currentRoute.value.query.user_name || router.currentRoute.value.params.user_name + return !!routeUserName +}) + +// 获取路由传递的用户名 +const routeUserName = computed(() => { + return router.currentRoute.value.query.user_name || router.currentRoute.value.params.user_name || '' +}) + +// 返回上一页 +const goBack = () => { + router.go(-1) +} + // Loading状态 const isLoading = ref(false) // 团队详情加载状态 @@ -1180,4 +1216,53 @@ const hideTooltip = () => { } } } + +// 路由导航样式 +.route-header { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + + .breadcrumb { + display: flex; + align-items: center; + gap: 0.5rem; + + .breadcrumb-item { + color: #64748b; + font-size: 0.875rem; + font-weight: 500; + + &:not(.current) { + cursor: pointer; + transition: color 0.2s; + + &:hover { + color: #3b82f6; + } + } + + &.current { + color: #1e293b; + font-weight: 600; + } + } + + .breadcrumb-separator { + color: #94a3b8; + font-size: 0.875rem; + } + } + + .user-name { + color: #1e293b; + font-size: 1.125rem; + font-weight: 600; + padding: 0.5rem 1rem; + background: rgba(255, 255, 255, 0.8); + border-radius: 0.5rem; + border: 1px solid rgba(0, 0, 0, 0.1); + } +} \ No newline at end of file diff --git a/my-vue-app/src/views/topOne/components/DetailedDataTable.vue b/my-vue-app/src/views/topOne/components/DetailedDataTable.vue index 8a99c60..3e8ef25 100644 --- a/my-vue-app/src/views/topOne/components/DetailedDataTable.vue +++ b/my-vue-app/src/views/topOne/components/DetailedDataTable.vue @@ -116,23 +116,23 @@ const tooltip = reactive({ const metricDescriptions = { conversionRate: { title: '成交率计算方式', - description: '成交单数 ÷ 总线索数 × 100%' + description: '成交单数 ÷ 本期总客户数 × 100%' }, totalDeals: { title: '成交单数计算方式', - description: '统计销售人员在选定时间范围内成功签约的订单总数,包括所有已确认的成交订单。' + description: '在选定时间范围内成功签约的订单总数,包括所有已确认的成交订单。' }, plusVRate: { title: '加微率计算方式', - description: '成功添加微信的客户数 ÷ 总接触客户数 × 100%,反映客户对销售人员的初步信任度。' + description: '成功添加微信的客户数 ÷ 本期全部客户数 × 100%' }, groupRate: { title: '入群率计算方式', - description: '成功邀请进入微信群的客户数 ÷ 已添加微信的客户数 × 100%,反映客户的参与积极性。' + description: '成功邀请进入微信群的客户数 ÷ 本期全部客户数 × 100%' }, formFillingRate: { title: '表单填写率计算方式', - description: '完成表单填写的客户数 ÷ 总邀请填写表单的客户数 × 100%,反映客户的配合度和意向强度。' + description: '填写表单的客户数 ÷ 本期总客户数 × 100%' } };