TIANYONG 1 mesiac pred
rodič
commit
b5d3e6b7a3

+ 4 - 5
src/page-instrument/custom-plugins/work-home/index.tsx

@@ -27,7 +27,6 @@ export default defineComponent({
 			start: "" as any,
 			end: "" as any,
 			timer: null as any, // 定时器
-			showWorkDonePop: false, // 显示需要提交作业弹窗
 			realThisTimeTotal: 0, // 达标的本次练习时长
 		});
 
@@ -119,7 +118,7 @@ export default defineComponent({
 					handleStart();
 				} else {
 					// 没有达标停止播放时,需要自动提交练习时长
-					if (!training.showWorkDonePop) {
+					if (!state.showWorkDonePop) {
 						addHomeworkRecored();
 					}
 					handleStop();
@@ -133,7 +132,7 @@ export default defineComponent({
 				// 如果播放中,作业从未达标到达标状态,需要暂停播放,并且弹窗提示作业已达标
 				if (!state.isWorkDone && training.trainingTimeSecond >= training.times * 60 || (state.isWorkDone && training.trainingTimeSecond === training.times * 60)) {
 					state.isWorkDone = true
-					training.showWorkDonePop = true
+					state.showWorkDonePop = true
 					training.realThisTimeTotal = Math.ceil((Date.now() - training.starTime) / 1000);
 					togglePlay("paused")
 				}
@@ -161,11 +160,11 @@ export default defineComponent({
 					<span>{getSecondRPM(training.trainingTimeSecond)} / {getSecondRPM(training.times*60)}</span>
 				</div>
 				{
-					training.showWorkDonePop && 
+					state.showWorkDonePop && 
 					<div class={styles.workDonePop}>
 						<img class={styles.doneBg} src={headImg("workDonePop.png")} />
 						<img class={styles.doneBtn} src={headImg("workDoneBtn.png")} onClick={() => {
-							training.showWorkDonePop = false
+							state.showWorkDonePop = false
                 			addHomeworkRecored('save');
               			}} />
 					</div>

+ 3 - 1
src/state.ts

@@ -593,6 +593,7 @@ const state = reactive({
   /** 右上角速度图标,根据当前小节的速度是几分音符的动态变化 */
   speedIcon: 'speed3', // 默认取1/4拍的图片
   isSingleMutliTrack: false, // 是否是单声轨多声部的声轨
+  showWorkDonePop: false, // 显示需要提交练习作业弹窗
 });
 const browserInfo = browser();
 let offset_duration = 0;
@@ -636,7 +637,8 @@ export const onPlay = () => {
 
 /** 播放模式结束自动重播 */
 const autoResetPlay = () => {
-  if (state.modeType !== "practise") return;
+  // 作业模式,出现作业提交弹窗时,不进行自动重播逻辑
+  if (state.modeType !== "practise" || state.showWorkDonePop) return;
   skipNotePlay(0, true);
   // 没有开启自动重播, 不是练习模式
   if (!state.setting.repeatAutoPlay) return;