yuanliang 9 ヶ月 前
コミット
60edf84512
1 ファイル変更16 行追加14 行削除
  1. 16 14
      src/views/music-library/music-sheet/modal/music-operation.tsx

+ 16 - 14
src/views/music-library/music-sheet/modal/music-operation.tsx

@@ -365,18 +365,13 @@ export default defineComponent({
         }
         try {
           //extConfigJson: {"repeatedBeats":0,"gradualTimes":{"75":"02:38:60","77":"02:43:39"}}
-          let multiTracksSelection = []
-          for (let i = 0; i < forms.musicSheetSoundList.length; i++) {
-            multiTracksSelection.push(forms.musicSheetSoundList[i].track)
-          }
           const obj = {
             ...forms,
             musicTag: '-1',
-            multiTracksSelection: multiTracksSelection.join(','),
-            musicSheetSoundList: forms.musicSheetSoundList,
-            // musicSheetSoundList: forms.musicSheetSoundList.filter((next: any) => {
-            //   return !!next.audioFileUrl && (!next.track || forms.multiTracksSelection.includes(next.track))
-            // }),
+            multiTracksSelection: forms.multiTracksSelection.join(','),
+            musicSheetSoundList: forms.musicSheetSoundList.filter((next: any) => {
+              return !!next.audioFileUrl && (!next.track || forms.multiTracksSelection.includes(next.track))
+            }),
             musicalInstrumentIds: forms.musicalInstrumentIdList.join(','),
             extConfigJson: JSON.stringify({
               repeatedBeats: forms.repeatedBeats ? 1 : 0,
@@ -420,7 +415,7 @@ export default defineComponent({
         } catch (error) {}
 
         forms.musicSheetSoundList = forms.musicSheetSoundList.filter((item: any) => {
-         return (!containOther(item.track) || (item.track?.toLocaleUpperCase?.() != 'COMMON' && forms.multiTracksSelection.includes(item.track)))
+         return (!item.track || !containOther(item.track) || (item.track?.toLocaleUpperCase?.() != 'COMMON' && forms.multiTracksSelection.includes(item.track)))
         })
         state.partListNames = getPartListNames(res?.target?.result as any) as any
         parseInstrumentAndSubject(res?.target?.result as any)
@@ -449,6 +444,7 @@ export default defineComponent({
         for (let i = 0; i < forms.musicSheetSoundList.length; i++) {
           let track = forms.musicSheetSoundList[i].track;
           if (!track || !tracks.includes(track)) {
+            forms.musicSheetSoundList[i].track = null
             newMusicSheetSoundList.push(forms.musicSheetSoundList[i])
           }
         }
@@ -487,6 +483,12 @@ export default defineComponent({
       return false
     }
 
+    const validSoundNum = () => {
+      return forms.musicSheetSoundList.filter((item: any) => {
+        return (!item.track || !containOther(item.track) || (item.track?.toLocaleUpperCase?.() != 'COMMON' && forms.multiTracksSelection.includes(item.track)))
+      }).length;
+    }
+
     const parseInstrumentAndSubject = (xml: any) => {
       if (!xml) return
       const xmlParse = new DOMParser().parseFromString(xml, 'text/xml')
@@ -655,9 +657,9 @@ export default defineComponent({
         onPositiveClick: async () => {
           const sound = forms.musicSheetSoundList[index]
           let track = sound.track
-          if (!track) {
-            track = ''
-          }
+          // if (!track) {
+          //   track = ''
+          // }
           // if (track) {
           const selectIndex = forms.multiTracksSelection.indexOf(track)
           if (selectIndex > -1) {
@@ -1657,7 +1659,7 @@ export default defineComponent({
                               path={`musicSheetSoundList[${index}].track`}
                               rule={[
                                 {
-                                  required: false,
+                                  required: validSoundNum() > 1,
                                   message: '请选择所属轨道'
                                 }
                               ]}