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