Browse Source

feat: 作业切换声轨

TIANYONG 3 weeks ago
parent
commit
9ccf86cbc0
1 changed files with 11 additions and 5 deletions
  1. 11 5
      src/state.ts

+ 11 - 5
src/state.ts

@@ -1335,13 +1335,19 @@ const getMusicInfo = async (res: any) => {
   } else {
     (window as any).DYFirstTrackName = '';
   }
-  // 如果是作业模式,需要默认渲染当前学生声部对应的声轨,并且默认不显示总谱
+  /**
+   * 如果是作业模式,需要默认渲染当前学生声部对应的声轨,并且默认不显示总谱
+   * 2025.02.28 补充逻辑,作业支持用户切换声轨,如果切换了声轨,则选中用户切换后的声轨,用户切换声轨后,url链接会带有part-index参数,
+   *  通过有没有part-index区分作业有没有切换声轨,如果没有切换声轨,则还是默认选中学生当前声部的声轨
+   */
   if (state.isHomeWork && storeData.user?.instrumentId) {
-    const currentTrack = res.data.musicSheetSoundList.find((item: any) => item.musicalInstrumentId === storeData.user?.instrumentId)?.track;
-    if (currentTrack) {
-      partIndex = tracks.findIndex(item => item === currentTrack) || partIndex
-      state.defaultScoreRender = false
+    if (!query["part-index"]) {
+      const currentTrack = res.data.musicSheetSoundList.find((item: any) => item.musicalInstrumentId === storeData.user?.instrumentId)?.track;
+      if (currentTrack) {
+        partIndex = tracks.findIndex(item => item === currentTrack) || partIndex
+      }
     }
+    state.defaultScoreRender = false
   }
   // 设置音源  track 为当前的声轨 index为当前的
   const { track, index, musicalInstrumentId } = state.isSimplePage ? { track:tracks[0], index: state.partIndex, musicalInstrumentId: '' } : initMusicSource(res.data, tracks, partIndex, workRecordInstrumentId)