| 
					
				 | 
			
			
				@@ -1,7 +1,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { defineComponent, onMounted, reactive, watch } from "vue"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import styles from "./index.module.less"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // import { verifyMembershipServices } from "../vip-verify"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { api_lessonTrainingSubmitTraining, api_lessonTrainingTrainingStudentDetail } from "../../api"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { api_lessonTrainingSubmitTraining, api_lessonTrainingTrainingStudentDetail, api_submitTrainingTime } from "../../api"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import state, { handleSetSpeed, hanldeDirectSelection, setSection, togglePlay } from "/src/state"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { getSecondRPM } from "/src/utils"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { headImg } from "/src/page-instrument/header-top/image"; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -28,6 +28,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			end: "" as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			timer: null as any, // 定时器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			realThisTimeTotal: 0, // 达标的本次练习时长 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			trainingStatus: "" as any, // 作业状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		/** 隐藏评测功能 */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -77,7 +78,8 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if (res?.code === 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				training.trainingTimes = (res.data.trainingTimes / 60).toFixed(1) || "0"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				training.trainingTimeSecond = res.data.trainingTimes || 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				state.isWorkDone = Number(training.trainingTimes) >= Number(training.times); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				training.trainingStatus = res.data.trainingStatus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				state.isWorkDone = Number(training.trainingTimes) >= Number(training.times) && res.data.trainingStatus === 'TARGET'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -91,9 +93,12 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				// 如果已达标,手动保存作业时,需要添加submitFlag参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if (extraType === 'save') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					params.submitFlag = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					params = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						id: props.workeData.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						submitFlag: true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				const res = await api_lessonTrainingSubmitTraining(params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				const res = extraType === 'save' ? await api_lessonTrainingSubmitTraining(params) : await api_submitTrainingTime(params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if (res?.code == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					getWorkDetail(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					training.starTime = Date.now(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -119,9 +124,10 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					handleStart(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					// 没有达标停止播放时,需要自动提交练习时长 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					if (!state.showWorkDonePop) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						addHomeworkRecored(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					// if (!state.showWorkDonePop) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					// 	addHomeworkRecored(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					// } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					addHomeworkRecored(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					handleStop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -139,12 +145,18 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				// console.log('累积时间',111,state.isWorkDone,training.trainingTimeSecond,training.times * 60) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				// 如果播放中,作业从未达标到达标状态,需要暂停播放,并且弹窗提示作业已达标 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if (!state.isWorkDone && training.trainingTimeSecond >= training.times * 60 || (state.isWorkDone && training.trainingTimeSecond === training.times * 60)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (training.trainingStatus === 'UNSUBMITTED' && (!state.isWorkDone && training.trainingTimeSecond >= training.times * 60 || (state.isWorkDone && training.trainingTimeSecond === training.times * 60)) ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					// training.realThisTimeTotal = state.isWorkDone && training.trainingTimeSecond === training.times * 60 ? 0 : Math.ceil((Date.now() - training.starTime) / 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					training.realThisTimeTotal = Math.floor((Date.now() - training.starTime) / 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					state.isWorkDone = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					state.showWorkDonePop = training.starTime > 0 ? true : false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					togglePlay("paused") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if (training.starTime === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						setTimeout(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							state.showWorkDonePop = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						}, 1500); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						state.showWorkDonePop = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		); 
			 |