|
@@ -368,33 +368,7 @@ export default defineComponent({
|
|
|
() => forms.multiTracksSelection,
|
|
|
(value) => {
|
|
|
initInstrumentAndSubjectByCode(value)
|
|
|
- }
|
|
|
- )
|
|
|
-
|
|
|
- watch(
|
|
|
- () => forms.musicalInstrumentIdList,
|
|
|
- (value) => {
|
|
|
- forms.fSongList.forEach((fSong: any) => {
|
|
|
- state.initFSongMap.set(fSong.musicalInstrumentId, fSong)
|
|
|
- })
|
|
|
-
|
|
|
- let fSongList = [] as any
|
|
|
- value.forEach((item: any) => {
|
|
|
- if (state.initFSongMap.has(item)) {
|
|
|
- fSongList.push(state.initFSongMap.get(item))
|
|
|
- } else {
|
|
|
- fSongList.push({
|
|
|
- musicSheetId: props.data.id,
|
|
|
- audioFileUrl: null,
|
|
|
- audioPlayType: 'SING',
|
|
|
- musicalInstrumentId: item,
|
|
|
- musicalInstrumentName: state.instrumentIdNameMap.get(item),
|
|
|
- solmizationFileUrl: null, // 唱名男
|
|
|
- femaleSolmizationFileUrl: null, // 唱名女
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
- forms.fSongList = fSongList
|
|
|
+ initFSongList()
|
|
|
}
|
|
|
)
|
|
|
|
|
@@ -457,7 +431,7 @@ export default defineComponent({
|
|
|
|
|
|
for (let i = 0; i < forms.fSongList.length; i++) {
|
|
|
let fSong = forms.fSongList[i]
|
|
|
- if (fSong.audioFileUrl || fSong.solmizationFileUrl) {
|
|
|
+ if (fSong.audioFileUrl || fSong.solmizationFileUrl || fSong.femaleSolmizationFileUrl) {
|
|
|
musicSheetSoundList.push(fSong)
|
|
|
audioPlayTypes.add("SING")
|
|
|
}
|
|
@@ -593,6 +567,32 @@ export default defineComponent({
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ const initFSongList = async () => {
|
|
|
+ forms.fSongList.forEach((fSong: any) => {
|
|
|
+ state.initFSongMap.set(fSong.track, fSong)
|
|
|
+ })
|
|
|
+
|
|
|
+ let fSongList = [] as any
|
|
|
+ forms.multiTracksSelection.forEach((item: any) => {
|
|
|
+ if (state.initFSongMap.has(item)) {
|
|
|
+ fSongList.push(state.initFSongMap.get(item))
|
|
|
+ } else {
|
|
|
+ fSongList.push({
|
|
|
+ musicSheetId: props.data.id,
|
|
|
+ audioFileUrl: null,
|
|
|
+ audioPlayType: 'SING',
|
|
|
+ musicalInstrumentId: null,
|
|
|
+ track: item,
|
|
|
+ // musicalInstrumentName: state.instrumentIdNameMap.get(item),
|
|
|
+ musicalInstrumentName: null,
|
|
|
+ solmizationFileUrl: null, // 唱名男
|
|
|
+ femaleSolmizationFileUrl: null, // 唱名女
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ forms.fSongList = fSongList
|
|
|
+ }
|
|
|
+
|
|
|
// 上传XML,初始化音轨 音轨速度 乐器、声部
|
|
|
const readFileInputEventAsArrayBuffer = (file: any) => {
|
|
|
// 是否是evxml
|
|
@@ -1113,11 +1113,11 @@ export default defineComponent({
|
|
|
|
|
|
// 初始化演奏
|
|
|
for (let i = 0; i < state.musicSheetSoundList.length; i++) {
|
|
|
- if (state.musicSheetSoundList[i].audioPlayType == 'SING') {
|
|
|
+ if (state.musicSheetSoundList[i].audioPlayType == 'SING' && state.musicSheetSoundList[i].track != null) {
|
|
|
// 范唱 唱名
|
|
|
state.initFSongMap.set(state.musicSheetSoundList[i].musicalInstrumentId, {
|
|
|
...state.musicSheetSoundList[i],
|
|
|
- musicalInstrumentName: state.instrumentIdNameMap.get(state.musicSheetSoundList[i].musicalInstrumentId),
|
|
|
+ // musicalInstrumentName: state.instrumentIdNameMap.get(state.musicSheetSoundList[i].musicalInstrumentId),
|
|
|
})
|
|
|
} else {
|
|
|
if (forms.isAllSubject) {
|
|
@@ -1147,16 +1147,18 @@ export default defineComponent({
|
|
|
state.partListNames = getPartListNames(res?.data as any) as any
|
|
|
|
|
|
// 初始化音轨和原音
|
|
|
+ let multiTracksSelection = [] as any
|
|
|
if (data.multiTracksSelection) {
|
|
|
data.multiTracksSelection = data.multiTracksSelection.toLocaleUpperCase()
|
|
|
}
|
|
|
if (!data.multiTracksSelection || data.multiTracksSelection.trim() == '' || data.multiTracksSelection.trim() == 'NULL') {
|
|
|
- forms.multiTracksSelection = ['']
|
|
|
+ multiTracksSelection.push('')
|
|
|
} else {
|
|
|
- forms.multiTracksSelection = data.multiTracksSelection.split(',')
|
|
|
+ multiTracksSelection = data.multiTracksSelection.split(',')
|
|
|
}
|
|
|
let names = state.partListNames.map((next: any) => next.label)
|
|
|
- forms.multiTracksSelection = names.filter((next: any) => forms.multiTracksSelection.includes(next.toLocaleUpperCase()))
|
|
|
+ multiTracksSelection = names.filter((next: any) => multiTracksSelection.includes(next.toLocaleUpperCase()))
|
|
|
+ forms.multiTracksSelection = multiTracksSelection
|
|
|
|
|
|
const existSoundList = data.musicSheetSoundList ? data.musicSheetSoundList : []
|
|
|
// 如果只有一个原音文件,并且原音没有对应声轨,取xml解析中的第一个声轨绑定当当前原音
|
|
@@ -1792,7 +1794,7 @@ export default defineComponent({
|
|
|
<NGrid class={styles.audioSection}>
|
|
|
<NFormItemGi
|
|
|
span={12}
|
|
|
- label={item.musicalInstrumentName + '范唱'}
|
|
|
+ label={item.track + '范唱'}
|
|
|
path={item.audioFileUrl}
|
|
|
rule={[
|
|
|
{
|
|
@@ -1819,7 +1821,7 @@ export default defineComponent({
|
|
|
return (
|
|
|
<NGrid cols={2}>
|
|
|
<NFormItemGi
|
|
|
- label={item.musicalInstrumentName + '唱名(男)'}
|
|
|
+ label={item.track + '唱名(男)'}
|
|
|
path={item.solmizationFileUrl}
|
|
|
rule={[
|
|
|
{
|
|
@@ -1840,7 +1842,7 @@ export default defineComponent({
|
|
|
/>
|
|
|
</NFormItemGi>
|
|
|
<NFormItemGi
|
|
|
- label={item.musicalInstrumentName + '唱名(女)'}
|
|
|
+ label={item.track + '唱名(女)'}
|
|
|
path={item.femaleSolmizationFileUrl}
|
|
|
rule={[
|
|
|
{
|