|
@@ -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>
|
|
|
+ );
|
|
|
},
|
|
|
});
|