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