|  | @@ -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")
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -593,6 +567,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 +1113,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.musicSheetSoundList[i],
 | 
	
		
			
				|  |  | -                musicalInstrumentName: state.instrumentIdNameMap.get(state.musicSheetSoundList[i].musicalInstrumentId),
 | 
	
		
			
				|  |  | +                // musicalInstrumentName: state.instrumentIdNameMap.get(state.musicSheetSoundList[i].musicalInstrumentId),
 | 
	
		
			
				|  |  |                })
 | 
	
		
			
				|  |  |              } else {
 | 
	
		
			
				|  |  |                if (forms.isAllSubject) {
 | 
	
	
		
			
				|  | @@ -1147,16 +1147,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解析中的第一个声轨绑定当当前原音
 | 
	
	
		
			
				|  | @@ -1792,7 +1794,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                      <NGrid class={styles.audioSection}>
 | 
	
		
			
				|  |  |                        <NFormItemGi
 | 
	
		
			
				|  |  |                            span={12}
 | 
	
		
			
				|  |  | -                          label={item.musicalInstrumentName + '范唱'}
 | 
	
		
			
				|  |  | +                          label={item.track + '范唱'}
 | 
	
		
			
				|  |  |                            path={item.audioFileUrl}
 | 
	
		
			
				|  |  |                            rule={[
 | 
	
		
			
				|  |  |                              {
 | 
	
	
		
			
				|  | @@ -1819,7 +1821,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                  return (
 | 
	
		
			
				|  |  |                      <NGrid cols={2}>
 | 
	
		
			
				|  |  |                        <NFormItemGi
 | 
	
		
			
				|  |  | -                          label={item.musicalInstrumentName + '唱名(男)'}
 | 
	
		
			
				|  |  | +                          label={item.track + '唱名(男)'}
 | 
	
		
			
				|  |  |                            path={item.solmizationFileUrl}
 | 
	
		
			
				|  |  |                            rule={[
 | 
	
		
			
				|  |  |                              {
 | 
	
	
		
			
				|  | @@ -1840,7 +1842,7 @@ export default defineComponent({
 | 
	
		
			
				|  |  |                          />
 | 
	
		
			
				|  |  |                        </NFormItemGi>
 | 
	
		
			
				|  |  |                        <NFormItemGi
 | 
	
		
			
				|  |  | -                          label={item.musicalInstrumentName + '唱名(女)'}
 | 
	
		
			
				|  |  | +                          label={item.track + '唱名(女)'}
 | 
	
		
			
				|  |  |                            path={item.femaleSolmizationFileUrl}
 | 
	
		
			
				|  |  |                            rule={[
 | 
	
		
			
				|  |  |                              {
 |