Преглед на файлове

fix: 谱面编辑bug修复

TIANYONG преди 9 месеца
родител
ревизия
72efc81cdc
променени са 3 файла, в които са добавени 24 реда и са изтрити 12 реда
  1. 22 11
      src/helpers/formateMusic.ts
  2. 1 0
      src/page-instrument/view-detail/index.module.less
  3. 1 1
      src/view/plugins/move-music-score/index.tsx

+ 22 - 11
src/helpers/formateMusic.ts

@@ -780,17 +780,28 @@ export const formatXML = (xml: string, xmlUrl?: string): string => {
 };
 };
 
 
 /** 转换简谱的全休止符和二分休止符 */
 /** 转换简谱的全休止符和二分休止符 */
-// export const transferJianNote = (measure: any, divisions, beats) => {
-// 	const notes = measure.getElementsByTagName("note")
-// 	for (const note of notes) {
-// 		const noteType = note.getElementsByTagName("type")?.[0]?.textContent || '';
-// 		if (noteType === 'whole') {
-// 			measure.removeChild(note);
-// 		} else if (noteType === 'half') {
-// 			measure.removeChild(note);
-// 		}
-// 	}
-// }
+export const transferJianNote = (measure: any, divisions: number, beats: number) => {
+	const notes = measure.getElementsByTagName("note")
+	for (const note of notes) {
+		const noteType = note.getElementsByTagName("type")?.[0]?.textContent || '';
+		if (noteType === 'whole') {
+			let quarterNoteNumber = 1;
+			while (quarterNoteNumber <= beats) {
+				const newnote = document.createElement('note');
+				newnote.innerHTML = `
+				<rest></rest>
+				<duration>${divisions}</duration>
+				<voice>1</voice>
+				<type>quarter</type>`
+				measure.insertBefore(newnote, note);
+				quarterNoteNumber += 1;
+			};
+			measure.removeChild(note);
+		} else if (noteType === 'half') {
+			// measure.removeChild(note);
+		}
+	}
+}
 
 
 /** 获取所有音符的时值,以及格式化音符 */
 /** 获取所有音符的时值,以及格式化音符 */
 export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
 export const formateTimes = (osmd: OpenSheetMusicDisplay) => {

+ 1 - 0
src/page-instrument/view-detail/index.module.less

@@ -221,6 +221,7 @@
         height: 100%;
         height: 100%;
         padding-bottom: 0 !important;
         padding-bottom: 0 !important;
         padding-right: 0 !important;
         padding-right: 0 !important;
+        padding-left: 0 !important;
     }
     }
 
 
     :global {
     :global {

+ 1 - 1
src/view/plugins/move-music-score/index.tsx

@@ -552,7 +552,7 @@ export const renderForMoveData = () => {
 						}
 						}
 					}
 					}
 					index = targetIndex
 					index = targetIndex
-					item.id = moveData.modelList[targetIndex].id
+					item.id = moveData.modelList[targetIndex]?.id
 				}
 				}
 				// console.log(66666666,index)
 				// console.log(66666666,index)
 				if (index > -1) {
 				if (index > -1) {