|
@@ -329,6 +329,7 @@ export default defineComponent({
|
|
|
|
|
|
fSongList:[] as any,// 范唱列表
|
|
|
isScoreRender: true, // 总谱渲染
|
|
|
+ defaultScoreRender: true, // 演奏是否默认展示总谱渲染
|
|
|
scoreAudioFileUrl: null as any, // 总谱文件
|
|
|
})
|
|
|
const state = reactive({
|
|
@@ -369,7 +370,7 @@ export default defineComponent({
|
|
|
watch(
|
|
|
() => forms.multiTracksSelection,
|
|
|
(value) => {
|
|
|
- initInstrumentAndSubjectByCode(value)
|
|
|
+ initInstrumentAndSubjectByTrack(value)
|
|
|
initFSongList()
|
|
|
}
|
|
|
)
|
|
@@ -507,6 +508,15 @@ export default defineComponent({
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ let isScoreRender
|
|
|
+ let defaultScoreRender
|
|
|
+ if (forms.multiTracksSelection.length > 1) {
|
|
|
+ isScoreRender = forms.isScoreRender
|
|
|
+ if (forms.isScoreRender) {
|
|
|
+ defaultScoreRender = forms.defaultScoreRender
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
const obj = {
|
|
|
musicCategoryId: forms.musicCategoryId,
|
|
@@ -547,6 +557,8 @@ export default defineComponent({
|
|
|
isPlaySingBeat: forms.isPlaySingBeat,
|
|
|
isAllSubject: forms.isAllSubject,
|
|
|
musicSheetExtend: forms.sourceType == 'PLATFORM' ? null : forms.musicSheetExtend,
|
|
|
+ isScoreRender: isScoreRender,
|
|
|
+ defaultScoreRender: defaultScoreRender,
|
|
|
}
|
|
|
if (forms.audioType == 'MIDI') {
|
|
|
obj.musicSheetSoundList = []
|
|
@@ -704,14 +716,14 @@ export default defineComponent({
|
|
|
}
|
|
|
}
|
|
|
// 乐器支持多编码,暂不开放
|
|
|
- initInstrumentAndSubjectByCode(instrumentCodeList)
|
|
|
+ initInstrumentAndSubjectByTrack(instrumentCodeList)
|
|
|
}
|
|
|
|
|
|
- // 通过乐器编码反显乐器和声部
|
|
|
- const initInstrumentAndSubjectByCode = async (codes: string[]) => {
|
|
|
+ // 通过声轨反显乐器和声部
|
|
|
+ const initInstrumentAndSubjectByTrack = async (tracks: string[]) => {
|
|
|
// 选择一个声轨,独奏
|
|
|
// 选择了多个声轨,合奏,乐器和声部自动反显,不可修改
|
|
|
- if (!codes || codes.length <= 1) {
|
|
|
+ if (!tracks || tracks.length <= 1) {
|
|
|
forms.musicSheetType = 'SINGLE'
|
|
|
state.subjectDisabled = false
|
|
|
state.instrumentDisabled = false
|
|
@@ -720,11 +732,13 @@ export default defineComponent({
|
|
|
forms.musicSheetType = 'CONCERT'
|
|
|
state.subjectDisabled = true
|
|
|
state.instrumentDisabled = true
|
|
|
+ await initInstrumentAndSubjectByCode(tracks)
|
|
|
+ }
|
|
|
|
|
|
+ // 通过乐器编码反显乐器和声部
|
|
|
+ const initInstrumentAndSubjectByCode = async (codes: string[]) => {
|
|
|
forms.musicalInstrumentIdList = []
|
|
|
forms.subjectIds = []
|
|
|
-
|
|
|
-
|
|
|
const codeIdMap = new Map<string, []>() as any
|
|
|
state.instrumentData.forEach((data: any) => {
|
|
|
if (!data.disabled) {
|
|
@@ -755,7 +769,7 @@ export default defineComponent({
|
|
|
// 声部
|
|
|
if (forms.musicalInstrumentIdList.length > 0) {
|
|
|
await showBackSubject(forms.musicalInstrumentIdList)
|
|
|
- changeSubject(forms.subjectIds)
|
|
|
+ // changeSubject(forms.subjectIds)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -847,6 +861,10 @@ export default defineComponent({
|
|
|
|
|
|
// 反显声部
|
|
|
const showBackSubject = async (musicalInstrumentIdList: []) => {
|
|
|
+ forms.subjectIds = []
|
|
|
+ if (!musicalInstrumentIdList || musicalInstrumentIdList.length == 0) {
|
|
|
+ return
|
|
|
+ }
|
|
|
try {
|
|
|
const { data } = await subjectPage({
|
|
|
page: 1,
|
|
@@ -1015,7 +1033,7 @@ export default defineComponent({
|
|
|
});
|
|
|
})
|
|
|
state.instrumentData = tempList
|
|
|
- // state.instrumentList = tempList
|
|
|
+ state.instrumentList = deepClone(tempList)
|
|
|
} catch {
|
|
|
}
|
|
|
}
|
|
@@ -1088,7 +1106,6 @@ export default defineComponent({
|
|
|
state.subjectList = state.subjectList.filter((subject: any) => {
|
|
|
return (!subject.disabled || subjectIds.includes(subject.value));
|
|
|
})
|
|
|
-
|
|
|
}
|
|
|
forms.musicCategoryId = data.musicCategoryId
|
|
|
forms.audioType = data.audioType
|
|
@@ -1143,7 +1160,10 @@ export default defineComponent({
|
|
|
}
|
|
|
|
|
|
forms.musicalInstrumentIdList = data.musicalInstrumentIds ? data.musicalInstrumentIds.split(',') : []
|
|
|
- await changeSubject(forms.subjectIds)
|
|
|
+ // 乐器下拉格式化,停用的过滤
|
|
|
+ state.instrumentList = state.instrumentList.filter((next: any) => {
|
|
|
+ return (next.enableFlag || forms.musicalInstrumentIdList.includes(next.id));
|
|
|
+ })
|
|
|
|
|
|
|
|
|
setOwnerName()
|
|
@@ -1167,6 +1187,8 @@ export default defineComponent({
|
|
|
let names = state.partListNames.map((next: any) => next.label)
|
|
|
multiTracksSelection = names.filter((next: any) => multiTracksSelection.includes(next.toLocaleUpperCase()))
|
|
|
forms.multiTracksSelection = multiTracksSelection
|
|
|
+ // 根据声轨数量判断独奏合奏
|
|
|
+ forms.musicSheetType = forms.multiTracksSelection.length > 1 ? 'CONCERT' : 'SINGLE'
|
|
|
|
|
|
const existSoundList = data.musicSheetSoundList ? data.musicSheetSoundList : []
|
|
|
// 如果只有一个原音文件,并且原音没有对应声轨,取xml解析中的第一个声轨绑定当当前原音
|
|
@@ -1212,9 +1234,6 @@ export default defineComponent({
|
|
|
state.multiTracks = 'all'
|
|
|
}
|
|
|
|
|
|
- // 根据声轨数量判断独奏合奏
|
|
|
- forms.musicSheetType = forms.multiTracksSelection.length > 1 ? 'CONCERT' : 'SINGLE'
|
|
|
-
|
|
|
// 处理没有声轨,但有原音
|
|
|
if (forms.musicSheetType == 'CONCERT') {
|
|
|
state.musicSheetSoundList.forEach((next: any) => {
|
|
@@ -1626,14 +1645,14 @@ export default defineComponent({
|
|
|
<NSelect
|
|
|
v-model:value={forms.subjectIds}
|
|
|
options={state.subjectList}
|
|
|
- disabled={state.subjectDisabled}
|
|
|
+ disabled={true}
|
|
|
multiple
|
|
|
filterable
|
|
|
clearable
|
|
|
placeholder="请选择可用声部"
|
|
|
maxTagCount={10}
|
|
|
onUpdateValue={async (val: any) => {
|
|
|
- await changeSubject(val)
|
|
|
+ // await changeSubject(val)
|
|
|
}}
|
|
|
/>
|
|
|
</NFormItemGi>
|
|
@@ -1659,6 +1678,7 @@ export default defineComponent({
|
|
|
filterable
|
|
|
maxTagCount={10}
|
|
|
onUpdateValue={async (value: any) => {
|
|
|
+ await showBackSubject(value)
|
|
|
}}
|
|
|
/>
|
|
|
</NFormItemGi>
|
|
@@ -1725,7 +1745,7 @@ export default defineComponent({
|
|
|
</NFormItemGi>
|
|
|
</NGrid>
|
|
|
{forms.multiTracksSelection.length > 1 && (
|
|
|
- <NGrid cols={1}>
|
|
|
+ <NGrid cols={2}>
|
|
|
<NFormItemGi
|
|
|
label="总谱渲染"
|
|
|
path="isScoreRender"
|
|
@@ -1743,6 +1763,22 @@ export default defineComponent({
|
|
|
<NRadio value={false}>不支持</NRadio>
|
|
|
</NRadioGroup>
|
|
|
</NFormItemGi>
|
|
|
+ <NFormItemGi
|
|
|
+ label="默认显示"
|
|
|
+ path="defaultScoreRender"
|
|
|
+ rule={[
|
|
|
+ {
|
|
|
+ required: false,
|
|
|
+ }
|
|
|
+ ]}
|
|
|
+ >
|
|
|
+ <NRadioGroup
|
|
|
+ v-model:value={forms.defaultScoreRender}
|
|
|
+ >
|
|
|
+ <NRadio value={true}>总谱</NRadio>
|
|
|
+ <NRadio value={false}>分轨</NRadio>
|
|
|
+ </NRadioGroup>
|
|
|
+ </NFormItemGi>
|
|
|
</NGrid>
|
|
|
)}
|
|
|
<NAlert showIcon={false} style={{marginBottom: '12px'}}>
|