Browse Source

fix: #9854 bug修复

TIANYONG 1 year ago
parent
commit
d4c6f95929
2 changed files with 19 additions and 7 deletions
  1. 13 1
      src/helpers/formateMusic.ts
  2. 6 6
      src/view/selection/index.tsx

+ 13 - 1
src/helpers/formateMusic.ts

@@ -701,6 +701,9 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
 	let gradualChangeIndex = 0;
 	let gradualChangeIndex = 0;
 	let totalMultipleRestMeasures = 0;
 	let totalMultipleRestMeasures = 0;
 	let multipleRestMeasures = 0;
 	let multipleRestMeasures = 0;
+	let staveNoteIndex = 0;
+	let staveIndex = 0;
+
 	const _notes = [] as any[];
 	const _notes = [] as any[];
 	if (state.gradualTimes) {
 	if (state.gradualTimes) {
 		console.log("后台设置的渐慢小节时间", state.gradual, state.gradualTimes);
 		console.log("后台设置的渐慢小节时间", state.gradual, state.gradualTimes);
@@ -804,6 +807,14 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
 					}
 					}
 				}
 				}
 			}
 			}
+			// 判断是否是同一小节
+			if (staveIndex == note.sourceMeasure?.MeasureNumberXML) {
+				staveNoteIndex++
+			} else {
+				// staveIndex不同,重新赋值
+				staveIndex = note.sourceMeasure?.MeasureNumberXML
+				staveNoteIndex = 0
+			}			
 			let measureSpeed = note.sourceMeasure.tempoInBPM;
 			let measureSpeed = note.sourceMeasure.tempoInBPM;
 			const { metronomeNoteIndex } = iterator.currentMeasure;
 			const { metronomeNoteIndex } = iterator.currentMeasure;
 			if (metronomeNoteIndex !== 0 && metronomeNoteIndex > si) {
 			if (metronomeNoteIndex !== 0 && metronomeNoteIndex > si) {
@@ -931,7 +942,8 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
 			let relaEndtime = noteLength + relativeTime;
 			let relaEndtime = noteLength + relativeTime;
 			// console.log('relaEndtime',noteLength, relativeTime)
 			// console.log('relaEndtime',noteLength, relativeTime)
 			const fixedKey = note.fixedKey || 0;
 			const fixedKey = note.fixedKey || 0;
-			const svgElement = activeVerticalMeasureList[0]?.vfVoices["1"]?.tickables[si];
+			// const svgElement = activeVerticalMeasureList[0]?.vfVoices["1"]?.tickables[si];
+			const svgElement = activeVerticalMeasureList[0]?.vfVoices['1']?.tickables[staveNoteIndex];
 			// console.log('si',si,i)
 			// console.log('si',si,i)
 			// console.log(note.sourceMeasure.MeasureNumberXML,note,svgElement, NoteRealValue, measureLength)
 			// console.log(note.sourceMeasure.MeasureNumberXML,note,svgElement, NoteRealValue, measureLength)
 			if (allNotes.length && allNotes[allNotes.length - 1].relativeTime === relativeTime) {
 			if (allNotes.length && allNotes[allNotes.length - 1].relativeTime === relativeTime) {

+ 6 - 6
src/view/selection/index.tsx

@@ -76,12 +76,12 @@ const calcNoteData = () => {
 					}
 					}
 					
 					
 				}
 				}
-				// if (selectData.notes.find((item:any) => item.id === noteItem.id)) {
-				// 	// 
-				// } else {
-				// 	selectData.notes.push(noteItem);
-				// }
-				selectData.notes.push(noteItem);
+				if (selectData.notes.find((item:any) => item.id === noteItem.id)) {
+					// 
+				} else {
+					selectData.notes.push(noteItem);
+				}
+				// selectData.notes.push(noteItem);
 				notesList.push(item.noteId);
 				notesList.push(item.noteId);
 			}
 			}
 		}
 		}