|  | @@ -1,6 +1,6 @@
 | 
	
		
			
				|  |  |  import styles from "./index.module.less";
 | 
	
		
			
				|  |  |  import { Snackbar } from "@varlet/ui";
 | 
	
		
			
				|  |  | -import { closeToast, showLoadingToast, showToast } from "vant";
 | 
	
		
			
				|  |  | +import { closeToast, showLoadingToast, showToast, Popup } from "vant";
 | 
	
		
			
				|  |  |  import { defineComponent, onMounted, onUnmounted, reactive, ref, watch } from "vue";
 | 
	
		
			
				|  |  |  import { getLeveByScore, getLeveByScoreMeasure, IEvaluatings } from "./evaluatResult";
 | 
	
		
			
				|  |  |  import {
 | 
	
	
		
			
				|  | @@ -41,6 +41,7 @@ import { usePageVisibility } from "@vant/use";
 | 
	
		
			
				|  |  |  import { browser } from "/src/utils";
 | 
	
		
			
				|  |  |  import { getAudioCurrentTime, toggleMutePlayAudio } from "../audio-list";
 | 
	
		
			
				|  |  |  import { handleStartTick } from "../tick";
 | 
	
		
			
				|  |  | +import AbnormalPop from "../abnormal-pop";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  const browserInfo = browser();
 | 
	
		
			
				|  |  |  export const evaluatingData = reactive({
 | 
	
	
		
			
				|  | @@ -71,6 +72,9 @@ export const evaluatingData = reactive({
 | 
	
		
			
				|  |  |  	isDisabledPlayMusic: false,
 | 
	
		
			
				|  |  |  	/** socket异常状态弹窗 */
 | 
	
		
			
				|  |  |  	socketErrorPop: false,
 | 
	
		
			
				|  |  | +	errorContents: '',
 | 
	
		
			
				|  |  | +	showConfirmBtn: false,
 | 
	
		
			
				|  |  | +	delayCheckSocketError: false,
 | 
	
		
			
				|  |  |  });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /** 点击开始评测按钮 */
 | 
	
	
		
			
				|  | @@ -85,6 +89,7 @@ export const handleStartEvaluat = async () => {
 | 
	
		
			
				|  |  |  		} else {
 | 
	
		
			
				|  |  |  			// socket未连接
 | 
	
		
			
				|  |  |  			evaluatingData.socketErrorPop = true
 | 
	
		
			
				|  |  | +			evaluatingData.errorContents = '网络异常,正在重新链接...'
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -354,7 +359,7 @@ export const handleEndEvaluat = (isComplete = false) => {
 | 
	
		
			
				|  |  |  	if (!evaluatingData.startBegin || state.modeType !== "evaluating") return;
 | 
	
		
			
				|  |  |  	evaluatingData.startBegin = false;
 | 
	
		
			
				|  |  |  	// 结束录音
 | 
	
		
			
				|  |  | -	api_stopRecording();
 | 
	
		
			
				|  |  | +	// api_stopRecording();
 | 
	
		
			
				|  |  |  	// 结束评测
 | 
	
		
			
				|  |  |  	setTimeout(() => {
 | 
	
		
			
				|  |  |  		endEvaluating({
 | 
	
	
		
			
				|  | @@ -388,7 +393,7 @@ export const handleEndBegin = () => {
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  export const handleCancelEvaluat = () => {
 | 
	
		
			
				|  |  |  	evaluatingData.evaluatings = {};
 | 
	
		
			
				|  |  | -	evaluatingData.startBegin = false;
 | 
	
		
			
				|  |  | +	evaluatingData.startBegin = true;
 | 
	
		
			
				|  |  |  	// 关闭提示
 | 
	
		
			
				|  |  |  	closeToast();
 | 
	
		
			
				|  |  |  	// 取消记录
 | 
	
	
		
			
				|  | @@ -403,6 +408,11 @@ export const handleCancelEvaluat = () => {
 | 
	
		
			
				|  |  |  	cancelEvaluating();
 | 
	
		
			
				|  |  |  	// 停止播放
 | 
	
		
			
				|  |  |  	handleStopPlay();
 | 
	
		
			
				|  |  | +	// 如果开启了摄像头, 结束录制视频
 | 
	
		
			
				|  |  | +	if (state.setting.camera) {
 | 
	
		
			
				|  |  | +		console.log("结束录制视频");
 | 
	
		
			
				|  |  | +		api_endCapture();
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /** 查看报告 */
 | 
	
	
		
			
				|  | @@ -453,15 +463,23 @@ const handleAccompanyError = (res?: IPostMessage) => {
 | 
	
		
			
				|  |  |  		switch (type) {
 | 
	
		
			
				|  |  |  			case "playError":
 | 
	
		
			
				|  |  |  				// 播放异常
 | 
	
		
			
				|  |  | -				break;
 | 
	
		
			
				|  |  |  			case "enterBackground":
 | 
	
		
			
				|  |  |  				// App退到后台
 | 
	
		
			
				|  |  | -				break;
 | 
	
		
			
				|  |  |  			case "socketError":
 | 
	
		
			
				|  |  |  				// socket连接断开,评测中,则取消评测
 | 
	
		
			
				|  |  | +				// 延迟检测中
 | 
	
		
			
				|  |  | +				if (evaluatingData.soundEffectMode) {
 | 
	
		
			
				|  |  | +					evaluatingData.errorContents = '网络异常,正在重新链接...'
 | 
	
		
			
				|  |  | +					evaluatingData.delayCheckSocketError = true
 | 
	
		
			
				|  |  | +					api_checkSocketStatus()
 | 
	
		
			
				|  |  | +					return
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				// 评测中
 | 
	
		
			
				|  |  |  				if (state.modeType === "evaluating") {
 | 
	
		
			
				|  |  |  					handleCancelEvaluat();
 | 
	
		
			
				|  |  | +					evaluatingData.errorContents = '网络异常,重新开始评测?'
 | 
	
		
			
				|  |  |  					evaluatingData.socketErrorPop = true
 | 
	
		
			
				|  |  | +					evaluatingData.showConfirmBtn = true
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  |  				break;	
 | 
	
		
			
				|  |  |  			case "recordError":
 | 
	
	
		
			
				|  | @@ -480,6 +498,13 @@ const handleSocketStatus = (res?: IPostMessage) => {
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +// 评测出现异常,再试一次
 | 
	
		
			
				|  |  | +const hanldeClosePop = async () => {
 | 
	
		
			
				|  |  | +	api_checkSocketStatus();
 | 
	
		
			
				|  |  | +	evaluatingData.errorContents = '正在重新链接...'
 | 
	
		
			
				|  |  | +	evaluatingData.showConfirmBtn = false
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  export default defineComponent({
 | 
	
		
			
				|  |  |  	name: "evaluating",
 | 
	
		
			
				|  |  |  	setup() {
 | 
	
	
		
			
				|  | @@ -561,14 +586,13 @@ export default defineComponent({
 | 
	
		
			
				|  |  |  			removeSocketStatus(handleSocketStatus);
 | 
	
		
			
				|  |  |  			console.log("卸载评测模块成功");
 | 
	
		
			
				|  |  |  		});
 | 
	
		
			
				|  |  | -		return () => <div>
 | 
	
		
			
				|  |  | -				{
 | 
	
		
			
				|  |  | -					evaluatingData.socketErrorPop && 
 | 
	
		
			
				|  |  | -					<div class={styles.tipBox}>
 | 
	
		
			
				|  |  | -						<div class={styles.tipContent}>网络异常,正在重新链接...</div>
 | 
	
		
			
				|  |  | -						{/* <div class={styles.tipBtn} onClick={resetCheck}>再来一次</div> */}
 | 
	
		
			
				|  |  | -					</div>
 | 
	
		
			
				|  |  | -				}
 | 
	
		
			
				|  |  | -		</div>;
 | 
	
		
			
				|  |  | +		return () => (
 | 
	
		
			
				|  |  | +			<div>
 | 
	
		
			
				|  |  | +				<Popup teleport="body" closeOnClickOverlay={false} class={["popup-custom", "van-scale"]} transition="van-scale" v-model:show={evaluatingData.socketErrorPop}>
 | 
	
		
			
				|  |  | +					<AbnormalPop onClose={hanldeClosePop} contents={evaluatingData.errorContents} confirmBtn={evaluatingData.showConfirmBtn} />
 | 
	
		
			
				|  |  | +				</Popup>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			</div>
 | 
	
		
			
				|  |  | +		);
 | 
	
		
			
				|  |  |  	},
 | 
	
		
			
				|  |  |  });
 |