diff --git a/my-vue-app/src/api/api.js b/my-vue-app/src/api/api.js index 78d8a03..2454c85 100644 --- a/my-vue-app/src/api/api.js +++ b/my-vue-app/src/api/api.js @@ -73,6 +73,9 @@ export const getSalesFunnel = (params) => { export const getGoldContactTime = (params) => { return https.post('/api/v1/sales/get_gold_contact_time', params) } - +// 平均通话时长 /api/v1/sales/get_avg_call_time +export const getAvgCallTime = (params) => { + return https.post('/api/v1/sales/get_avg_call_time', params) +} diff --git a/my-vue-app/src/api/manager.js b/my-vue-app/src/api/manager.js index b3e48a6..1b7acbd 100644 --- a/my-vue-app/src/api/manager.js +++ b/my-vue-app/src/api/manager.js @@ -40,8 +40,10 @@ export const getGroupRanking = (params) => { export const getGroupDetail = (params) => { return https.post('/api/v1/manager/group_detail', params) } -// 通话录音 /api/v1/sales/get_call_logs - +// 有效通话时长 /api/v1/manager/group_call_duration +export const getGroupCallDuration = (params) => { + return https.post('/api/v1/manager/group_call_duration', params) +} diff --git a/my-vue-app/src/views/maneger/components/TeamReport.vue b/my-vue-app/src/views/maneger/components/TeamReport.vue index ced416e..b74f74c 100644 --- a/my-vue-app/src/views/maneger/components/TeamReport.vue +++ b/my-vue-app/src/views/maneger/components/TeamReport.vue @@ -12,9 +12,9 @@
有效通话时长 - {{ weekTotalData.week_total_call?.team_data?.current_rate_last_current || '0%' }} vs 上期 + {{ weekTotalData.group_call_duration?.group_data?.current_rate_last_current || '0%' }} vs 上期
-
{{ formatDuration(weekTotalData.week_total_call?.team_data?.total_call_duration)||0 }} 小时
+
{{ formatDuration(weekTotalData.group_call_duration.group_data?.current_total_call_time_hour)||0 }} 小时
@@ -70,7 +70,8 @@ const props = defineProps({ week_add_customer_total: {}, week_add_deal_total: {}, week_add_fee_total: {}, - pay_deposit_to_money_rate: {} + pay_deposit_to_money_rate: {}, + group_call_duration: {} }) } }) diff --git a/my-vue-app/src/views/maneger/manager.vue b/my-vue-app/src/views/maneger/manager.vue index e9a4cf6..4d1b889 100644 --- a/my-vue-app/src/views/maneger/manager.vue +++ b/my-vue-app/src/views/maneger/manager.vue @@ -80,7 +80,8 @@ 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 {getGroupAbnormalResponse, getWeekTotalCall, getWeekAddCustomerTotal, getWeekAddDealTotal, getWeekAddFeeTotal, getGroupFunnel,getPayDepositToMoneyRate,getGroupRanking } from "@/api/manager.js"; +import {getGroupAbnormalResponse, getWeekTotalCall, getWeekAddCustomerTotal, getWeekAddDealTotal, + getWeekAddFeeTotal, getGroupFunnel,getPayDepositToMoneyRate,getGroupRanking, getGroupCallDuration} from "@/api/manager.js"; // 缓存系统 const cache = new Map() @@ -189,7 +190,7 @@ const weekTotalData = ref({ week_add_fee_total: {}, pay_deposit_to_money_rate: {}, group_funnel: {}, - week_add_fee_total: {}, + group_call_duration: {}, }); // 团队异常预警 const groupAbnormalResponse = ref({}) @@ -248,6 +249,16 @@ async function TeamGetWeekTotalCall() { weekTotalData.value.week_total_call = res.data } } +// 有效通话时长 +async function TeamGetGroupCallDuration() { + const params = getRequestParams() + const hasParams = params.user_name + const res = await withCache('getGroupCallDuration', () => getGroupCallDuration(hasParams ? params : undefined), hasParams ? params : {}) + console.log(res) + if (res.code === 200) { + weekTotalData.value.group_call_duration = res.data + } +} // 新增客户 async function TeamGetWeekAddCustomerTotal() { const params = getRequestParams() @@ -381,6 +392,7 @@ async function forceRefreshAllData() { await Promise.all([ TeamGetGroupAbnormalResponse(), TeamGetWeekTotalCall(), + TeamGetGroupCallDuration(), TeamGetWeekAddCustomerTotal(), TeamGetWeekAddDealTotal(), TeamGetWeekAddFeeTotal(), @@ -399,6 +411,7 @@ onMounted(async () => { await TeamGetGroupAbnormalResponse() await TeamGetWeekTotalCall() + await TeamGetGroupCallDuration() await TeamGetWeekAddCustomerTotal() await TeamGetWeekAddDealTotal() await TeamGetWeekAddFeeTotal() diff --git a/my-vue-app/src/views/person/sale.vue b/my-vue-app/src/views/person/sale.vue index 6175146..303a513 100644 --- a/my-vue-app/src/views/person/sale.vue +++ b/my-vue-app/src/views/person/sale.vue @@ -128,7 +128,7 @@ import UserDropdown from "@/components/UserDropdown.vue"; import Loading from "@/components/Loading.vue"; import {getCustomerAttendance,getTodayCall,getProblemDistribution,getTableFillingRate,getAverageResponseTime, getWeeklyActiveCommunicationRate,getTimeoutResponseRate,getCustomerCallInfo,getCustomerChatInfo,getCustomerFormInfo, - getConversionRateAndAllocatedData,getCustomerAttendanceAfterClass4,getPayMoneyCustomers,getSalesFunnel,getGoldContactTime} from "@/api/api.js" + getConversionRateAndAllocatedData,getCustomerAttendanceAfterClass4,getPayMoneyCustomers,getSalesFunnel,getGoldContactTime,getAvgCallTime} from "@/api/api.js" // 缓存系统 const cache = new Map(); @@ -330,7 +330,12 @@ async function getCoreKpi() { kpiDataState.assignedData = conversionRes.data.all_count || 0 kpiDataState.wechatAddRate = conversionRes.data.plus_v_conversion_rate || 0 } - + + // 平均通话时长 + const avgCallTimeRes = await withCache('getAvgCallTime', () => getAvgCallTime(hasParams ? params : undefined), hasParams ? params : {}) + if (avgCallTimeRes.code === 200) { + kpiDataState.avgDuration = avgCallTimeRes.data.call_time || 0 + } } catch (error) { console.error('获取核心KPI数据失败:', error) } finally {