Explorar o código

reactor:330 小休时长提示

zhangchong hai 2 meses
pai
achega
f81060e069

+ 25 - 21
src/layout/navBars/breadcrumb/user.vue

@@ -398,26 +398,30 @@ const onLogOut = () => {
 		},
 	})
 		.then(async () => {
-			signalR.leaveAllGroupAndStop().then(() => { // 退出所有组
-				console.log('业务中心ws退出成功');
-				setTimeout(() => {
-					// 清除缓存/token等
-					Local.clear();
-					Session.clear();
-					Cookie.clear();
-					// 使用 reload 时,不需要调用 resetRoute() 重置路由
-					window.location.reload();
-				}, 300);
-			}).catch(()=>{
-				setTimeout(() => {
-					// 清除缓存/token等
-					Local.clear();
-					Session.clear();
-					Cookie.clear();
-					// 使用 reload 时,不需要调用 resetRoute() 重置路由
-					window.location.reload();
-				}, 300);
-			})
+			signalR
+				.leaveAllGroupAndStop()
+				.then(() => {
+					// 退出所有组
+					console.log('业务中心ws退出成功');
+					setTimeout(() => {
+						// 清除缓存/token等
+						Local.clear();
+						Session.clear();
+						Cookie.clear();
+						// 使用 reload 时,不需要调用 resetRoute() 重置路由
+						window.location.reload();
+					}, 300);
+				})
+				.catch(() => {
+					setTimeout(() => {
+						// 清除缓存/token等
+						Local.clear();
+						Session.clear();
+						Cookie.clear();
+						// 使用 reload 时,不需要调用 resetRoute() 重置路由
+						window.location.reload();
+					}, 300);
+				});
 		})
 		.catch(() => {});
 };
@@ -505,7 +509,7 @@ onMounted(() => {
 	if (Local.get('themeConfig')) {
 		initComponentSize();
 	}
-	signalR.SR?.on('CircularRecord', (data) => {
+	signalR.SR?.on('CircularRecord', (data: any) => {
 		// 小红点数量消息通知
 		console.log(data, '小红点数量消息通知');
 		getNumAndList();

+ 16 - 12
src/layout/navBars/breadcrumb/ybTel.vue

@@ -702,19 +702,23 @@ const busyTime = ref(0);
 const busyTimer = useIntervalFn(
 	() => {
 		busyTime.value += 1;
-		// 检查示忙时长是否超过13分钟(13分钟 = 780秒)
-		/*if (busyTime.value >= 13 * 60 && !hasShownBusyAlert.value) { // 如果示忙时长超过13分钟需要弹窗提示 并且只执行一次
-			// 弹窗提示
-			ElMessageBox.alert('小休时长已超过13分钟,请及时处理!', '提示', {
-				confirmButtonText: '确定',
-				type: 'warning',
-				draggable: true,
-				showClose: false,
-			});
+		if (AppConfigInfo.value.isTelRest) {
+			// 配置开关
+			// 检查示忙时长是否超过 分钟
+			if (busyTime.value >= AppConfigInfo.value.telRestNum && !hasShownBusyAlert.value) {
+				// 如果示忙时长超过 分钟需要弹窗提示 并且只执行一次
+				// 弹窗提示
+				ElMessageBox.alert('小休时长已超过13分钟,请及时处理!', '提示', {
+					confirmButtonText: '确定',
+					type: 'warning',
+					draggable: true,
+					showClose: false,
+				});
 
-			// 更新标志变量,确保只弹一次
-			hasShownBusyAlert.value = true;
-		}*/
+				// 更新标志变量,确保只弹一次
+				hasShownBusyAlert.value = true;
+			}
+		}
 	},
 	1000,
 	{ immediate: false }

+ 32 - 9
src/layout/navBars/breadcrumb/zgTel.vue

@@ -1253,23 +1253,44 @@ const retSignOut = () => {
  * ReqAgentBusy - 方法名
  * Extension:分机号
  */
+// 定义标志变量,用于标记是否已经弹过窗
+const hasShownBusyAlert = ref(false);
 // 小休时长
 const busyTime = ref(0);
 const busyTimer = useIntervalFn(
 	() => {
 		busyTime.value += 1;
+		if (AppConfigInfo.value.isTelRest) {
+			// 配置开关
+			// 检查示忙时长是否超过 分钟
+			if (busyTime.value >= AppConfigInfo.value.telRestNum && !hasShownBusyAlert.value) {
+				// 如果示忙时长超过 分钟需要弹窗提示 并且只执行一次
+				// 弹窗提示
+				ElMessageBox.alert('小休时长已超过13分钟,请及时处理!', '提示', {
+					confirmButtonText: '确定',
+					type: 'warning',
+					draggable: true,
+					showClose: false,
+				});
+
+				// 更新标志变量,确保只弹一次
+				hasShownBusyAlert.value = true;
+			}
+		}
 	},
 	1000,
 	{ immediate: false }
 );
 // 小休时长开始
 const startBusyTime = () => {
+	hasShownBusyAlert.value = false; // 重置标志变量
 	busyTimer.resume();
 };
 //  小休时长计时结束
 const stopBusyTime = () => {
 	busyTime.value = 0;
 	busyTimer.pause();
+	hasShownBusyAlert.value = false; // 重置标志变量
 };
 const restFormRef = ref<RefType>(); // 小休表单
 const onBusy = () => {
@@ -1370,6 +1391,15 @@ const onIdle = () => {
 			};
 			// 发送请求
 			e_TelSendMsg(objMsg);
+			console.log('小休结束');
+			// 结束小休 设置示忙 业务系统统计需要
+			busyOff()
+				.then(() => {
+					console.log(`${getNowDateTime()}:业务系统调用示忙结束成功`);
+				})
+				.catch((err) => {
+					console.log(`${getNowDateTime()}:业务系统调用示忙结束失败,${err}`);
+				}); // 结束小休(调用业务系统接口,统计需要)
 		})
 		.catch(() => {
 			state.loading = false;
@@ -1387,15 +1417,6 @@ const retIdle = (data: any) => {
 		m_strTelState.value = '200';
 		e_TopStateChange(m_strTelState.value);
 		m_IsTalkingDeal.value = false;
-		console.log('小休结束');
-		// 结束小休 设置示忙 业务系统统计需要
-		busyOff()
-			.then(() => {
-				console.log(`${getNowDateTime()}:业务系统调用示忙结束成功`);
-			})
-			.catch((err) => {
-				console.log(`${getNowDateTime()}:业务系统调用示忙结束失败,${err}`);
-			}); // 结束小休(调用业务系统接口,统计需要)
 	} else {
 		ElMessage.error('示闲失败');
 	}
@@ -2329,6 +2350,8 @@ const i_QueueNum = (data: any) => {
 			currentWait.value = 0;
 		}
 		console.log(`${getNowDateTime()}:队列消息1:`, strInfo, arrFirst.length - 1);
+	} else {
+		currentWait.value = 0;
 	}
 	console.log(`${getNowDateTime()}:队列消息2:`, data.Param);
 };

+ 2 - 0
src/router/backEnd.ts

@@ -69,6 +69,8 @@ const getAppConfigFn = async () => {
 			handleOpinionWordLimit: result.handleOpinionWordLimit ?? 2000, // 办理意见字数限制
 			callInOpenType: result.callInOpenType ?? 2, // 电话呼入弹单方式  1:接通弹屏  2:振铃弹屏
 			snapshot: result.snapshot ?? false, // 随手拍开关
+			isTelRest: result.isTelRest ?? false, // 是否启用小休计时提示
+			telRestNum: result.telRestNum ?? 780, // 小休多久之后提示 默认13分钟提示 单位秒
 		});
 		/*	console.log(
 			`是否开启小休审批${result.isRestApproval},自动话后整理时间${result.talkingDealTime}秒,

+ 4 - 2
src/stores/appConfig.ts

@@ -20,9 +20,11 @@ export const useAppConfig = defineStore('AppConfig', {
 			oldHotlineUrl: '', // 老系统的跳转地址
 			fileExt: '', // 限制文件上传的格式
 			nationalPlatformWordLimit: 500, // 国家政务服务平台的发布整理字数限制
-			handleOpinionWordLimit:2000,  // 办理意见字数限制
+			handleOpinionWordLimit: 2000, // 办理意见字数限制
 			callInOpenType: 2, // 电话呼入弹单方式  1:接通弹屏  2:振铃弹屏
-			snapshot:false, // 随手拍开关
+			snapshot: false, // 随手拍开关
+			isTelRest: false, // 是否启用小休计时提示
+			telRestNum: 780, // 小休多久之后提示 默认13分钟提示 单位秒
 		},
 	}),
 	actions: {

+ 2 - 0
src/types/pinia.d.ts

@@ -133,6 +133,8 @@ declare interface AppConfigState {
 		handleOpinionWordLimit: string | number; //  办理意见字数限制
 		callInOpenType: string | number; // 电话呼入弹单方式  1:接通弹屏  2:振铃弹屏
 		snapshot: boolean; // 随手拍开关
+		isTelRest: boolean; // 是否启用小休计时提示
+		telRestNum: number; // 小休多久之后提示
 		fileExt: string;
 		[x: string]: any;
 	};