From c48f39fb5e1c3f4683ea5cb7770fc2ae11ffa140 Mon Sep 17 00:00:00 2001 From: lbw_9527443 <780139497@qq.com> Date: Tue, 12 Aug 2025 21:33:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=9B=A2=E9=98=9F=E7=AE=A1=E7=90=86):=20?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=9B=A2=E9=98=9F=E6=A6=82=E8=A7=88=E5=92=8C?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=8C=87=E6=A0=87=E6=95=B0=E6=8D=AE=E7=BB=91?= =?UTF-8?q?=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 增加团队概览组件数据绑定逻辑 - 实现统计指标组件数据获取与展示 - 更新API接口调用和数据处理逻辑 - 调整超时时间为30秒以适应网络环境 - 添加调试日志用于问题排查 --- my-vue-app/src/api/senorManger.js | 4 +- my-vue-app/src/utils/https.js | 2 +- .../components/SalesTimelineWithTaskList.vue | 11 +- my-vue-app/src/views/person/sale.vue | 1 + .../senorManger/components/CenterOverview.vue | 81 +++++-- .../components/StatisticalIndicators.vue | 10 +- .../src/views/senorManger/seniorManager.vue | 210 +++++++++++++++++- 7 files changed, 277 insertions(+), 42 deletions(-) diff --git a/my-vue-app/src/api/senorManger.js b/my-vue-app/src/api/senorManger.js index 0e375c5..382d491 100644 --- a/my-vue-app/src/api/senorManger.js +++ b/my-vue-app/src/api/senorManger.js @@ -9,8 +9,8 @@ export const getTotalGroupCount = (params) => { return https.post('/api/v1/level_three/overview/total_group_count', params) } -// 中心转化率 /api/v1/level_three/overview/center_conversion_rate -export const getCenterConversionRate = (params) => { +// 团队转化率 /api/v1/level_three/overview/center_conversion_rate +export const getConversionRate = (params) => { return https.post('/api/v1/level_three/overview/center_conversion_rate', params) } diff --git a/my-vue-app/src/utils/https.js b/my-vue-app/src/utils/https.js index fd10e23..be7b7a5 100644 --- a/my-vue-app/src/utils/https.js +++ b/my-vue-app/src/utils/https.js @@ -6,7 +6,7 @@ import { useUserStore } from '@/stores/user' // 创建axios实例 const service = axios.create({ baseURL: 'http://192.168.15.53:8890' || '', // API基础路径,支持完整URL - timeout: 15000, // 请求超时时间 + timeout: 30000, // 请求超时时间 headers: { 'Content-Type': 'application/json;charset=UTF-8' } diff --git a/my-vue-app/src/views/person/components/SalesTimelineWithTaskList.vue b/my-vue-app/src/views/person/components/SalesTimelineWithTaskList.vue index 69ab9da..2d569b9 100644 --- a/my-vue-app/src/views/person/components/SalesTimelineWithTaskList.vue +++ b/my-vue-app/src/views/person/components/SalesTimelineWithTaskList.vue @@ -179,11 +179,12 @@ const stages = computed(() => [ { id: 2, name: '待填表单', displayName: '待填表单', count: props.data['待填表单'] || 0, color: '#90caf9' }, { id: 3, name: '待入群', displayName: '待入群', count: props.data['待入群'] || 0, color: '#bbdefb' }, { id: 4, name: '待联系', displayName: '待联系', count: props.data['待联系'] || 0, color: '#bbdefb' }, - { id: 5, name: '课1-4', displayName: '课1-4', count: props.data['课1-4'] || 0, color: '#64b5f6' }, - { id: 6, name: '点击未支付', displayName: '点击未支付', count: props.data['点击未支付'] || 0, color: '#42a5f5' }, - { id: 7, name: '付定金', displayName: '付定金', count: props.data['付定金'] || 0, color: '#2196f3' }, - { id: 8, name: '定价转化', displayName: '定价转化', count: props.data['定价转化'] || 0, color: '#1e88e5' }, - { id: 9, name: '成交', displayName: '成交', count: props.data['成交'] || 0, color: '#1976d2' } + { id: 5, name: '待到课', displayName: '待到课', count: props.data['待到课'] || 0, color: '#bbdefb' }, + { id: 6, name: '课1-4', displayName: '课1-4', count: props.data['课1-4'] || 0, color: '#64b5f6' }, + { id: 7, name: '点击未支付', displayName: '点击未支付', count: props.data['点击未支付'] || 0, color: '#42a5f5' }, + { id: 8, name: '付定金', displayName: '付定金', count: props.data['付定金'] || 0, color: '#2196f3' }, + { id: 9, name: '定价转化', displayName: '定价转化', count: props.data['定价转化'] || 0, color: '#1e88e5' }, + { id: 10, name: '成交', displayName: '成交', count: props.data['成交'] || 0, color: '#1976d2' } ]); // 计算百分比 diff --git a/my-vue-app/src/views/person/sale.vue b/my-vue-app/src/views/person/sale.vue index 38ee1d1..da1763b 100644 --- a/my-vue-app/src/views/person/sale.vue +++ b/my-vue-app/src/views/person/sale.vue @@ -174,6 +174,7 @@ const MOCK_DATA = reactive({ }); // 核心Kpi async function getCoreKpi() { + console.log('userStore.userInfo.user_level', userStore.userInfo) const params = { user_level: userStore.userInfo.user_level.toString(), user_name: userStore.userInfo.username diff --git a/my-vue-app/src/views/senorManger/components/CenterOverview.vue b/my-vue-app/src/views/senorManger/components/CenterOverview.vue index 99f69fe..bdf02d0 100644 --- a/my-vue-app/src/views/senorManger/components/CenterOverview.vue +++ b/my-vue-app/src/views/senorManger/components/CenterOverview.vue @@ -4,56 +4,56 @@
- 中心总业绩 - +12% vs 昨日 + 团队总业绩 + {{ totalPerformance.team_current_vs_previous_deals }} vs 上期
-
552,000 元
-
月目标完成率: 56%
+
{{ totalPerformance.current_team_odd_numbers||0 }}
+
月目标完成率: {{ totalPerformance.team_monthly_performance }}
活跃组数 - 5/5 组 + {{ activeGroups.total_group_count }}/{{ activeGroups.total_group_count }} 组
-
5 组
-
总人数: 40人
+
{{ activeGroups.total_group_count }} 组
+
总人数: {{ activeGroups.total_user_count }}人
- 中心转化率 - +0.3% vs 上期 + 团队转化率 + {{ conversionRate.team_current_vs_previous_deals }} vs 上期
-
5.2%
-
行业平均: 4.8%
+
{{ conversionRate.center_conversion_rate }}
+
团队平均转化率: {{ conversionRate.average_conversion_rate }}
总通话次数 - +8% vs 上期 + {{ totalCalls.total_call_count_vs_yesterday }} vs 上期
-
1,247 次
-
有效通话: 892次
+
{{ totalCalls.total_call_count }}
+
有效通话: {{ totalCalls.effective_call_count }}次
新增客户 - +15% vs 上期 + {{ newCustomers.new_customer_vs_yesterday }} vs 上期
-
117 人
-
意向客户: 89人
+
{{ newCustomers.new_customer }} 人
+
意向客户: {{ newCustomers.new_v_customer }}人
定金转化 - +18% vs 上期 + {{ depositConversions.deposit_conversion_vs_previous }} vs 上期
-
40 单
-
本月定金转化率: 10%
+
{{ depositConversions.current_deposit_conversion_rate }}
+
本月定金转化率: {{ depositConversions.monthly_deposit_conversion_rate }}
@@ -61,7 +61,48 @@