|  | @@ -4,7 +4,7 @@ import {
 | 
											
												
													
														|  |    NButton,
 |  |    NButton,
 | 
											
												
													
														|  |    NCascader,
 |  |    NCascader,
 | 
											
												
													
														|  |    NCheckbox,
 |  |    NCheckbox,
 | 
											
												
													
														|  | -  NCheckboxGroup,
 |  | 
 | 
											
												
													
														|  | 
 |  | +  NCheckboxGroup, NDivider,
 | 
											
												
													
														|  |    NForm,
 |  |    NForm,
 | 
											
												
													
														|  |    NFormItem,
 |  |    NFormItem,
 | 
											
												
													
														|  |    NFormItemGi,
 |  |    NFormItemGi,
 | 
											
										
											
												
													
														|  | @@ -23,7 +23,7 @@ import {
 | 
											
												
													
														|  |    useDialog,
 |  |    useDialog,
 | 
											
												
													
														|  |    useMessage
 |  |    useMessage
 | 
											
												
													
														|  |  } from 'naive-ui'
 |  |  } from 'naive-ui'
 | 
											
												
													
														|  | -import {defineComponent, onMounted, PropType, reactive, ref} from 'vue'
 |  | 
 | 
											
												
													
														|  | 
 |  | +import {defineComponent, onMounted, PropType, reactive, ref, watch} from 'vue'
 | 
											
												
													
														|  |  import {musicSheetCategoriesQueryTree, musicSheetDetail, musicSheetSave} from '../../api'
 |  |  import {musicSheetCategoriesQueryTree, musicSheetDetail, musicSheetSave} from '../../api'
 | 
											
												
													
														|  |  import UploadFile from '@/components/upload-file'
 |  |  import UploadFile from '@/components/upload-file'
 | 
											
												
													
														|  |  import styles from './index.module.less'
 |  |  import styles from './index.module.less'
 | 
											
										
											
												
													
														|  | @@ -37,7 +37,6 @@ import MusicSheetOwnerDialog from '@views/music-library/music-sheet/modal/musicS
 | 
											
												
													
														|  |  import {sysApplicationPage} from '@views/menu-manage/api'
 |  |  import {sysApplicationPage} from '@views/menu-manage/api'
 | 
											
												
													
														|  |  import {filterPointCategory} from '@views/teaching-manage/unit-test'
 |  |  import {filterPointCategory} from '@views/teaching-manage/unit-test'
 | 
											
												
													
														|  |  import MusicCreateImg from './music-create-img'
 |  |  import MusicCreateImg from './music-create-img'
 | 
											
												
													
														|  | -import {TABS_ROUTES} from "@/store/mutation-types";
 |  | 
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  /**
 |  |  /**
 | 
											
												
													
														|  |   * 获取指定元素下一个Note元素
 |  |   * 获取指定元素下一个Note元素
 | 
											
										
											
												
													
														|  | @@ -327,6 +326,10 @@ export default defineComponent({
 | 
											
												
													
														|  |        isShowFingering: true, // 是否显示指法
 |  |        isShowFingering: true, // 是否显示指法
 | 
											
												
													
														|  |        solmizationFileUrl: null, // 唱名文件
 |  |        solmizationFileUrl: null, // 唱名文件
 | 
											
												
													
														|  |        isAllSubject: false, // 适用声部
 |  |        isAllSubject: false, // 适用声部
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      fSongList:[] as any,// 范唱列表
 | 
											
												
													
														|  | 
 |  | +      isScoreRender: true, // 总谱渲染
 | 
											
												
													
														|  | 
 |  | +      scoreAudioFileUrl: null as any, // 总谱文件
 | 
											
												
													
														|  |      })
 |  |      })
 | 
											
												
													
														|  |      const state = reactive({
 |  |      const state = reactive({
 | 
											
												
													
														|  |        loading: false,
 |  |        loading: false,
 | 
											
										
											
												
													
														|  | @@ -335,8 +338,7 @@ export default defineComponent({
 | 
											
												
													
														|  |        xmlFirstSpeed: null as any, // 第一个音轨速度
 |  |        xmlFirstSpeed: null as any, // 第一个音轨速度
 | 
											
												
													
														|  |        partListNames: [] as any, // 所有音轨声部列表
 |  |        partListNames: [] as any, // 所有音轨声部列表
 | 
											
												
													
														|  |        musicSheetCategories: [] as any,
 |  |        musicSheetCategories: [] as any,
 | 
											
												
													
														|  | -      musicSheetAccompanimentUrls: '' as any,
 |  | 
 | 
											
												
													
														|  | -      musicSheetAccompanimentUrlList: [] as any,
 |  | 
 | 
											
												
													
														|  | 
 |  | +      musicSheetAccompanimentUrl: null as any,
 | 
											
												
													
														|  |        instrumentData: [],
 |  |        instrumentData: [],
 | 
											
												
													
														|  |        instrumentList: [] as any,
 |  |        instrumentList: [] as any,
 | 
											
												
													
														|  |        instrumentIdNameMap: new Map() as any,
 |  |        instrumentIdNameMap: new Map() as any,
 | 
											
										
											
												
													
														|  | @@ -352,15 +354,26 @@ export default defineComponent({
 | 
											
												
													
														|  |        productItem: {} as any,
 |  |        productItem: {} as any,
 | 
											
												
													
														|  |        productIfameSrc: '',
 |  |        productIfameSrc: '',
 | 
											
												
													
														|  |        isAutoSave: false, // 是否自动保存
 |  |        isAutoSave: false, // 是否自动保存
 | 
											
												
													
														|  | -      fSongFile: null as any, // 范唱
 |  | 
 | 
											
												
													
														|  |        bSongFile: null as any, // 伴唱
 |  |        bSongFile: null as any, // 伴唱
 | 
											
												
													
														|  |        musicSheetSoundList: [] as any,
 |  |        musicSheetSoundList: [] as any,
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      subjectDisabled: false, // 声部不可用
 | 
											
												
													
														|  | 
 |  | +      instrumentDisabled: false, // 乐器不可用
 | 
											
												
													
														|  | 
 |  | +      initFSongMap: new Map() as any, //初始化的范唱
 | 
											
												
													
														|  |      })
 |  |      })
 | 
											
												
													
														|  |      const gradualData = reactive({
 |  |      const gradualData = reactive({
 | 
											
												
													
														|  |        list: [] as any[],
 |  |        list: [] as any[],
 | 
											
												
													
														|  |        gradualRefs: [] as any[]
 |  |        gradualRefs: [] as any[]
 | 
											
												
													
														|  |      })
 |  |      })
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +    watch(
 | 
											
												
													
														|  | 
 |  | +        () => forms.multiTracksSelection,
 | 
											
												
													
														|  | 
 |  | +        (value) => {
 | 
											
												
													
														|  | 
 |  | +          initInstrumentAndSubjectByCode(value)
 | 
											
												
													
														|  | 
 |  | +          initFSongList()
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +    )
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |      const btnLoading = ref(false)
 |  |      const btnLoading = ref(false)
 | 
											
												
													
														|  |      const formsRef = ref()
 |  |      const formsRef = ref()
 | 
											
												
													
														|  |      const message = useMessage()
 |  |      const message = useMessage()
 | 
											
										
											
												
													
														|  | @@ -414,24 +427,23 @@ export default defineComponent({
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          try {
 |  |          try {
 | 
											
												
													
														|  |            //extConfigJson: {"repeatedBeats":0,"gradualTimes":{"75":"02:38:60","77":"02:43:39"}}
 |  |            //extConfigJson: {"repeatedBeats":0,"gradualTimes":{"75":"02:38:60","77":"02:43:39"}}
 | 
											
												
													
														|  | -          let audioPlayTypes = [] as any;
 |  | 
 | 
											
												
													
														|  | 
 |  | +          let audioPlayTypes = new Set() as any;
 | 
											
												
													
														|  |            let musicSheetSoundList = [];
 |  |            let musicSheetSoundList = [];
 | 
											
												
													
														|  |            let musicSheetType = forms.musicSheetType;
 |  |            let musicSheetType = forms.musicSheetType;
 | 
											
												
													
														|  | -          if (state.fSongFile) {
 |  | 
 | 
											
												
													
														|  | -            musicSheetSoundList.push({
 |  | 
 | 
											
												
													
														|  | -              musicSheetId: props.data.id,
 |  | 
 | 
											
												
													
														|  | -              audioFileUrl: state.fSongFile,
 |  | 
 | 
											
												
													
														|  | -              audioPlayType: 'SING',
 |  | 
 | 
											
												
													
														|  | -              solmizationFileUrl: forms.solmizationFileUrl
 |  | 
 | 
											
												
													
														|  | -            })
 |  | 
 | 
											
												
													
														|  | -            audioPlayTypes.push("SING")
 |  | 
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +          for (let i = 0; i < forms.fSongList.length; i++) {
 | 
											
												
													
														|  | 
 |  | +            let fSong = forms.fSongList[i]
 | 
											
												
													
														|  | 
 |  | +            if (fSong.audioFileUrl || fSong.solmizationFileUrl || fSong.femaleSolmizationFileUrl) {
 | 
											
												
													
														|  | 
 |  | +              musicSheetSoundList.push(fSong)
 | 
											
												
													
														|  | 
 |  | +              audioPlayTypes.add("SING")
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  |            }
 |  |            }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |            var existYzFile = false;
 |  |            var existYzFile = false;
 | 
											
												
													
														|  |            if (musicSheetType == 'SINGLE') {
 |  |            if (musicSheetType == 'SINGLE') {
 | 
											
												
													
														|  |              if (forms.isAllSubject) {
 |  |              if (forms.isAllSubject) {
 | 
											
												
													
														|  |                if (forms.musicSheetSoundList_all_subject) {
 |  |                if (forms.musicSheetSoundList_all_subject) {
 | 
											
												
													
														|  | -                audioPlayTypes.push("PLAY")
 |  | 
 | 
											
												
													
														|  | 
 |  | +                audioPlayTypes.add("PLAY")
 | 
											
												
													
														|  |                  musicSheetSoundList.push({
 |  |                  musicSheetSoundList.push({
 | 
											
												
													
														|  |                    audioFileUrl: forms.musicSheetSoundList_all_subject,
 |  |                    audioFileUrl: forms.musicSheetSoundList_all_subject,
 | 
											
												
													
														|  |                    musicSheetId: props.data.id,
 |  |                    musicSheetId: props.data.id,
 | 
											
										
											
												
													
														|  | @@ -440,8 +452,8 @@ export default defineComponent({
 | 
											
												
													
														|  |                  existYzFile = true
 |  |                  existYzFile = true
 | 
											
												
													
														|  |                }
 |  |                }
 | 
											
												
													
														|  |              } else {
 |  |              } else {
 | 
											
												
													
														|  | -              if (forms.musicSheetSoundList_YZ.length > 0 && forms.playMode == 'MP3') {
 |  | 
 | 
											
												
													
														|  | -                audioPlayTypes.push("PLAY")
 |  | 
 | 
											
												
													
														|  | 
 |  | +              if (forms.musicSheetSoundList_YZ.length > 0) {
 | 
											
												
													
														|  | 
 |  | +                audioPlayTypes.add("PLAY")
 | 
											
												
													
														|  |                  forms.musicSheetSoundList_YZ.forEach((musicSheetSound: any) => {
 |  |                  forms.musicSheetSoundList_YZ.forEach((musicSheetSound: any) => {
 | 
											
												
													
														|  |                    if (forms.musicalInstrumentIdList.includes(musicSheetSound.musicalInstrumentId) && musicSheetSound.audioFileUrl) {
 |  |                    if (forms.musicalInstrumentIdList.includes(musicSheetSound.musicalInstrumentId) && musicSheetSound.audioFileUrl) {
 | 
											
												
													
														|  |                      existYzFile = true
 |  |                      existYzFile = true
 | 
											
										
											
												
													
														|  | @@ -454,35 +466,45 @@ export default defineComponent({
 | 
											
												
													
														|  |                }
 |  |                }
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |            } else if (musicSheetType == 'CONCERT') {
 |  |            } else if (musicSheetType == 'CONCERT') {
 | 
											
												
													
														|  | -            audioPlayTypes.push("PLAY")
 |  | 
 | 
											
												
													
														|  | 
 |  | +            audioPlayTypes.add("PLAY")
 | 
											
												
													
														|  |              forms.musicSheetSoundList_YY.forEach((musicSheetSound: any) => {
 |  |              forms.musicSheetSoundList_YY.forEach((musicSheetSound: any) => {
 | 
											
												
													
														|  | -              if (musicSheetSound.audioFileUrl && musicSheetSound.track != null) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +              if (musicSheetSound.audioFileUrl && forms.multiTracksSelection.includes(musicSheetSound.track)) {
 | 
											
												
													
														|  |                  musicSheetSoundList.push({
 |  |                  musicSheetSoundList.push({
 | 
											
												
													
														|  |                    ...musicSheetSound,
 |  |                    ...musicSheetSound,
 | 
											
												
													
														|  |                    musicSheetId: props.data.id,
 |  |                    musicSheetId: props.data.id,
 | 
											
												
													
														|  | 
 |  | +                  audioPlayType: 'PLAY'
 | 
											
												
													
														|  |                  })
 |  |                  })
 | 
											
												
													
														|  |                  existYzFile = true
 |  |                  existYzFile = true
 | 
											
												
													
														|  |                }
 |  |                }
 | 
											
												
													
														|  |              })
 |  |              })
 | 
											
												
													
														|  |            }
 |  |            }
 | 
											
												
													
														|  | -          if (!state.fSongFile && !state.bSongFile && !existYzFile) {
 |  | 
 | 
											
												
													
														|  | 
 |  | +          if (!state.bSongFile && !existYzFile) {
 | 
											
												
													
														|  |              message.warning("请上传音频文件")
 |  |              message.warning("请上传音频文件")
 | 
											
												
													
														|  |              return
 |  |              return
 | 
											
												
													
														|  |            }
 |  |            }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +          // 生成图片
 | 
											
												
													
														|  | 
 |  | +          if (!state.isAutoSave) {
 | 
											
												
													
														|  | 
 |  | +            state.isAutoSave = true
 | 
											
												
													
														|  | 
 |  | +            state.productOpen = true
 | 
											
												
													
														|  | 
 |  | +            return
 | 
											
												
													
														|  | 
 |  | +          }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |            if (state.bSongFile) {
 |  |            if (state.bSongFile) {
 | 
											
												
													
														|  |              forms.musicSheetAccompanimentList.push({
 |  |              forms.musicSheetAccompanimentList.push({
 | 
											
												
													
														|  |                musicSheetId: props.data.id,
 |  |                musicSheetId: props.data.id,
 | 
											
												
													
														|  |                audioFileUrl: state.bSongFile,
 |  |                audioFileUrl: state.bSongFile,
 | 
											
												
													
														|  | 
 |  | +              scoreAudioFileUrl: (forms.multiTracksSelection.length > 1 && forms.isScoreRender && forms.scoreAudioFileUrl) ? forms.scoreAudioFileUrl : null,
 | 
											
												
													
														|  |                audioPlayType: 'SING'
 |  |                audioPlayType: 'SING'
 | 
											
												
													
														|  |              })
 |  |              })
 | 
											
												
													
														|  |            }
 |  |            }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -          // 生成图片
 |  | 
 | 
											
												
													
														|  | -          if (!state.isAutoSave) {
 |  | 
 | 
											
												
													
														|  | -            state.isAutoSave = true
 |  | 
 | 
											
												
													
														|  | -            state.productOpen = true
 |  | 
 | 
											
												
													
														|  | -            return
 |  | 
 | 
											
												
													
														|  | 
 |  | +          if (state.musicSheetAccompanimentUrl) {
 | 
											
												
													
														|  | 
 |  | +            forms.musicSheetAccompanimentList.push({
 | 
											
												
													
														|  | 
 |  | +              musicSheetId: props.data.id,
 | 
											
												
													
														|  | 
 |  | +              audioFileUrl: state.musicSheetAccompanimentUrl,
 | 
											
												
													
														|  | 
 |  | +              audioPlayType: 'PLAY'
 | 
											
												
													
														|  | 
 |  | +            })
 | 
											
												
													
														|  |            }
 |  |            }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -493,7 +515,7 @@ export default defineComponent({
 | 
											
												
													
														|  |              appAuditFlag: forms.appAuditFlag,
 |  |              appAuditFlag: forms.appAuditFlag,
 | 
											
												
													
														|  |              subjectIds: forms.isAllSubject ? "" : forms.subjectIds.join(','),
 |  |              subjectIds: forms.isAllSubject ? "" : forms.subjectIds.join(','),
 | 
											
												
													
														|  |              remark: forms.remark,
 |  |              remark: forms.remark,
 | 
											
												
													
														|  | -            audioPlayTypes: audioPlayTypes.join(','),
 |  | 
 | 
											
												
													
														|  | 
 |  | +            audioPlayTypes: Array.from(audioPlayTypes).join(','),
 | 
											
												
													
														|  |              musicalInstrumentIds: forms.isAllSubject ? "" : forms.musicalInstrumentIdList.join(','),
 |  |              musicalInstrumentIds: forms.isAllSubject ? "" : forms.musicalInstrumentIdList.join(','),
 | 
											
												
													
														|  |              composer: forms.composer,
 |  |              composer: forms.composer,
 | 
											
												
													
														|  |              musicSheetType: forms.musicSheetType,
 |  |              musicSheetType: forms.musicSheetType,
 | 
											
										
											
												
													
														|  | @@ -549,6 +571,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,初始化音轨 音轨速度 乐器、声部
 |  |      // 上传XML,初始化音轨 音轨速度 乐器、声部
 | 
											
												
													
														|  |      const readFileInputEventAsArrayBuffer = (file: any) => {
 |  |      const readFileInputEventAsArrayBuffer = (file: any) => {
 | 
											
												
													
														|  |        // 是否是evxml
 |  |        // 是否是evxml
 | 
											
										
											
												
													
														|  | @@ -566,7 +614,7 @@ export default defineComponent({
 | 
											
												
													
														|  |          })
 |  |          })
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          state.partListNames = getPartListNames(res?.target?.result as any) as any
 |  |          state.partListNames = getPartListNames(res?.target?.result as any) as any
 | 
											
												
													
														|  | -        // parseInstrumentAndSubject(res?.target?.result as any)
 |  | 
 | 
											
												
													
														|  | 
 |  | +        parseInstrumentAndSubject(res?.target?.result as any)
 | 
											
												
													
														|  |          // 这里是如果没有当前音轨就重新写
 |  |          // 这里是如果没有当前音轨就重新写
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          let map = new Map<String, String>()
 |  |          let map = new Map<String, String>()
 | 
											
										
											
												
													
														|  | @@ -657,44 +705,58 @@ export default defineComponent({
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  |        // 乐器支持多编码,暂不开放
 |  |        // 乐器支持多编码,暂不开放
 | 
											
												
													
														|  | -      // const codeIdMap = new Map<string, []>() as any
 |  | 
 | 
											
												
													
														|  | -      // state.instrumentData.forEach((data: any) => {
 |  | 
 | 
											
												
													
														|  | -      //   const codes = data.code.split(/,|,/)
 |  | 
 | 
											
												
													
														|  | -      //   codes.forEach((code: string) => {
 |  | 
 | 
											
												
													
														|  | -      //     if (codeIdMap.has(code)) {
 |  | 
 | 
											
												
													
														|  | -      //       codeIdMap.get(code).push(data.id + '')
 |  | 
 | 
											
												
													
														|  | -      //     } else {
 |  | 
 | 
											
												
													
														|  | -      //       const arr = [] as any;
 |  | 
 | 
											
												
													
														|  | -      //       arr.push(data.id + '')
 |  | 
 | 
											
												
													
														|  | -      //       codeIdMap.set(code, arr)
 |  | 
 | 
											
												
													
														|  | -      //     }
 |  | 
 | 
											
												
													
														|  | -      //     // codeIdMap.set(code, data.id + '')
 |  | 
 | 
											
												
													
														|  | -      //   })
 |  | 
 | 
											
												
													
														|  | -      // })
 |  | 
 | 
											
												
													
														|  | -      // forms.musicalInstrumentIdList = []
 |  | 
 | 
											
												
													
														|  | -      // instrumentCodeList.forEach((code: string) => {
 |  | 
 | 
											
												
													
														|  | -      //   if (codeIdMap.has(code)) {
 |  | 
 | 
											
												
													
														|  | -      //     codeIdMap.get(code).forEach((c: any) => {
 |  | 
 | 
											
												
													
														|  | -      //       forms.musicalInstrumentIdList.push(c)
 |  | 
 | 
											
												
													
														|  | -      //     })
 |  | 
 | 
											
												
													
														|  | -      //   }
 |  | 
 | 
											
												
													
														|  | -      // })
 |  | 
 | 
											
												
													
														|  | -      const codeIdMap = new Map<string, string>()
 |  | 
 | 
											
												
													
														|  | 
 |  | +      initInstrumentAndSubjectByCode(instrumentCodeList)
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    // 通过乐器编码反显乐器和声部
 | 
											
												
													
														|  | 
 |  | +    const initInstrumentAndSubjectByCode = async (codes: string[]) => {
 | 
											
												
													
														|  | 
 |  | +      // 选择一个声轨,独奏
 | 
											
												
													
														|  | 
 |  | +      // 选择了多个声轨,合奏,乐器和声部自动反显,不可修改
 | 
											
												
													
														|  | 
 |  | +      if (!codes || codes.length <= 1) {
 | 
											
												
													
														|  | 
 |  | +        forms.musicSheetType = 'SINGLE'
 | 
											
												
													
														|  | 
 |  | +        state.subjectDisabled = false
 | 
											
												
													
														|  | 
 |  | +        state.instrumentDisabled = false
 | 
											
												
													
														|  | 
 |  | +        return
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +      forms.musicSheetType = 'CONCERT'
 | 
											
												
													
														|  | 
 |  | +      state.subjectDisabled = true
 | 
											
												
													
														|  | 
 |  | +      state.instrumentDisabled = true
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      forms.musicalInstrumentIdList = []
 | 
											
												
													
														|  | 
 |  | +      forms.subjectIds = []
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      const codeIdMap = new Map<string, []>() as any
 | 
											
												
													
														|  |        state.instrumentData.forEach((data: any) => {
 |  |        state.instrumentData.forEach((data: any) => {
 | 
											
												
													
														|  |          if (!data.disabled) {
 |  |          if (!data.disabled) {
 | 
											
												
													
														|  | -          codeIdMap.set(data.code.toLocaleLowerCase().trim(), data.id + '')
 |  | 
 | 
											
												
													
														|  | 
 |  | +          const codes = data.code.split(/[,,]/)
 | 
											
												
													
														|  | 
 |  | +          codes.forEach((code: string) => {
 | 
											
												
													
														|  | 
 |  | +            let codeTemp = code.trim().toLowerCase()
 | 
											
												
													
														|  | 
 |  | +            if (codeIdMap.has(codeTemp)) {
 | 
											
												
													
														|  | 
 |  | +              codeIdMap.get(codeTemp).push(data.id + '')
 | 
											
												
													
														|  | 
 |  | +            } else {
 | 
											
												
													
														|  | 
 |  | +              const arr = [] as any;
 | 
											
												
													
														|  | 
 |  | +              arr.push(data.id + '')
 | 
											
												
													
														|  | 
 |  | +              codeIdMap.set(codeTemp, arr)
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +          })
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |        })
 |  |        })
 | 
											
												
													
														|  | -      forms.musicalInstrumentIdList = []
 |  | 
 | 
											
												
													
														|  | -      instrumentCodeList.forEach((code: string) => {
 |  | 
 | 
											
												
													
														|  | 
 |  | +      for (let i = 0; i < codes.length; i++) {
 | 
											
												
													
														|  | 
 |  | +        let code = codes[i].trim().toLowerCase()
 | 
											
												
													
														|  |          if (codeIdMap.has(code)) {
 |  |          if (codeIdMap.has(code)) {
 | 
											
												
													
														|  | -          forms.musicalInstrumentIdList.push(codeIdMap.get(code))
 |  | 
 | 
											
												
													
														|  | 
 |  | +          codeIdMap.get(code).forEach((c: any) => {
 | 
											
												
													
														|  | 
 |  | +            if (!forms.musicalInstrumentIdList.includes(c)) {
 | 
											
												
													
														|  | 
 |  | +              forms.musicalInstrumentIdList.push(c)
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +          })
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | -      })
 |  | 
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |        // 声部
 |  |        // 声部
 | 
											
												
													
														|  |        if (forms.musicalInstrumentIdList.length > 0) {
 |  |        if (forms.musicalInstrumentIdList.length > 0) {
 | 
											
												
													
														|  | -        showBackSubject(forms.musicalInstrumentIdList)
 |  | 
 | 
											
												
													
														|  | 
 |  | +        await showBackSubject(forms.musicalInstrumentIdList)
 | 
											
												
													
														|  | 
 |  | +        changeSubject(forms.subjectIds)
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -836,23 +898,19 @@ export default defineComponent({
 | 
											
												
													
														|  |        if (!value) {
 |  |        if (!value) {
 | 
											
												
													
														|  |          return
 |  |          return
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  | 
 |  | +      let tempMultiTracksSelection = [] as any
 | 
											
												
													
														|  |        if (value === 'all') {
 |  |        if (value === 'all') {
 | 
											
												
													
														|  | -        forms.multiTracksSelection = []
 |  | 
 | 
											
												
													
														|  |          state.partListNames.forEach((next: any) => {
 |  |          state.partListNames.forEach((next: any) => {
 | 
											
												
													
														|  | -          forms.multiTracksSelection.push(next.value)
 |  | 
 | 
											
												
													
														|  | 
 |  | +          tempMultiTracksSelection.push(next.value)
 | 
											
												
													
														|  |          })
 |  |          })
 | 
											
												
													
														|  |        } else if (value === 'invert') {
 |  |        } else if (value === 'invert') {
 | 
											
												
													
														|  |          state.partListNames.forEach((next: any) => {
 |  |          state.partListNames.forEach((next: any) => {
 | 
											
												
													
														|  | -          const indexOf = forms.multiTracksSelection.indexOf(next.value)
 |  | 
 | 
											
												
													
														|  | -          if (indexOf > -1) {
 |  | 
 | 
											
												
													
														|  | -            forms.multiTracksSelection.splice(indexOf, 1)
 |  | 
 | 
											
												
													
														|  | -          } else {
 |  | 
 | 
											
												
													
														|  | -            forms.multiTracksSelection.push(next.value)
 |  | 
 | 
											
												
													
														|  | 
 |  | +          if (!forms.multiTracksSelection.includes(next.value)) {
 | 
											
												
													
														|  | 
 |  | +            tempMultiTracksSelection.push(next.value)
 | 
											
												
													
														|  |            }
 |  |            }
 | 
											
												
													
														|  |          })
 |  |          })
 | 
											
												
													
														|  | -      } else if (value === 'allUncheck') {
 |  | 
 | 
											
												
													
														|  | -        forms.multiTracksSelection = []
 |  | 
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  | 
 |  | +      forms.multiTracksSelection = tempMultiTracksSelection
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      const setOwnerName = () => {
 |  |      const setOwnerName = () => {
 | 
											
										
											
												
													
														|  | @@ -1008,7 +1066,7 @@ export default defineComponent({
 | 
											
												
													
														|  |            forms.musicCover = data.musicCover
 |  |            forms.musicCover = data.musicCover
 | 
											
												
													
														|  |            forms.remark = data.remark
 |  |            forms.remark = data.remark
 | 
											
												
													
														|  |            forms.status = data.status
 |  |            forms.status = data.status
 | 
											
												
													
														|  | -          forms.musicSheetType = data.musicSheetType || 'SINGLE'
 |  | 
 | 
											
												
													
														|  | 
 |  | +          // forms.musicSheetType = data.musicSheetType || 'SINGLE'
 | 
											
												
													
														|  |            forms.sourceType = data.sourceType
 |  |            forms.sourceType = data.sourceType
 | 
											
												
													
														|  |            forms.appAuditFlag = data.appAuditFlag ? 1 : 0
 |  |            forms.appAuditFlag = data.appAuditFlag ? 1 : 0
 | 
											
												
													
														|  |            forms.midiFileUrl = data.midiFileUrl
 |  |            forms.midiFileUrl = data.midiFileUrl
 | 
											
										
											
												
													
														|  | @@ -1029,8 +1087,6 @@ export default defineComponent({
 | 
											
												
													
														|  |              })
 |  |              })
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |            }
 |  |            }
 | 
											
												
													
														|  | -          forms.musicalInstrumentIdList = data.musicalInstrumentIds ? data.musicalInstrumentIds.split(',') : []
 |  | 
 | 
											
												
													
														|  | -          await changeSubject(forms.subjectIds)
 |  | 
 | 
											
												
													
														|  |            forms.musicCategoryId = data.musicCategoryId
 |  |            forms.musicCategoryId = data.musicCategoryId
 | 
											
												
													
														|  |            forms.audioType = data.audioType
 |  |            forms.audioType = data.audioType
 | 
											
												
													
														|  |            forms.isPlayBeat = data.isPlayBeat
 |  |            forms.isPlayBeat = data.isPlayBeat
 | 
											
										
											
												
													
														|  | @@ -1054,18 +1110,20 @@ export default defineComponent({
 | 
											
												
													
														|  |              let audioPlayType = next.audioPlayType;
 |  |              let audioPlayType = next.audioPlayType;
 | 
											
												
													
														|  |              if (audioPlayType && audioPlayType == 'SING') {
 |  |              if (audioPlayType && audioPlayType == 'SING') {
 | 
											
												
													
														|  |                state.bSongFile = next.audioFileUrl;
 |  |                state.bSongFile = next.audioFileUrl;
 | 
											
												
													
														|  | 
 |  | +              forms.scoreAudioFileUrl = next.scoreAudioFileUrl
 | 
											
												
													
														|  |              } else {
 |  |              } else {
 | 
											
												
													
														|  | -              state.musicSheetAccompanimentUrlList.push(next.audioFileUrl)
 |  | 
 | 
											
												
													
														|  | -              forms.musicSheetAccompanimentList.push(next)
 |  | 
 | 
											
												
													
														|  | 
 |  | +              state.musicSheetAccompanimentUrl = next.audioFileUrl
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |            })
 |  |            })
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |            // 初始化演奏
 |  |            // 初始化演奏
 | 
											
												
													
														|  |            for (let i = 0; i < state.musicSheetSoundList.length; i++) {
 |  |            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.fSongFile = state.musicSheetSoundList[i].audioFileUrl
 |  | 
 | 
											
												
													
														|  | -              forms.solmizationFileUrl = state.musicSheetSoundList[i].solmizationFileUrl
 |  | 
 | 
											
												
													
														|  | 
 |  | +              state.initFSongMap.set(state.musicSheetSoundList[i].track, {
 | 
											
												
													
														|  | 
 |  | +                ...state.musicSheetSoundList[i],
 | 
											
												
													
														|  | 
 |  | +                // musicalInstrumentName: state.instrumentIdNameMap.get(state.musicSheetSoundList[i].musicalInstrumentId),
 | 
											
												
													
														|  | 
 |  | +              })
 | 
											
												
													
														|  |              } else {
 |  |              } else {
 | 
											
												
													
														|  |                if (forms.isAllSubject) {
 |  |                if (forms.isAllSubject) {
 | 
											
												
													
														|  |                  forms.musicSheetSoundList_all_subject = state.musicSheetSoundList[i].audioFileUrl
 |  |                  forms.musicSheetSoundList_all_subject = state.musicSheetSoundList[i].audioFileUrl
 | 
											
										
											
												
													
														|  | @@ -1081,6 +1139,9 @@ export default defineComponent({
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  |            }
 |  |            }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +          forms.musicalInstrumentIdList = data.musicalInstrumentIds ? data.musicalInstrumentIds.split(',') : []
 | 
											
												
													
														|  | 
 |  | +          await changeSubject(forms.subjectIds)
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |            setOwnerName()
 |  |            setOwnerName()
 | 
											
												
													
														|  |            axios.get(data.xmlFileUrl).then((res: any) => {
 |  |            axios.get(data.xmlFileUrl).then((res: any) => {
 | 
											
										
											
												
													
														|  | @@ -1091,16 +1152,18 @@ export default defineComponent({
 | 
											
												
													
														|  |                state.partListNames = getPartListNames(res?.data as any) as any
 |  |                state.partListNames = getPartListNames(res?.data as any) as any
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |                // 初始化音轨和原音
 |  |                // 初始化音轨和原音
 | 
											
												
													
														|  | 
 |  | +              let multiTracksSelection = [] as any
 | 
											
												
													
														|  |                if (data.multiTracksSelection) {
 |  |                if (data.multiTracksSelection) {
 | 
											
												
													
														|  |                  data.multiTracksSelection = data.multiTracksSelection.toLocaleUpperCase()
 |  |                  data.multiTracksSelection = data.multiTracksSelection.toLocaleUpperCase()
 | 
											
												
													
														|  |                }
 |  |                }
 | 
											
												
													
														|  |                if (!data.multiTracksSelection || data.multiTracksSelection.trim() == '' || data.multiTracksSelection.trim() == 'NULL') {
 |  |                if (!data.multiTracksSelection || data.multiTracksSelection.trim() == '' || data.multiTracksSelection.trim() == 'NULL') {
 | 
											
												
													
														|  | -                forms.multiTracksSelection = ['']
 |  | 
 | 
											
												
													
														|  | 
 |  | +                multiTracksSelection.push('')
 | 
											
												
													
														|  |                } else {
 |  |                } else {
 | 
											
												
													
														|  | -                forms.multiTracksSelection = data.multiTracksSelection.split(',')
 |  | 
 | 
											
												
													
														|  | 
 |  | +                multiTracksSelection = data.multiTracksSelection.split(',')
 | 
											
												
													
														|  |                }
 |  |                }
 | 
											
												
													
														|  |                let names = state.partListNames.map((next: any) => next.label)
 |  |                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 : []
 |  |                const existSoundList = data.musicSheetSoundList ? data.musicSheetSoundList : []
 | 
											
												
													
														|  |                // 如果只有一个原音文件,并且原音没有对应声轨,取xml解析中的第一个声轨绑定当当前原音
 |  |                // 如果只有一个原音文件,并且原音没有对应声轨,取xml解析中的第一个声轨绑定当当前原音
 | 
											
										
											
												
													
														|  | @@ -1146,8 +1209,11 @@ export default defineComponent({
 | 
											
												
													
														|  |                    state.multiTracks = 'all'
 |  |                    state.multiTracks = 'all'
 | 
											
												
													
														|  |                  }
 |  |                  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +                // 根据声轨数量判断独奏合奏
 | 
											
												
													
														|  | 
 |  | +                forms.musicSheetType = forms.multiTracksSelection.length > 1 ? 'CONCERT' : 'SINGLE'
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |                  // 处理没有声轨,但有原音
 |  |                  // 处理没有声轨,但有原音
 | 
											
												
													
														|  | -                if (data.musicSheetType == 'CONCERT') {
 |  | 
 | 
											
												
													
														|  | 
 |  | +                if (forms.musicSheetType == 'CONCERT') {
 | 
											
												
													
														|  |                    state.musicSheetSoundList.forEach((next: any) => {
 |  |                    state.musicSheetSoundList.forEach((next: any) => {
 | 
											
												
													
														|  |                      if (next.audioPlayType == 'PLAY') {
 |  |                      if (next.audioPlayType == 'PLAY') {
 | 
											
												
													
														|  |                        if (next.track && !tracks.includes(next.track.trim()) && next.audioPlayType == 'PLAY') {
 |  |                        if (next.track && !tracks.includes(next.track.trim()) && next.audioPlayType == 'PLAY') {
 | 
											
										
											
												
													
														|  | @@ -1491,36 +1557,53 @@ export default defineComponent({
 | 
											
												
													
														|  |                </NGrid>
 |  |                </NGrid>
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |                <NGrid cols={2}>
 |  |                <NGrid cols={2}>
 | 
											
												
													
														|  | 
 |  | +                {/*<NFormItemGi*/}
 | 
											
												
													
														|  | 
 |  | +                {/*    label="谱面渲染"*/}
 | 
											
												
													
														|  | 
 |  | +                {/*    path="musicSheetType"*/}
 | 
											
												
													
														|  | 
 |  | +                {/*    rule={[*/}
 | 
											
												
													
														|  | 
 |  | +                {/*      {*/}
 | 
											
												
													
														|  | 
 |  | +                {/*        required: true,*/}
 | 
											
												
													
														|  | 
 |  | +                {/*        message: '请选择谱面渲染',*/}
 | 
											
												
													
														|  | 
 |  | +                {/*        trigger: 'change'*/}
 | 
											
												
													
														|  | 
 |  | +                {/*      }*/}
 | 
											
												
													
														|  | 
 |  | +                {/*    ]}*/}
 | 
											
												
													
														|  | 
 |  | +                {/*>*/}
 | 
											
												
													
														|  | 
 |  | +                {/*  <NRadioGroup v-model:value={forms.musicSheetType}>*/}
 | 
											
												
													
														|  | 
 |  | +                {/*    <NRadio value={'SINGLE'}>多声轨</NRadio>*/}
 | 
											
												
													
														|  | 
 |  | +                {/*    <NRadio value={'CONCERT'}>单声轨</NRadio>*/}
 | 
											
												
													
														|  | 
 |  | +                {/*  </NRadioGroup>*/}
 | 
											
												
													
														|  | 
 |  | +                {/*</NFormItemGi>*/}
 | 
											
												
													
														|  |                  <NFormItemGi
 |  |                  <NFormItemGi
 | 
											
												
													
														|  | -                    label="谱面渲染"
 |  | 
 | 
											
												
													
														|  | -                    path="musicSheetType"
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    label="是否节奏练习"
 | 
											
												
													
														|  | 
 |  | +                    path="isAllSubject"
 | 
											
												
													
														|  |                      rule={[
 |  |                      rule={[
 | 
											
												
													
														|  |                        {
 |  |                        {
 | 
											
												
													
														|  |                          required: true,
 |  |                          required: true,
 | 
											
												
													
														|  | -                        message: '请选择谱面渲染',
 |  | 
 | 
											
												
													
														|  | -                        trigger: 'change'
 |  | 
 | 
											
												
													
														|  | 
 |  | +                        message: '请选择是否节奏练习',
 | 
											
												
													
														|  |                        }
 |  |                        }
 | 
											
												
													
														|  |                      ]}
 |  |                      ]}
 | 
											
												
													
														|  |                  >
 |  |                  >
 | 
											
												
													
														|  | -                  <NRadioGroup v-model:value={forms.musicSheetType}>
 |  | 
 | 
											
												
													
														|  | -                    <NRadio value={'SINGLE'}>多声轨</NRadio>
 |  | 
 | 
											
												
													
														|  | -                    <NRadio value={'CONCERT'}>单声轨</NRadio>
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  <NRadioGroup v-model:value={forms.isAllSubject}>
 | 
											
												
													
														|  | 
 |  | +                    <NRadio value={false}>否</NRadio>
 | 
											
												
													
														|  | 
 |  | +                    <NRadio value={true}>是</NRadio>
 | 
											
												
													
														|  |                    </NRadioGroup>
 |  |                    </NRadioGroup>
 | 
											
												
													
														|  |                  </NFormItemGi>
 |  |                  </NFormItemGi>
 | 
											
												
													
														|  |                  <NFormItemGi
 |  |                  <NFormItemGi
 | 
											
												
													
														|  | -                    label="适用声部"
 |  | 
 | 
											
												
													
														|  | -                    path="isAllSubject"
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    label="速度"
 | 
											
												
													
														|  | 
 |  | +                    path="playSpeed"
 | 
											
												
													
														|  |                      rule={[
 |  |                      rule={[
 | 
											
												
													
														|  |                        {
 |  |                        {
 | 
											
												
													
														|  | -                        required: true,
 |  | 
 | 
											
												
													
														|  | -                        message: '请选择适用声部',
 |  | 
 | 
											
												
													
														|  | 
 |  | +                        required: false,
 | 
											
												
													
														|  | 
 |  | +                        message: '请输入速度'
 | 
											
												
													
														|  |                        }
 |  |                        }
 | 
											
												
													
														|  |                      ]}
 |  |                      ]}
 | 
											
												
													
														|  |                  >
 |  |                  >
 | 
											
												
													
														|  | -                  <NRadioGroup v-model:value={forms.isAllSubject}>
 |  | 
 | 
											
												
													
														|  | -                    <NRadio value={false}>部分声部</NRadio>
 |  | 
 | 
											
												
													
														|  | -                    <NRadio value={true}>全部声部</NRadio>
 |  | 
 | 
											
												
													
														|  | -                  </NRadioGroup>
 |  | 
 | 
											
												
													
														|  | 
 |  | +                  <NInputNumber
 | 
											
												
													
														|  | 
 |  | +                      placeholder="请输入速度"
 | 
											
												
													
														|  | 
 |  | +                      v-model:value={forms.playSpeed}
 | 
											
												
													
														|  | 
 |  | +                      min={0}
 | 
											
												
													
														|  | 
 |  | +                      style="width:100%"
 | 
											
												
													
														|  | 
 |  | +                  />
 | 
											
												
													
														|  |                  </NFormItemGi>
 |  |                  </NFormItemGi>
 | 
											
												
													
														|  |                </NGrid>
 |  |                </NGrid>
 | 
											
												
													
														|  |                {!forms.isAllSubject && (
 |  |                {!forms.isAllSubject && (
 | 
											
										
											
												
													
														|  | @@ -1540,11 +1623,12 @@ export default defineComponent({
 | 
											
												
													
														|  |                        <NSelect
 |  |                        <NSelect
 | 
											
												
													
														|  |                            v-model:value={forms.subjectIds}
 |  |                            v-model:value={forms.subjectIds}
 | 
											
												
													
														|  |                            options={state.subjectList}
 |  |                            options={state.subjectList}
 | 
											
												
													
														|  | 
 |  | +                          disabled={state.subjectDisabled}
 | 
											
												
													
														|  |                            multiple
 |  |                            multiple
 | 
											
												
													
														|  |                            filterable
 |  |                            filterable
 | 
											
												
													
														|  |                            clearable
 |  |                            clearable
 | 
											
												
													
														|  |                            placeholder="请选择可用声部"
 |  |                            placeholder="请选择可用声部"
 | 
											
												
													
														|  | -                          maxTagCount={2}
 |  | 
 | 
											
												
													
														|  | 
 |  | +                          maxTagCount={10}
 | 
											
												
													
														|  |                            onUpdateValue={async (val: any) => {
 |  |                            onUpdateValue={async (val: any) => {
 | 
											
												
													
														|  |                              await changeSubject(val)
 |  |                              await changeSubject(val)
 | 
											
												
													
														|  |                            }}
 |  |                            }}
 | 
											
										
											
												
													
														|  | @@ -1566,43 +1650,25 @@ export default defineComponent({
 | 
											
												
													
														|  |                            placeholder="请选择可用乐器"
 |  |                            placeholder="请选择可用乐器"
 | 
											
												
													
														|  |                            options={state.instrumentList}
 |  |                            options={state.instrumentList}
 | 
											
												
													
														|  |                            v-model:value={forms.musicalInstrumentIdList}
 |  |                            v-model:value={forms.musicalInstrumentIdList}
 | 
											
												
													
														|  | 
 |  | +                          disabled = {state.instrumentDisabled}
 | 
											
												
													
														|  |                            clearable
 |  |                            clearable
 | 
											
												
													
														|  |                            multiple
 |  |                            multiple
 | 
											
												
													
														|  |                            filterable
 |  |                            filterable
 | 
											
												
													
														|  | -                          maxTagCount={2}
 |  | 
 | 
											
												
													
														|  | 
 |  | +                          maxTagCount={10}
 | 
											
												
													
														|  |                            onUpdateValue={async (value: any) => {
 |  |                            onUpdateValue={async (value: any) => {
 | 
											
												
													
														|  |                            }}
 |  |                            }}
 | 
											
												
													
														|  |                        />
 |  |                        />
 | 
											
												
													
														|  |                      </NFormItemGi>
 |  |                      </NFormItemGi>
 | 
											
												
													
														|  |                    </NGrid>
 |  |                    </NGrid>
 | 
											
												
													
														|  |                )}
 |  |                )}
 | 
											
												
													
														|  | -              <NGrid cols={2}>
 |  | 
 | 
											
												
													
														|  | -                <NFormItemGi
 |  | 
 | 
											
												
													
														|  | -                    label="速度"
 |  | 
 | 
											
												
													
														|  | -                    path="playSpeed"
 |  | 
 | 
											
												
													
														|  | -                    rule={[
 |  | 
 | 
											
												
													
														|  | -                      {
 |  | 
 | 
											
												
													
														|  | -                        required: false,
 |  | 
 | 
											
												
													
														|  | -                        message: '请输入速度'
 |  | 
 | 
											
												
													
														|  | -                      }
 |  | 
 | 
											
												
													
														|  | -                    ]}
 |  | 
 | 
											
												
													
														|  | -                >
 |  | 
 | 
											
												
													
														|  | -                  <NInputNumber
 |  | 
 | 
											
												
													
														|  | -                      placeholder="请输入速度"
 |  | 
 | 
											
												
													
														|  | -                      v-model:value={forms.playSpeed}
 |  | 
 | 
											
												
													
														|  | -                      min={0}
 |  | 
 | 
											
												
													
														|  | -                      style="width:100%"
 |  | 
 | 
											
												
													
														|  | -                  />
 |  | 
 | 
											
												
													
														|  | -                </NFormItemGi>
 |  | 
 | 
											
												
													
														|  | -              </NGrid>
 |  | 
 | 
											
												
													
														|  |                <NGrid cols={1}>
 |  |                <NGrid cols={1}>
 | 
											
												
													
														|  |                  <NFormItemGi
 |  |                  <NFormItemGi
 | 
											
												
													
														|  | -                    label={`${forms.musicSheetType === 'SINGLE' ? '页面渲染声轨' : '用户可切换声轨'}`}
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    label={'切换声轨'}
 | 
											
												
													
														|  |                      path="multiTracksSelection"
 |  |                      path="multiTracksSelection"
 | 
											
												
													
														|  |                      rule={[
 |  |                      rule={[
 | 
											
												
													
														|  |                        {
 |  |                        {
 | 
											
												
													
														|  |                          required: true,
 |  |                          required: true,
 | 
											
												
													
														|  | -                        message: `请选择${forms.musicSheetType === 'SINGLE' ? '页面渲染声轨' : '用户可切换声轨'}`,
 |  | 
 | 
											
												
													
														|  | 
 |  | +                        message: `请选择切换声轨`,
 | 
											
												
													
														|  |                          trigger: 'change',
 |  |                          trigger: 'change',
 | 
											
												
													
														|  |                          type: 'array'
 |  |                          type: 'array'
 | 
											
												
													
														|  |                        }
 |  |                        }
 | 
											
										
											
												
													
														|  | @@ -1655,8 +1721,27 @@ export default defineComponent({
 | 
											
												
													
														|  |                    </NGrid>
 |  |                    </NGrid>
 | 
											
												
													
														|  |                  </NFormItemGi>
 |  |                  </NFormItemGi>
 | 
											
												
													
														|  |                </NGrid>
 |  |                </NGrid>
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | 
 |  | +              {forms.multiTracksSelection.length > 1 && (
 | 
											
												
													
														|  | 
 |  | +                  <NGrid cols={1}>
 | 
											
												
													
														|  | 
 |  | +                    <NFormItemGi
 | 
											
												
													
														|  | 
 |  | +                        label="总谱渲染"
 | 
											
												
													
														|  | 
 |  | +                        path="isScoreRender"
 | 
											
												
													
														|  | 
 |  | +                        rule={[
 | 
											
												
													
														|  | 
 |  | +                          {
 | 
											
												
													
														|  | 
 |  | +                            required: true,
 | 
											
												
													
														|  | 
 |  | +                            message: '请选择总谱渲染'
 | 
											
												
													
														|  | 
 |  | +                          }
 | 
											
												
													
														|  | 
 |  | +                        ]}
 | 
											
												
													
														|  | 
 |  | +                    >
 | 
											
												
													
														|  | 
 |  | +                      <NRadioGroup
 | 
											
												
													
														|  | 
 |  | +                          v-model:value={forms.isScoreRender}
 | 
											
												
													
														|  | 
 |  | +                      >
 | 
											
												
													
														|  | 
 |  | +                        <NRadio value={true}>支持</NRadio>
 | 
											
												
													
														|  | 
 |  | +                        <NRadio value={false}>不支持</NRadio>
 | 
											
												
													
														|  | 
 |  | +                      </NRadioGroup>
 | 
											
												
													
														|  | 
 |  | +                    </NFormItemGi>
 | 
											
												
													
														|  | 
 |  | +                  </NGrid>
 | 
											
												
													
														|  | 
 |  | +              )}
 | 
											
												
													
														|  |                <NAlert showIcon={false} style={{marginBottom: '12px'}}>
 |  |                <NAlert showIcon={false} style={{marginBottom: '12px'}}>
 | 
											
												
													
														|  |                  演唱文件
 |  |                  演唱文件
 | 
											
												
													
														|  |                </NAlert>
 |  |                </NAlert>
 | 
											
										
											
												
													
														|  | @@ -1713,38 +1798,11 @@ export default defineComponent({
 | 
											
												
													
														|  |                </NGrid>
 |  |                </NGrid>
 | 
											
												
													
														|  |                <NGrid cols={2}>
 |  |                <NGrid cols={2}>
 | 
											
												
													
														|  |                  <NFormItemGi
 |  |                  <NFormItemGi
 | 
											
												
													
														|  | -                    label="上传范唱"
 |  | 
 | 
											
												
													
														|  | -                    path="fSongFile"
 |  | 
 | 
											
												
													
														|  | -                    rule={[
 |  | 
 | 
											
												
													
														|  | -                      {
 |  | 
 | 
											
												
													
														|  | -                        required: false,
 |  | 
 | 
											
												
													
														|  | -                        message: '请选择上传范唱',
 |  | 
 | 
											
												
													
														|  | -                        trigger: ['change', 'input']
 |  | 
 | 
											
												
													
														|  | -                      }
 |  | 
 | 
											
												
													
														|  | -                    ]}
 |  | 
 | 
											
												
													
														|  | -                >
 |  | 
 | 
											
												
													
														|  | -                  <UploadFile
 |  | 
 | 
											
												
													
														|  | -                      desc={'上传范唱'}
 |  | 
 | 
											
												
													
														|  | -                      disabled={state.previewMode}
 |  | 
 | 
											
												
													
														|  | -                      size={30}
 |  | 
 | 
											
												
													
														|  | -                      key={'xmlFileUrl'}
 |  | 
 | 
											
												
													
														|  | -                      v-model:fileList={state.fSongFile}
 |  | 
 | 
											
												
													
														|  | -                      tips="仅支持上传.mp3格式文件"
 |  | 
 | 
											
												
													
														|  | -                      listType="image"
 |  | 
 | 
											
												
													
														|  | -                      accept=".mp3"
 |  | 
 | 
											
												
													
														|  | -                      bucketName="cloud-coach"
 |  | 
 | 
											
												
													
														|  | -                      text="点击上传范唱文件"
 |  | 
 | 
											
												
													
														|  | -                      onRemove={() => {
 |  | 
 | 
											
												
													
														|  | -                      }}
 |  | 
 | 
											
												
													
														|  | -                  />
 |  | 
 | 
											
												
													
														|  | -                </NFormItemGi>
 |  | 
 | 
											
												
													
														|  | -                <NFormItemGi
 |  | 
 | 
											
												
													
														|  |                      label="上传伴唱"
 |  |                      label="上传伴唱"
 | 
											
												
													
														|  |                      path="bSongFile"
 |  |                      path="bSongFile"
 | 
											
												
													
														|  |                      rule={[
 |  |                      rule={[
 | 
											
												
													
														|  |                        {
 |  |                        {
 | 
											
												
													
														|  |                          required: false,
 |  |                          required: false,
 | 
											
												
													
														|  | -                        message: '请选择上传.MID格式文件'
 |  | 
 | 
											
												
													
														|  |                        }
 |  |                        }
 | 
											
												
													
														|  |                      ]}
 |  |                      ]}
 | 
											
												
													
														|  |                  >
 |  |                  >
 | 
											
										
											
												
													
														|  | @@ -1761,34 +1819,107 @@ export default defineComponent({
 | 
											
												
													
														|  |                    />
 |  |                    />
 | 
											
												
													
														|  |                  </NFormItemGi>
 |  |                  </NFormItemGi>
 | 
											
												
													
														|  |                </NGrid>
 |  |                </NGrid>
 | 
											
												
													
														|  | -              <NGrid cols={2}>
 |  | 
 | 
											
												
													
														|  | -                <NFormItemGi
 |  | 
 | 
											
												
													
														|  | -                    label="上传唱名"
 |  | 
 | 
											
												
													
														|  | -                    path="solmizationFileUrl"
 |  | 
 | 
											
												
													
														|  | -                    rule={[
 |  | 
 | 
											
												
													
														|  | -                      {
 |  | 
 | 
											
												
													
														|  | -                        required: false,
 |  | 
 | 
											
												
													
														|  | -                        message: '请选择上传唱名',
 |  | 
 | 
											
												
													
														|  | -                        trigger: ['change', 'input']
 |  | 
 | 
											
												
													
														|  | -                      }
 |  | 
 | 
											
												
													
														|  | -                    ]}
 |  | 
 | 
											
												
													
														|  | -                >
 |  | 
 | 
											
												
													
														|  | -                  <UploadFile
 |  | 
 | 
											
												
													
														|  | -                      desc={'上传唱名'}
 |  | 
 | 
											
												
													
														|  | -                      disabled={state.previewMode}
 |  | 
 | 
											
												
													
														|  | -                      size={30}
 |  | 
 | 
											
												
													
														|  | -                      key={'xmlFileUrl'}
 |  | 
 | 
											
												
													
														|  | -                      v-model:fileList={forms.solmizationFileUrl}
 |  | 
 | 
											
												
													
														|  | -                      tips="仅支持上传.mp3格式文件"
 |  | 
 | 
											
												
													
														|  | -                      listType="image"
 |  | 
 | 
											
												
													
														|  | -                      accept=".mp3"
 |  | 
 | 
											
												
													
														|  | -                      bucketName="cloud-coach"
 |  | 
 | 
											
												
													
														|  | -                      text="点击上传唱名文件"
 |  | 
 | 
											
												
													
														|  | -                      onRemove={() => {
 |  | 
 | 
											
												
													
														|  | -                      }}
 |  | 
 | 
											
												
													
														|  | -                  />
 |  | 
 | 
											
												
													
														|  | -                </NFormItemGi>
 |  | 
 | 
											
												
													
														|  | -              </NGrid>
 |  | 
 | 
											
												
													
														|  | 
 |  | +              {forms.fSongList.length > 0 && forms.fSongList.map((item: any) => {
 | 
											
												
													
														|  | 
 |  | +                return (
 | 
											
												
													
														|  | 
 |  | +                    <NGrid class={styles.audioSection}>
 | 
											
												
													
														|  | 
 |  | +                      <NFormItemGi
 | 
											
												
													
														|  | 
 |  | +                          span={12}
 | 
											
												
													
														|  | 
 |  | +                          label={item.track + '范唱'}
 | 
											
												
													
														|  | 
 |  | +                          path={item.audioFileUrl}
 | 
											
												
													
														|  | 
 |  | +                          rule={[
 | 
											
												
													
														|  | 
 |  | +                            {
 | 
											
												
													
														|  | 
 |  | +                              required: false,
 | 
											
												
													
														|  | 
 |  | +                            }
 | 
											
												
													
														|  | 
 |  | +                          ]}
 | 
											
												
													
														|  | 
 |  | +                      >
 | 
											
												
													
														|  | 
 |  | +                        <UploadFile
 | 
											
												
													
														|  | 
 |  | +                            desc={'上传范唱'}
 | 
											
												
													
														|  | 
 |  | +                            disabled={state.previewMode}
 | 
											
												
													
														|  | 
 |  | +                            size={100}
 | 
											
												
													
														|  | 
 |  | +                            v-model:fileList={item.audioFileUrl}
 | 
											
												
													
														|  | 
 |  | +                            tips="仅支持上传.mp3格式文件"
 | 
											
												
													
														|  | 
 |  | +                            listType="image"
 | 
											
												
													
														|  | 
 |  | +                            accept=".mp3"
 | 
											
												
													
														|  | 
 |  | +                            bucketName="cloud-coach"
 | 
											
												
													
														|  | 
 |  | +                            text={'点击上传范唱文件'}
 | 
											
												
													
														|  | 
 |  | +                        />
 | 
											
												
													
														|  | 
 |  | +                      </NFormItemGi>
 | 
											
												
													
														|  | 
 |  | +                    </NGrid>
 | 
											
												
													
														|  | 
 |  | +                )
 | 
											
												
													
														|  | 
 |  | +              })}
 | 
											
												
													
														|  | 
 |  | +              {forms.multiTracksSelection.length > 1 && forms.isScoreRender && (
 | 
											
												
													
														|  | 
 |  | +                  <NGrid cols={2} class={styles.audioSection}>
 | 
											
												
													
														|  | 
 |  | +                    <NFormItemGi
 | 
											
												
													
														|  | 
 |  | +                        label="总谱范唱"
 | 
											
												
													
														|  | 
 |  | +                        path="scoreRenderFile"
 | 
											
												
													
														|  | 
 |  | +                        rule={[
 | 
											
												
													
														|  | 
 |  | +                          {
 | 
											
												
													
														|  | 
 |  | +                            required: false,
 | 
											
												
													
														|  | 
 |  | +                          }
 | 
											
												
													
														|  | 
 |  | +                        ]}
 | 
											
												
													
														|  | 
 |  | +                    >
 | 
											
												
													
														|  | 
 |  | +                      <UploadFile
 | 
											
												
													
														|  | 
 |  | +                          desc={'上传总谱范唱'}
 | 
											
												
													
														|  | 
 |  | +                          disabled={state.previewMode}
 | 
											
												
													
														|  | 
 |  | +                          size={30}
 | 
											
												
													
														|  | 
 |  | +                          v-model:fileList={forms.scoreAudioFileUrl}
 | 
											
												
													
														|  | 
 |  | +                          tips="仅支持上传.mp3格式文件"
 | 
											
												
													
														|  | 
 |  | +                          listType="image"
 | 
											
												
													
														|  | 
 |  | +                          accept=".mp3"
 | 
											
												
													
														|  | 
 |  | +                          bucketName="cloud-coach"
 | 
											
												
													
														|  | 
 |  | +                          text="点击上传总谱范唱"
 | 
											
												
													
														|  | 
 |  | +                      />
 | 
											
												
													
														|  | 
 |  | +                    </NFormItemGi>
 | 
											
												
													
														|  | 
 |  | +                  </NGrid>
 | 
											
												
													
														|  | 
 |  | +              )}
 | 
											
												
													
														|  | 
 |  | +              {forms.fSongList.length > 0 && forms.fSongList.map((item: any) => {
 | 
											
												
													
														|  | 
 |  | +                return (
 | 
											
												
													
														|  | 
 |  | +                    <NGrid cols={2}>
 | 
											
												
													
														|  | 
 |  | +                      <NFormItemGi
 | 
											
												
													
														|  | 
 |  | +                          label={item.track + '唱名(男)'}
 | 
											
												
													
														|  | 
 |  | +                          path={item.solmizationFileUrl}
 | 
											
												
													
														|  | 
 |  | +                          rule={[
 | 
											
												
													
														|  | 
 |  | +                            {
 | 
											
												
													
														|  | 
 |  | +                              required: false,
 | 
											
												
													
														|  | 
 |  | +                            }
 | 
											
												
													
														|  | 
 |  | +                          ]}
 | 
											
												
													
														|  | 
 |  | +                      >
 | 
											
												
													
														|  | 
 |  | +                        <UploadFile
 | 
											
												
													
														|  | 
 |  | +                            desc={'上传范唱'}
 | 
											
												
													
														|  | 
 |  | +                            disabled={state.previewMode}
 | 
											
												
													
														|  | 
 |  | +                            size={100}
 | 
											
												
													
														|  | 
 |  | +                            v-model:fileList={item.solmizationFileUrl}
 | 
											
												
													
														|  | 
 |  | +                            tips="仅支持上传.mp3格式文件"
 | 
											
												
													
														|  | 
 |  | +                            listType="image"
 | 
											
												
													
														|  | 
 |  | +                            accept=".mp3"
 | 
											
												
													
														|  | 
 |  | +                            bucketName="cloud-coach"
 | 
											
												
													
														|  | 
 |  | +                            text={'点击上传唱名文件'}
 | 
											
												
													
														|  | 
 |  | +                        />
 | 
											
												
													
														|  | 
 |  | +                      </NFormItemGi>
 | 
											
												
													
														|  | 
 |  | +                      <NFormItemGi
 | 
											
												
													
														|  | 
 |  | +                          label={item.track + '唱名(女)'}
 | 
											
												
													
														|  | 
 |  | +                          path={item.femaleSolmizationFileUrl}
 | 
											
												
													
														|  | 
 |  | +                          rule={[
 | 
											
												
													
														|  | 
 |  | +                            {
 | 
											
												
													
														|  | 
 |  | +                              required: false,
 | 
											
												
													
														|  | 
 |  | +                            }
 | 
											
												
													
														|  | 
 |  | +                          ]}
 | 
											
												
													
														|  | 
 |  | +                      >
 | 
											
												
													
														|  | 
 |  | +                        <UploadFile
 | 
											
												
													
														|  | 
 |  | +                            desc={'上传范唱'}
 | 
											
												
													
														|  | 
 |  | +                            disabled={state.previewMode}
 | 
											
												
													
														|  | 
 |  | +                            size={100}
 | 
											
												
													
														|  | 
 |  | +                            v-model:fileList={item.femaleSolmizationFileUrl}
 | 
											
												
													
														|  | 
 |  | +                            tips="仅支持上传.mp3格式文件"
 | 
											
												
													
														|  | 
 |  | +                            listType="image"
 | 
											
												
													
														|  | 
 |  | +                            accept=".mp3"
 | 
											
												
													
														|  | 
 |  | +                            bucketName="cloud-coach"
 | 
											
												
													
														|  | 
 |  | +                            text={'点击上传唱名文件'}
 | 
											
												
													
														|  | 
 |  | +                        />
 | 
											
												
													
														|  | 
 |  | +                      </NFormItemGi>
 | 
											
												
													
														|  | 
 |  | +                    </NGrid>
 | 
											
												
													
														|  | 
 |  | +                )
 | 
											
												
													
														|  | 
 |  | +              })}
 | 
											
												
													
														|  |                <NAlert showIcon={false} style={{marginBottom: '12px'}}>
 |  |                <NAlert showIcon={false} style={{marginBottom: '12px'}}>
 | 
											
												
													
														|  |                  演奏文件
 |  |                  演奏文件
 | 
											
												
													
														|  |                </NAlert>
 |  |                </NAlert>
 | 
											
										
											
												
													
														|  | @@ -1873,7 +2004,7 @@ export default defineComponent({
 | 
											
												
													
														|  |                        <UploadFile
 |  |                        <UploadFile
 | 
											
												
													
														|  |                            disabled={state.previewMode}
 |  |                            disabled={state.previewMode}
 | 
											
												
													
														|  |                            size={30}
 |  |                            size={30}
 | 
											
												
													
														|  | -                          v-model:imageList={state.musicSheetAccompanimentUrlList}
 |  | 
 | 
											
												
													
														|  | 
 |  | +                          v-model:fileList={state.musicSheetAccompanimentUrl}
 | 
											
												
													
														|  |                            tips="仅支持上传.mp3格式文件"
 |  |                            tips="仅支持上传.mp3格式文件"
 | 
											
												
													
														|  |                            listType="image"
 |  |                            listType="image"
 | 
											
												
													
														|  |                            accept=".mp3"
 |  |                            accept=".mp3"
 | 
											
										
											
												
													
														|  | @@ -1881,29 +2012,7 @@ export default defineComponent({
 | 
											
												
													
														|  |                            text="点击上传伴奏文件"
 |  |                            text="点击上传伴奏文件"
 | 
											
												
													
														|  |                            max={1}
 |  |                            max={1}
 | 
											
												
													
														|  |                            desc={'上传伴奏文件'}
 |  |                            desc={'上传伴奏文件'}
 | 
											
												
													
														|  | -                          onUpload:success={(file) => {
 |  | 
 | 
											
												
													
														|  | -                            state.musicSheetAccompanimentUrls = [state.musicSheetAccompanimentUrls, file.url].filter(Boolean).join(',')
 |  | 
 | 
											
												
													
														|  | -                            state.musicSheetAccompanimentUrlList = state.musicSheetAccompanimentUrls?.split(',').filter(Boolean)
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  | -                            // 清除伴奏
 |  | 
 | 
											
												
													
														|  | -                            // forms.musicSheetAccompanimentList = forms.musicSheetAccompanimentList.filter((next: any) => {
 |  | 
 | 
											
												
													
														|  | -                            //   return next.audioPlayType == 'SING'
 |  | 
 | 
											
												
													
														|  | -                            // })
 |  | 
 | 
											
												
													
														|  | -                            forms.musicSheetAccompanimentList = []
 |  | 
 | 
											
												
													
														|  | -                            for (let i = 0; i < state.musicSheetAccompanimentUrlList.length; i++) {
 |  | 
 | 
											
												
													
														|  | -                              forms.musicSheetAccompanimentList.push({
 |  | 
 | 
											
												
													
														|  | -                                audioFileUrl: state.musicSheetAccompanimentUrlList[i],
 |  | 
 | 
											
												
													
														|  | -                                sortNumber: i + 1,
 |  | 
 | 
											
												
													
														|  | -                                audioPlayType: 'PLAY'
 |  | 
 | 
											
												
													
														|  | -                              })
 |  | 
 | 
											
												
													
														|  | -                            }
 |  | 
 | 
											
												
													
														|  | -                          }}
 |  | 
 | 
											
												
													
														|  | -                          onRemove={() => {
 |  | 
 | 
											
												
													
														|  | -                            state.musicSheetAccompanimentUrlList = []
 |  | 
 | 
											
												
													
														|  | -                            state.musicSheetAccompanimentUrls = ''
 |  | 
 | 
											
												
													
														|  | -                          }}
 |  | 
 | 
											
												
													
														|  |                            // onReadFileInputEventAsArrayBuffer={readFileInputEventAsArrayBuffer}
 |  |                            // onReadFileInputEventAsArrayBuffer={readFileInputEventAsArrayBuffer}
 | 
											
												
													
														|  | -                          multiple={true}
 |  | 
 | 
											
												
													
														|  |                        />
 |  |                        />
 | 
											
												
													
														|  |                      </NFormItemGi>
 |  |                      </NFormItemGi>
 | 
											
												
													
														|  |                  )}
 |  |                  )}
 |