Browse Source

当没有传乐器并没有匹配到数据的时候,默认取第一个曲子

黄琪勇 6 months ago
parent
commit
b25a37ac2d
1 changed files with 16 additions and 27 deletions
  1. 16 27
      src/state.ts

+ 16 - 27
src/state.ts

@@ -1371,6 +1371,7 @@ const getMusicInfo = async (res: any) => {
   const tracks = xmlToTracks(xmlString) //获取声轨列表
   // 设置音源  track 为当前的声轨 index为当前的
   const { track, index, musicalInstrumentId } = state.isSimplePage ? { track:tracks[0], index:0, musicalInstrumentId: '' } : initMusicSource(res.data, tracks, partIndex, workRecordInstrumentId)
+  // 这里返回的track可能和实际的对不上,所以重新筛选一下
   const realTrack = musicalInstrumentId && res.data?.musicalInstruments?.length ? res.data?.musicalInstruments.find((item: any) => item?.id == musicalInstrumentId)?.code?.split(',')?.[0] : '';
   const musicInfo = {
     ...res.data,
@@ -1408,23 +1409,11 @@ function initMusicSource(data: any, tracks: string[], partIndex: number, workRec
     musicObj = musicSheetSoundList.find((item: any) => {
       return isAllSubject ? item.audioPlayType === "PLAY" : (item.audioPlayType === "PLAY" && item.musicalInstrumentId == instrumentId)
     })
-    // 因为可能根据学生的乐器id也找不到曲目所以尝试取第一个
-    if(!musicObj){
+    // 当没有找到原音的时候,并且instrumentId没有值的时候,取默认第一个乐器
+    if(!musicObj && !instrumentId){
       musicObj = musicSheetSoundList.find((item: any) => {
         return item.audioPlayType === "PLAY"
       })
-      // 取第一个时候,不播放演奏文件切换为演唱模式  总控平台排除这个逻辑
-      if(!query.isCbs){
-        state.playType = "sing"
-        if(musicObj) {
-          musicObj.audioFileUrl = null
-          musicObj.audioBeatMixUrl = null
-        }
-        if(accompanyObj) {
-          accompanyObj.audioFileUrl = null
-          accompanyObj.audioBeatMixUrl = null
-        }
-      }
     }
     fanSongObj = musicSheetSoundList.find((item: any) => {
       return item.audioPlayType === "SING"
@@ -1599,12 +1588,12 @@ const setState = (data: any, index: number) => {
   /**
    * 单曲,指法根据用户当前的乐器来显示,如果没有则取musicSheetSoundList第一个track
    */
-  const currentInstrumentId = query.instrumentId || storeData.user?.instrumentId;
-  let musicalCode = !currentInstrumentId ? data.musicSheetSoundList?.find((item:any)=>{ return item.audioPlayType === "PLAY" })?.track || '' : data.musicSheetSoundList?.find((item: any) => item?.musicalInstrumentId == currentInstrumentId && item.audioPlayType === "PLAY")?.track || '';
-  const pitchSubject = musicalInstrumentCodeInfo.find((n) => n.code.toLocaleLowerCase() === subjectCode.toLocaleLowerCase())
-  const pitchMusical = musicalInstrumentCodeInfo.find((n) => n.code.toLocaleLowerCase() === musicalCode.toLocaleLowerCase())
-  state.subjectCodeId = pitchSubject ? pitchSubject.id : 0
-  state.musicalCodeId = pitchMusical ? pitchMusical.id : 0
+  // const currentInstrumentId = query.instrumentId || storeData.user?.instrumentId;
+  // let musicalCode = !currentInstrumentId ? data.musicSheetSoundList?.find((item:any)=>{ return item.audioPlayType === "PLAY" })?.track || '' : data.musicSheetSoundList?.find((item: any) => item?.musicalInstrumentId == currentInstrumentId && item.audioPlayType === "PLAY")?.track || '';
+  // const pitchSubject = musicalInstrumentCodeInfo.find((n) => n.code.toLocaleLowerCase() === subjectCode.toLocaleLowerCase())
+  // const pitchMusical = musicalInstrumentCodeInfo.find((n) => n.code.toLocaleLowerCase() === musicalCode.toLocaleLowerCase())
+  // state.subjectCodeId = pitchSubject ? pitchSubject.id : 0
+  // state.musicalCodeId = pitchMusical ? pitchMusical.id : 0
   state.categoriesId = data.musicCategoryId;
   state.categoriesName = data.musicTagNames;
   // state.enableEvaluation = data.isEvaluated ? true : false;
@@ -1708,13 +1697,13 @@ const setState = (data: any, index: number) => {
    * 能否转谱:先取isConvertibleScore字段,如果isConvertibleScore为true,则取musicalInstruments字段匹配的当前分轨的transferFlag,都为true则可以转谱
    * 
    */
-  let pitchTrack = null
-  if (state.isConcert) {
-    musicalCode = musicalInstrumentCodeInfo.find((item: any) => item.id === state.musicalCodeId)?.code
-    pitchTrack = data.musicalInstruments?.find((item: any) => item.code?.split(',')[0] === musicalCode)
-  } else {
-    pitchTrack = data.musicalInstruments?.find((item: any) => item.code?.split(',')[0] === musicalCode)
-  }
+  // let pitchTrack = null
+  // if (state.isConcert) {
+  //   musicalCode = musicalInstrumentCodeInfo.find((item: any) => item.id === state.musicalCodeId)?.code
+  //   pitchTrack = data.musicalInstruments?.find((item: any) => item.code?.split(',')[0] === musicalCode)
+  // } else {
+  //   pitchTrack = data.musicalInstruments?.find((item: any) => item.code?.split(',')[0] === musicalCode)
+  // }
   let musicalRenderType = ''
   // if (pitchTrack?.defaultScore) {
   //   musicalRenderType = pitchTrack?.defaultScore === 'STAVE' ? 'staff' : pitchTrack?.defaultScore === 'JIAN' ? 'fixedTone' : pitchTrack?.defaultScore === 'FIRST' ? 'firstTone' : ''