|
@@ -1271,9 +1271,11 @@ const getMusicInfo = async (res: any) => {
|
|
|
const { track, index, musicalInstrumentId } = state.isSimplePage ? { track:tracks[0], index: state.partIndex, musicalInstrumentId: '' } : initMusicSource(res.data, tracks, partIndex, workRecordInstrumentId)
|
|
|
// 这里返回的track可能和实际的对不上,所以重新筛选一下
|
|
|
const realTrack = musicalInstrumentId && res.data?.musicalInstruments?.length ? res.data?.musicalInstruments.find((item: any) => item?.id == musicalInstrumentId)?.code?.split(',')?.[0] : '';
|
|
|
+ const instrumentCodes = musicalInstrumentId && res.data?.musicalInstruments?.length ? res.data?.musicalInstruments.find((item: any) => item?.id == musicalInstrumentId)?.code : '';
|
|
|
const musicInfo = {
|
|
|
...res.data,
|
|
|
- track: res.data.musicSheetType === 'CONCERT' ? track : realTrack
|
|
|
+ track: res.data.musicSheetType === 'CONCERT' ? track : realTrack,
|
|
|
+ instrumentCodes
|
|
|
};
|
|
|
console.log("🚀 ~ musicInfo:", musicInfo);
|
|
|
setState(musicInfo, index);
|
|
@@ -1616,6 +1618,20 @@ const setState = (data: any, index: number) => {
|
|
|
}
|
|
|
|
|
|
let code = matchVoicePart(state.trackId, "CONCERT")
|
|
|
+ /**
|
|
|
+ * 曲子:中音萨克斯教程2-4,返回的乐器code是"Alto Sax,Alto Saxophone",使用第一个Alto Sax去找,找不到对应的指法,这种情况下需要使用多个code去匹配指法
|
|
|
+ * 如果当前的第一code找不到,用instrumentCodes去找,
|
|
|
+ *
|
|
|
+ * */
|
|
|
+ if ( data.instrumentCodes && (code == 1 || !code) ) {
|
|
|
+ for (let name of data.instrumentCodes.split(',')) {
|
|
|
+ let matchCode = matchVoicePart(name, "CONCERT")
|
|
|
+ if (matchCode && matchCode !== 1) {
|
|
|
+ code = matchCode
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
if (code == 1 || !code) {
|
|
|
code = fixInstrumentNameCode(state.trackId)
|
|
|
}
|