feat(api): 新增销售漏斗和黄金联络时段API接口
feat(views): 添加销售漏斗和黄金联络时段数据展示功能 refactor(views): 优化客户详情组件的数据处理逻辑 fix(views): 修复业绩数据显示字段不一致问题 style(views): 调整路由导航顶栏样式
This commit is contained in:
@@ -112,11 +112,11 @@
|
||||
<div class="metric-row">
|
||||
<div class="metric-item">
|
||||
<span class="metric-label">今日业绩</span>
|
||||
<span class="metric-value">{{ formatCurrency(member.todayPerformance) }}</span>
|
||||
<span class="metric-value">{{ member.todayPerformance}}</span>
|
||||
</div>
|
||||
<div class="metric-item">
|
||||
<span class="metric-label">月度业绩</span>
|
||||
<span class="metric-value">{{ formatCurrency(member.monthlyPerformance) }}</span>
|
||||
<span class="metric-value">{{ member.monthlyPerformance }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -147,6 +147,9 @@
|
||||
</div>
|
||||
|
||||
</main>
|
||||
|
||||
<!-- Loading 组件 -->
|
||||
<Loading :visible="isLoading" text="数据加载中..." />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -163,16 +166,18 @@
|
||||
import ProblemRanking from './components/ProblemRanking.vue'
|
||||
import seniorManager from './components/seniorManager.vue'
|
||||
import UserDropdown from '@/components/UserDropdown.vue'
|
||||
import Loading from '@/components/Loading.vue'
|
||||
import {
|
||||
getOverallCenterPerformance, getTotalGroupCount, getCenterConversionRate, getTotalCallCount, getNewCustomer
|
||||
, getDepositConversionRate, getCustomerTypeDistribution, getUrgentNeedToAddress, getCenterAdvancedManagerList, getTeamRanking,
|
||||
getTeamRankingInfo, getConversionRateVsAverage
|
||||
|
||||
} from '@/api/secondTop.js'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useUserStore } from '@/stores/user.js'
|
||||
// 组别数据
|
||||
const groups = ref([])
|
||||
// loading 状态
|
||||
const isLoading = ref(false)
|
||||
|
||||
// 路由实例
|
||||
const router = useRouter();
|
||||
@@ -455,8 +460,8 @@ const conversionRateVsAverage = ref({})
|
||||
phone: '***-****-****', // 隐藏手机号
|
||||
status: member.rank === 1 ? 'excellent' : member.rank === 2 ? 'good' : 'average',
|
||||
joinDate: '2023-01-01', // 默认入职日期
|
||||
todayPerformance: member.today_performance || 0,
|
||||
monthlyPerformance: member.monthly_performance || 0,
|
||||
todayPerformance: member.today_deals,
|
||||
monthlyPerformance: member.monthly_deals,
|
||||
conversionRate: parseFloat(member.conversion_rate_this_period) || 0,
|
||||
callCount: member.call_count_this_period || 0,
|
||||
newClients: member.new_customers_this_period || 0,
|
||||
@@ -506,17 +511,24 @@ const conversionRateVsAverage = ref({})
|
||||
return statusMap[status] || '未知'
|
||||
}
|
||||
onMounted(async () => {
|
||||
await CenterOverallCenterPerformance()
|
||||
await CenterTotalGroupCount()
|
||||
await CenterConversionRate()
|
||||
await CenterTotalCallCount()
|
||||
await CenterNewCustomer()
|
||||
await CenterDepositConversionRate()
|
||||
await CenterCustomerType()
|
||||
await CenterUrgentNeedToAddress()
|
||||
await CenterConversionRateVsAverage()
|
||||
await CenterSeniorManagerList()
|
||||
await CenterGroupList('all') // 初始化加载全部高级经理数据
|
||||
try {
|
||||
isLoading.value = true
|
||||
await CenterOverallCenterPerformance()
|
||||
await CenterTotalGroupCount()
|
||||
await CenterConversionRate()
|
||||
await CenterTotalCallCount()
|
||||
await CenterNewCustomer()
|
||||
await CenterDepositConversionRate()
|
||||
await CenterCustomerType()
|
||||
await CenterUrgentNeedToAddress()
|
||||
await CenterConversionRateVsAverage()
|
||||
await CenterSeniorManagerList()
|
||||
await CenterGroupList('all') // 初始化加载全部高级经理数据
|
||||
} catch (error) {
|
||||
console.error('数据加载失败:', error)
|
||||
} finally {
|
||||
isLoading.value = false
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user