Prechádzať zdrojové kódy

reactor:修复外呼时长记录错误;

zhangchong 4 mesiacov pred
rodič
commit
5947bc8293
2 zmenil súbory, kde vykonal 32 pridanie a 5 odobranie
  1. 1 1
      .env.development
  2. 31 4
      src/layout/navBars/breadcrumb/ybTel.vue

+ 1 - 1
.env.development

@@ -3,7 +3,7 @@ VITE_MODE_NAME=development
 # 防止部署多套系统到同一域名不同目录时,变量共用的问题 设置不同的前缀
 VITE_STORAGE_NAME=dev
 # 业务系统基础请求地址
-VITE_API_URL=http://110.188.24.28:50100
+VITE_API_URL=http://110.188.24.28:50300
 # 业务系统socket请求地址
 VITE_API_SOCKET_URL=http://110.188.24.28:50100/hubs/hotline
 # 业务系统文件上传上传请求地址

+ 31 - 4
src/layout/navBars/breadcrumb/ybTel.vue

@@ -5,7 +5,8 @@
 				<div class="status-box">
 					<span class="color-primary">{{ currentStatusText }}</span>
 					<el-text tag="b" v-if="currentStatusText === '通话中'">{{ formatDuration(talkTime) }}</el-text>
-					<el-text tag="b" v-else-if="['空闲', '外呼中'].includes(currentStatusText)">{{ formatDuration(idleTime) }}</el-text>
+					<el-text tag="b" v-else-if="currentStatusText === '空闲'">{{ formatDuration(idleTime) }}</el-text>
+					<el-text tag="b" v-else-if="currentStatusText === '外呼中'">{{ formatDuration(outboundTime) }}</el-text>
 					<el-text tag="b" v-else-if="currentStatusText === '小休中'">{{ formatDuration(busyTime) }}</el-text>
 					<el-text tag="b" v-else-if="currentStatusText === '整理中'">{{ formatDuration(arrangeTime) }}</el-text>
 					<SvgIcon name="ele-CaretBottom" class="arrow" :class="{ 'is-reverse': showPop }" />
@@ -25,7 +26,11 @@
 						<span class="ml10">通话时长</span>
 						<el-text tag="b">{{ formatDuration(talkTime) }}</el-text>
 					</div>
-					<div class="flex-center-between mt10" v-if="idleTime && !['空闲', '外呼中'].includes(currentStatusText)">
+					<div class="flex-center-between mt10" v-if="outboundTime && currentStatusText !== '外呼中'">
+						<span class="ml10">外呼时长</span>
+						<el-text tag="b">{{ formatDuration(outboundTime) }}</el-text>
+					</div>
+					<div class="flex-center-between mt10" v-if="idleTime && currentStatusText !== '空闲'">
 						<span class="ml10">空闲时长</span>
 						<el-text tag="b">{{ formatDuration(idleTime) }}</el-text>
 					</div>
@@ -196,7 +201,7 @@
 				</div>
 			</template>
 
-<!--			&lt;!&ndash; 三方会议 可用(当前处于通话中)&ndash;&gt;
+			<!--			&lt;!&ndash; 三方会议 可用(当前处于通话中)&ndash;&gt;
 			<template v-if="telStatusInfo.isDutyOn && activeArr.includes('conference') && onCallArr.length !== 1">
 				<div class="item active" title="三方会议" @click="onControlClick('conference')">
 					<SvgIcon name="iconfont icon-conference" class="icon mr3" size="16px" />
@@ -618,6 +623,7 @@ const startTalkTimer = () => {
 	}
 	talkTimer.resume();
 	stopIdleTime();
+	stopOutboundTime();
 };
 // 结束通话计时
 const stopTalkTimer = () => {
@@ -671,6 +677,25 @@ const stopIdleTime = () => {
 	idleTime.value = 0;
 	idleTimer.pause();
 };
+// 外呼时长
+const outboundTime = ref(0);
+const outboundTimer = useIntervalFn(
+	() => {
+		outboundTime.value += 1;
+	},
+	1000,
+	{ immediate: false }
+);
+// 外呼时长开始
+const startOutboundTime = () => {
+	outboundTimer.resume();
+	stopIdleTime();
+};
+//  外呼时长计时结束
+const stopOutboundTime = () => {
+	outboundTime.value = 0;
+	outboundTimer.pause();
+};
 // 示忙时长
 const busyTime = ref(0);
 const busyTimer = useIntervalFn(
@@ -964,7 +989,7 @@ const onMessage = async (event: any) => {
 					useTelStatusStore.setCallOut(true);
 					// 设置话机状态 修改为外呼状态
 					useTelStatusStore.setPhoneControlState(TelStates.onCallOut);
-					startIdleTime();
+					startOutboundTime();
 					stopTalkTimer();
 					sendMsg('ready');
 				} else {
@@ -2015,6 +2040,8 @@ const seatAssistOff = () => {
 // 重置状态和清除定时器
 const resetState = () => {
 	useTelStatusStore.resetState();
+	startIdleTime(); // 移除空闲时长
+	stopOutboundTime(); // 移除外呼时长
 	stopSignTime(); // 移除签入时长定时器
 	stopTalkTimer(); // 移除通话计时器
 	talkDealTimer.value?.stop();