Browse Source

feat: 完整评测作业可以保存作品

TIANYONG 2 months ago
parent
commit
19cb5051d2

+ 1 - 0
src/helpers/formateMusic.ts

@@ -370,6 +370,7 @@ export const onlyVisible = (xml: string, partIndex: number): string => {
 	const parts: any = xmlParse.getElementsByTagName("part");
 	// const firstTimeInfo = parts[0]?.getElementsByTagName('metronome')[0]?.parentElement?.parentElement?.cloneNode(true)
 	const firstMeasures = [...parts[0]?.getElementsByTagName("measure")];
+	state.totalMeasureNumber = firstMeasures.length || [...parts[1]?.getElementsByTagName("measure")]?.length
 	const metronomes = [...parts[0]?.getElementsByTagName("metronome")];
 	const words = [...parts[0]?.getElementsByTagName("words")];
 	const codas = [...parts[0]?.getElementsByTagName("coda")];

+ 1 - 0
src/page-instrument/custom-plugins/work-ealuating/index.tsx

@@ -52,6 +52,7 @@ export default defineComponent({
 				evaluatingWorkData.end = Number(trainingContent.practiceChapterEnd);
 				evaluatingWorkData.score = Number(trainingContent.trainingTimes);
 				state.userChooseEndIndex = evaluatingWorkData.end
+				state.isFullEvaluatWork = (evaluatingWorkData.end - evaluatingWorkData.start) + 1 === state.totalMeasureNumber;
 				// 设置小节
 				setSection(evaluatingWorkData.start, evaluatingWorkData.end, evaluatingWorkData.evaluateSpeed);
 			}

+ 4 - 1
src/page-instrument/evaluat-model/evaluat-result/index.tsx

@@ -86,7 +86,10 @@ export default defineComponent({
       let tipContent = '';
       const rate = state.basePlayRate * state.originAudioPlayRate; // 播放倍率
       if (query.workRecord || state.section.length === 2 || state.isAppPlay || rate != 1 || !state.accompany) {
-        tipContent = query.workRecord ? '评测作业暂不支持保存作品噢~' : (!state.accompany || state.isAppPlay) ? '该曲目暂不支持保存作品噢~' : state.section.length === 2 ? '选段后暂不支持保存作品噢~' : rate != 1 ? '调速后暂不支持保存作品噢~' : '';
+        tipContent = (query.workRecord && !state.isFullEvaluatWork) ? '完整评测整首曲目才能保存作品哦!' : (!state.accompany || state.isAppPlay) ? '该曲目暂不支持保存作品噢~' : state.section.length === 2 ? '选段后暂不支持保存作品噢~' : rate != 1 ? '调速后暂不支持保存作品噢~' : '';
+      }
+      if (query.workRecord && state.isFullEvaluatWork) {
+        tipContent = ''
       }
       return tipContent
     })

+ 2 - 0
src/state.ts

@@ -586,6 +586,8 @@ const state = reactive({
   isWorkDone: false,
   /** xml的第一个measure标签的number */
   firstMeasureNumber: 1,
+  totalMeasureNumber: 0, // xml一轨总共的小节数
+  isFullEvaluatWork: false, // 是否是完整评测作业,完整评测作业可以保存作品  
 });
 const browserInfo = browser();
 let offset_duration = 0;