| 
					
				 | 
			
			
				@@ -365,13 +365,18 @@ 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: forms.multiTracksSelection.join(','), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            musicSheetSoundList: forms.musicSheetSoundList.filter((next: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              return !!next.audioFileUrl && (!next.track || forms.multiTracksSelection.includes(next.track)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            multiTracksSelection: multiTracksSelection.join(','), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            musicSheetSoundList: forms.musicSheetSoundList, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 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, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -416,29 +421,51 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         state.partListNames = getPartListNames(res?.target?.result as any) as any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         parseInstrumentAndSubject(res?.target?.result as any) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 这里是如果没有当前音轨就重新写 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (let j = 0; j < state.partListNames.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (!forms.musicSheetSoundList[j]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            forms.musicSheetSoundList.push({ audioFileUrl: null, track: null }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let map = new Map<String, String>() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (let i = 0; i < forms.musicSheetSoundList.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          let track = forms.musicSheetSoundList[i].track; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (track) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            map.set(track, forms.musicSheetSoundList[i]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          forms.musicSheetSoundList[j].track = state.partListNames[j].value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 循环添加所在音轨的原音 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          let index = forms.musicSheetSoundList.length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          index < state.partListNames.length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          index++ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const part = state.partListNames[index].value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const sysData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ...forms.musicSheetSoundList[0], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            track: part 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let newMusicSheetSoundList = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let tracks = [] as any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (let j = 0; j < state.partListNames.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          let track = state.partListNames[j].value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (map.has(track)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            newMusicSheetSoundList.push(map.get(track)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            newMusicSheetSoundList.push({audioFileUrl: null, track: track, musicalInstrumentId: null}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (!sysData.speed) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sysData.speed = state.xmlFirstSpeed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          tracks.push(track) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (let i = 0; i < forms.musicSheetSoundList.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          let track = forms.musicSheetSoundList[i].track; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (!track || !tracks.includes(track)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            newMusicSheetSoundList.push(forms.musicSheetSoundList[i]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          createSys(sysData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        forms.musicSheetSoundList = newMusicSheetSoundList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        forms.multiTracksSelection = forms.multiTracksSelection.filter((track: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return tracks.includes(track) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 循环添加所在音轨的原音 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // for (let index = forms.musicSheetSoundList.length; index < state.partListNames.length; index++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   const part = state.partListNames[index].value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   const sysData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     ...forms.musicSheetSoundList[0], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     track: part 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   if (!sysData.speed) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //     sysData.speed = state.xmlFirstSpeed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //   createSys(sysData) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (forms.musicSheetSoundList.length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           forms.musicSheetSoundList.push({ audioFileUrl: '', track: '' }) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -547,9 +574,9 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       partListNames = partListNames.filter((n: any) => n.value?.toLocaleUpperCase?.() != 'COMMON') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (partListNames.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        forms.musicSheetSoundList = forms.musicSheetSoundList.slice(0, partListNames.length) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // if (partListNames.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      //   forms.musicSheetSoundList = forms.musicSheetSoundList.slice(0, partListNames.length) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       state.xmlFirstSpeed = xmlParse.getElementsByTagName('per-minute')?.[0]?.textContent || '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (!forms.playSpeed) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -628,13 +655,12 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             track = '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           // if (track) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const selectIndex = forms.multiTracksSelection.indexOf(track) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (selectIndex > -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              forms.multiTracksSelection.splice(selectIndex, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          //   forms.musicSheetSoundList.splice(index, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const selectIndex = forms.multiTracksSelection.indexOf(track) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (selectIndex > -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            forms.multiTracksSelection.splice(selectIndex, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            forms.musicSheetSoundList.splice(index, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1310,9 +1336,9 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   text="点击上传XML文件" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   onReadFileInputEventAsArrayBuffer={readFileInputEventAsArrayBuffer} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   onRemove={() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    forms.multiTracksSelection = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    state.partListNames = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    forms.musicSheetSoundList = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // forms.multiTracksSelection = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // state.partListNames = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // forms.musicSheetSoundList = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     forms.musicalInstrumentIdList = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     forms.subjectIds = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   }} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1444,7 +1470,40 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                           ]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          <NCheckboxGroup v-model:value={forms.multiTracksSelection}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          <NCheckboxGroup v-model:value={forms.multiTracksSelection} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          // onUpdateValue={(val: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //   let removeTracks = [] as any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //   for (let i = 0; i < forms.multiTracksSelection.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //     let track = forms.musicSheetSoundList[i].track 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //     if (!val.includes(track)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //       removeTracks.push(track) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //   // 新增 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //   for (let i = 0; i < val.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //     let track = val.value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //     let contain = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //     for (let j = 0; j < forms.musicSheetSoundList.length; j++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //       let track1 = forms.musicSheetSoundList[i].track; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //       if (track == track1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //         contain = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //         break 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //     if (!contain) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //       forms.musicSheetSoundList.push({audioFileUrl: null, track: track, musicalInstrumentId: null}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //   // 删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //   if (removeTracks.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //     forms.musicSheetSoundList = forms.musicSheetSoundList.filter((val: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //       return removeTracks.includes(val) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //     }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          //   forms.multiTracksSelection = val 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                          // }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             <NGrid yGap={2} cols={4}> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                               {state.partListNames.map((item: any) => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 <NGi> 
			 |