Bladeren bron

Merge branch 'feature/0429-musicV2' into develop

yuanliang 1 jaar geleden
bovenliggende
commit
3b9473c21a
1 gewijzigde bestanden met toevoegingen van 41 en 38 verwijderingen
  1. 41 38
      src/views/music-library/music-sheet/modal/music-operationV2.tsx

+ 41 - 38
src/views/music-library/music-sheet/modal/music-operationV2.tsx

@@ -368,33 +368,7 @@ export default defineComponent({
         () => forms.multiTracksSelection,
         (value) => {
           initInstrumentAndSubjectByCode(value)
-        }
-    )
-
-    watch(
-        () => forms.musicalInstrumentIdList,
-        (value) => {
-          forms.fSongList.forEach((fSong: any) => {
-            state.initFSongMap.set(fSong.musicalInstrumentId, fSong)
-          })
-
-          let fSongList = [] as any
-          value.forEach((item: any) => {
-            if (state.initFSongMap.has(item)) {
-              fSongList.push(state.initFSongMap.get(item))
-            } else {
-              fSongList.push({
-                musicSheetId: props.data.id,
-                audioFileUrl: null,
-                audioPlayType: 'SING',
-                musicalInstrumentId: item,
-                musicalInstrumentName: state.instrumentIdNameMap.get(item),
-                solmizationFileUrl: null, // 唱名男
-                femaleSolmizationFileUrl: null, // 唱名女
-              })
-            }
-          })
-          forms.fSongList = fSongList
+          initFSongList()
         }
     )
 
@@ -457,7 +431,7 @@ export default defineComponent({
 
           for (let i = 0; i < forms.fSongList.length; i++) {
             let fSong = forms.fSongList[i]
-            if (fSong.audioFileUrl || fSong.solmizationFileUrl) {
+            if (fSong.audioFileUrl || fSong.solmizationFileUrl || fSong.femaleSolmizationFileUrl) {
               musicSheetSoundList.push(fSong)
               audioPlayTypes.add("SING")
             }
@@ -492,10 +466,11 @@ export default defineComponent({
           } else if (musicSheetType == 'CONCERT') {
             audioPlayTypes.add("PLAY")
             forms.musicSheetSoundList_YY.forEach((musicSheetSound: any) => {
-              if (musicSheetSound.audioFileUrl && musicSheetSound.track != null) {
+              if (musicSheetSound.audioFileUrl && forms.multiTracksSelection.includes(musicSheetSound.track)) {
                 musicSheetSoundList.push({
                   ...musicSheetSound,
                   musicSheetId: props.data.id,
+                  audioPlayType: 'PLAY'
                 })
                 existYzFile = true
               }
@@ -593,6 +568,32 @@ export default defineComponent({
       })
     }
 
+    const initFSongList = async () => {
+      forms.fSongList.forEach((fSong: any) => {
+        state.initFSongMap.set(fSong.track, fSong)
+      })
+
+      let fSongList = [] as any
+      forms.multiTracksSelection.forEach((item: any) => {
+        if (state.initFSongMap.has(item)) {
+          fSongList.push(state.initFSongMap.get(item))
+        } else {
+          fSongList.push({
+            musicSheetId: props.data.id,
+            audioFileUrl: null,
+            audioPlayType: 'SING',
+            musicalInstrumentId: null,
+            track: item,
+            // musicalInstrumentName: state.instrumentIdNameMap.get(item),
+            musicalInstrumentName: null,
+            solmizationFileUrl: null, // 唱名男
+            femaleSolmizationFileUrl: null, // 唱名女
+          })
+        }
+      })
+      forms.fSongList = fSongList
+    }
+
     // 上传XML,初始化音轨 音轨速度 乐器、声部
     const readFileInputEventAsArrayBuffer = (file: any) => {
       // 是否是evxml
@@ -1113,11 +1114,11 @@ export default defineComponent({
 
           // 初始化演奏
           for (let i = 0; i < state.musicSheetSoundList.length; i++) {
-            if (state.musicSheetSoundList[i].audioPlayType == 'SING') {
+            if (state.musicSheetSoundList[i].audioPlayType == 'SING' && state.musicSheetSoundList[i].track != null) {
               // 范唱 唱名
-              state.initFSongMap.set(state.musicSheetSoundList[i].musicalInstrumentId, {
+              state.initFSongMap.set(state.musicSheetSoundList[i].track, {
                 ...state.musicSheetSoundList[i],
-                musicalInstrumentName: state.instrumentIdNameMap.get(state.musicSheetSoundList[i].musicalInstrumentId),
+                // musicalInstrumentName: state.instrumentIdNameMap.get(state.musicSheetSoundList[i].musicalInstrumentId),
               })
             } else {
               if (forms.isAllSubject) {
@@ -1147,16 +1148,18 @@ export default defineComponent({
               state.partListNames = getPartListNames(res?.data as any) as any
 
               // 初始化音轨和原音
+              let multiTracksSelection = [] as any
               if (data.multiTracksSelection) {
                 data.multiTracksSelection = data.multiTracksSelection.toLocaleUpperCase()
               }
               if (!data.multiTracksSelection || data.multiTracksSelection.trim() == '' || data.multiTracksSelection.trim() == 'NULL') {
-                forms.multiTracksSelection = ['']
+                multiTracksSelection.push('')
               } else {
-                forms.multiTracksSelection = data.multiTracksSelection.split(',')
+                multiTracksSelection = data.multiTracksSelection.split(',')
               }
               let names = state.partListNames.map((next: any) => next.label)
-              forms.multiTracksSelection = names.filter((next: any) => forms.multiTracksSelection.includes(next.toLocaleUpperCase()))
+              multiTracksSelection = names.filter((next: any) => multiTracksSelection.includes(next.toLocaleUpperCase()))
+              forms.multiTracksSelection = multiTracksSelection
 
               const existSoundList = data.musicSheetSoundList ? data.musicSheetSoundList : []
               // 如果只有一个原音文件,并且原音没有对应声轨,取xml解析中的第一个声轨绑定当当前原音
@@ -1799,7 +1802,7 @@ export default defineComponent({
                     <NGrid class={styles.audioSection}>
                       <NFormItemGi
                           span={12}
-                          label={item.musicalInstrumentName + '范唱'}
+                          label={item.track + '范唱'}
                           path={item.audioFileUrl}
                           rule={[
                             {
@@ -1826,7 +1829,7 @@ export default defineComponent({
                 return (
                     <NGrid cols={2}>
                       <NFormItemGi
-                          label={item.musicalInstrumentName + '唱名(男)'}
+                          label={item.track + '唱名(男)'}
                           path={item.solmizationFileUrl}
                           rule={[
                             {
@@ -1847,7 +1850,7 @@ export default defineComponent({
                         />
                       </NFormItemGi>
                       <NFormItemGi
-                          label={item.musicalInstrumentName + '唱名(女)'}
+                          label={item.track + '唱名(女)'}
                           path={item.femaleSolmizationFileUrl}
                           rule={[
                             {