浏览代码

feat: 布置作业兼容小节从0开始的曲子

TIANYONG 5 月之前
父节点
当前提交
47ad634c7a

+ 3 - 1
src/views/attend-class/model/train-settings/index.tsx

@@ -140,7 +140,9 @@ export default defineComponent({
 
       // 判断读取小节数
       if (xmlStatus == 'success') {
-        item.practiceChapterMax = firstMeasures.length;
+        // 标记xml是否是从0小节开始
+        item.firstMeasureIsZero = firstMeasures?.[0]?.getAttribute('number') === '0';
+        item.practiceChapterMax = item.firstMeasureIsZero ? firstMeasures.length - 1 : firstMeasures.length;
       } else {
         item.practiceChapterMax = 0;
       }

+ 9 - 4
src/views/attend-class/model/train-update/index.tsx

@@ -59,7 +59,8 @@ export default defineComponent({
       practiceTimes: null as any, // 练习时长
       difficulty: 'BEGINNER', // 评测难度
       evaluationSpeed: null as any, // 评测速度
-      evaluationScore: null as any // 评测分数
+      evaluationScore: null as any, // 评测分数
+      firstMeasureIsZero: false as boolean, // 标记xml是否是从0小节开始
     });
     const formsRef = ref();
 
@@ -94,6 +95,8 @@ export default defineComponent({
             configJson.trainingTimes = forms.evaluationScore;
           }
           configJson.practiceChapterMax = forms.baseMaxScore;
+          // 添加是否从0小节开始的标记
+          configJson.firstMeasureIsZero = forms.firstMeasureIsZero;
           params.trainingConfigJson = configJson;
           // if (props.type === 'train') {
           // if (forms.id) {
@@ -130,9 +133,11 @@ export default defineComponent({
         forms.difficulty = item.evaluateDifficult || 'BEGINNER';
         forms.evaluationSpeed = item.evaluateSpeed;
       } else {
-        forms.minScore = 1;
+        // xml小节从0开始,最小为0,否则为1
+        forms.minScore = item.firstMeasureIsZero ? 0 : 1;
         forms.maxScore = item.practiceChapterMax ? item.practiceChapterMax : 1;
       }
+      forms.firstMeasureIsZero = item.firstMeasureIsZero;
       forms.audioPlayTypeArray = item.audioPlayTypeArray || [];
       forms.containAccompaniment = item.containAccompaniment || null
       forms.baseMaxScore = item.practiceChapterMax || 99;
@@ -203,7 +208,7 @@ export default defineComponent({
               <NInputNumber
                 v-model:value={forms.minScore}
                 showButton={false}
-                min={1}
+                min={forms.firstMeasureIsZero ? 0 : 1}
                 max={forms.baseMaxScore}
                 precision={0}
                 placeholder="最小练习小节"
@@ -237,7 +242,7 @@ export default defineComponent({
                 v-model:value={forms.maxScore}
                 showButton={false}
                 precision={0}
-                min={forms.minScore || 1}
+                min={forms.minScore || 0}
                 max={forms.baseMaxScore}
                 placeholder="最大练习小节"
                 clearable

+ 3 - 1
src/views/prepare-lessons/components/resource-main/components/select-music/index.tsx

@@ -221,7 +221,9 @@ export default defineComponent({
 
       // 判断读取小节数
       if (xmlStatus == 'success') {
-        item.practiceChapterMax = firstMeasures.length;
+        // 标记xml是否是从0小节开始
+        item.firstMeasureIsZero = firstMeasures?.[0]?.getAttribute('number') === '0';
+        item.practiceChapterMax = item.firstMeasureIsZero ? firstMeasures.length - 1 : firstMeasures.length;
       } else {
         item.practiceChapterMax = 0;
       }

+ 3 - 1
src/views/prepare-lessons/components/resource-main/index.tsx

@@ -85,7 +85,9 @@ export default defineComponent({
 
       // 判断读取小节数
       if (xmlStatus == 'success') {
-        item.practiceChapterMax = firstMeasures.length;
+        // 标记xml是否是从0小节开始
+        item.firstMeasureIsZero = firstMeasures?.[0]?.getAttribute('number') === '0';
+        item.practiceChapterMax = item.firstMeasureIsZero ? firstMeasures.length - 1 : firstMeasures.length;
       } else {
         item.practiceChapterMax = 0;
       }